[PATCH] Fix test-suite failure with -Wl,--as-needed
Siddhesh Poyarekar
siddhesh@redhat.com
Mon Oct 8 04:38:00 GMT 2012
On Mon, 8 Oct 2012 13:51:47 +1000, Allan wrote:
> When building the test-suite with --as-needed in your LDFLAGS, the
> test test-cond24 fails linking:
>
> /build/nptl/tst-cond24.o: In function `thread_fun_timed':
> tst-cond24.c:(.text+0x30c): undefined reference to `clock_gettime'
> collect2: error: ld returned 1 exit status
I think the real fix should be to the link command and not to add
no-as-needed all over the place. The current command looks like this
(shortened for clarity):
gcc $OPTIONS
-o /home/siddhesh/src/upstream/glibc-build/nptl/tst-cond24
$DYNAMIC_LINKER
-Wl,--as-needed -lrt -Wl,-z,combreloc -Wl,-z,relro
$MORE_OPTIONS /home/siddhesh/src/upstream/glibc-build/nptl/tst-cond24.o
$EVERYTHING_ELSE
which is wrong. It should be:
gcc $OPTIONS \
-o $BUILDDIR/nptl/tst-cond24 \
$BUILDDIR/nptl/tst-cond24.o \
$DYNAMIC_LINKER \
-Wl,--as-needed -lrt -Wl,-z,combreloc -Wl,-z,relro \
$MORE_OPTIONS \
$EVERYTHING_ELSE
so that the linker can see the object file to decide if librt is needed
or not. With the earlier form, it will always reject librt.
Siddhesh
More information about the Libc-alpha
mailing list