From: Mathieu Desnoyers Date: Wed, 15 May 2013 06:03:56 +0000 (+0200) Subject: Revert "Revert "Fix (another) linker library order"" X-Git-Tag: v2.2.0-rc3~15 X-Git-Url: http://git.liburcu.org/?p=lttng-ust.git;a=commitdiff_plain;h=10f0ace26829188f45a68480df45910586429fc2 Revert "Revert "Fix (another) linker library order"" This reverts commit a5b31eab4e1f190d68d51c47dabb60b64ee471e7. The patch was OK in the first place. Explanation: * Simon Marchi wrote: Actually, $^ here is "demo.o", not "demo. Also, the libs should appear after the objects on the command line. See the "-l" section in http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html. On most setup this doesn't matter, since -Wl,--no-as-needed was the default pretty much everywhere. Ubuntu decided to use -Wl,--as-needed to avoid unnecessary dependencies, so the order becomes important. If you try to manual build on a recent Ubuntu you will get undefined references to dlopen and such. So this patch is good. If you read carefully the log sent by Alexandre, you see that it is when building the shared libs in this directory (lttng-ust-provider-ust-tests-demo.so) that the build fails. I don't know why it fails, but Alexandre hinted that passing "-fPIE -pie" to build a shared library is weird (it is usually -fPIC -pic). I am not sure where that comes from. This behaviour only happens when building the package, not when building manually. Signed-off-by: Mathieu Desnoyers --- diff --git a/doc/examples/hello-static-lib/Makefile b/doc/examples/hello-static-lib/Makefile index a5bf2df1..dd246f70 100644 --- a/doc/examples/hello-static-lib/Makefile +++ b/doc/examples/hello-static-lib/Makefile @@ -46,7 +46,7 @@ hello.o: hello.c $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< hello: hello.o lttng-ust-provider-hello.a - $(CC) -o $@ $(LDFLAGS) $(LIBS) $^ + $(CC) -o $@ $(LDFLAGS) $^ $(LIBS) .PHONY: clean clean: