This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [patch] Fix test suite failures with --as-needed
On 25/04/12 00:48, Carlos O'Donell wrote:
> On Tue, Apr 24, 2012 at 8:48 AM, Allan McRae <allan@archlinux.org> wrote:
>> 2012-04-16 Allan McRae <allan@archlinux.org>
>>
>> * elf/Makefile: (LDFLAGS-nodel2mod3.so: Use $(no-as-needed).
>> (LDFLAGS-reldepmod5.so): Likewise.
>> (LDFLAGS-reldep6mod1.so): Likewise.
>> (LDFLAGS-reldep6mod4.so): Likewise.
>> (LDFLAGS-reldep8mod3.so): Likewise.
>> (LDFLAGS-unload4mod1.so): Likewise.
>> (LDFLAGS-unload4mod2.so): Likewise.
>> (LDFLAGS-tst-initorder): Likewise.
>> (LDFLAGS-tst-initordera2.so): Likewise.
>> (LDFLAGS-tst-initordera3.so): Likewise.
>> (LDFLAGS-tst-initordera4.so): Likewise.
>> (LDFLAGS-tst-initorderb2.so): Likewise.
>> (LDFLAGS-noload): Likewise.
>> (LDFLAGS-next): Likewise.
>> (LDFLAGS-order2mod1.so): Likewise.
>> (LDFLAGS-order2mod2.so): Likewise.
>> (LDFLAGS-tst-initorder2): Likewise.
>> (LDFLAGS-tst-initorder2a.so): Likewise.
>> (LDFLAGS-tst-initorder2b.so): Likewise.
>> (LDFLAGS-tst-initorder2c.so): Likewise.
>> * stdlib/Makefile: (LDFLAGS-tst-putenv): Likewise.
>>
>>
>> nptl/ChangeLog:
>>
>> 2012-04-16 Allan McRae <allan@archlinux.org>
>>
>> * Makefile: (LDFLAGS-tst-tls5): Use $(no-as-needed).
>> (LDFLAGS-tst-cancel24): Likewise.
>
> Your mailer, or my stupidity have mangled the patch, and it doesn't apply.
>
> Could you please send as an attachment to avoid mailer mangling.
>
Attached in git format.
Allan
>From 25105f091ad1ca02386ceb72868dcd1af5e57a82 Mon Sep 17 00:00:00 2001
From: Allan McRae <allan@archlinux.org>
Date: Mon, 16 Apr 2012 14:06:47 +1000
Subject: [PATCH] Fix test-suite failues with -Wl,--as-needed
Signed-off-by: Allan McRae <allan@archlinux.org>
---
elf/Makefile | 21 ++++++++++++++++++++-
nptl/Makefile | 3 ++-
stdlib/Makefile | 1 +
3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/elf/Makefile b/elf/Makefile
index 59a3936..ea94f62 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -497,6 +497,18 @@ $(objpfx)tst-initordera3.so: $(objpfx)tst-initorderb2.so $(objpfx)tst-initorderb
$(objpfx)tst-initordera4.so: $(objpfx)tst-initordera3.so
$(objpfx)tst-initorder: $(objpfx)tst-initordera4.so $(objpfx)tst-initordera1.so $(objpfx)tst-initorderb2.so
+LDFLAGS-nodel2mod3.so = $(no-as-needed)
+LDFLAGS-reldepmod5.so = $(no-as-needed)
+LDFLAGS-reldep6mod1.so = $(no-as-needed)
+LDFLAGS-reldep6mod4.so = $(no-as-needed)
+LDFLAGS-reldep8mod3.so = $(no-as-needed)
+LDFLAGS-unload4mod1.so = $(no-as-needed)
+LDFLAGS-unload4mod2.so = $(no-as-needed)
+LDFLAGS-tst-initorder = $(no-as-needed)
+LDFLAGS-tst-initordera2.so = $(no-as-needed)
+LDFLAGS-tst-initordera3.so = $(no-as-needed)
+LDFLAGS-tst-initordera4.so = $(no-as-needed)
+LDFLAGS-tst-initorderb2.so = $(no-as-needed)
LDFLAGS-tst-tlsmod5.so = -nostdlib
LDFLAGS-tst-tlsmod6.so = -nostdlib
@@ -630,7 +642,7 @@ $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so)
vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so)
$(objpfx)noload: $(objpfx)testobj1.so $(common-objpfx)dlfcn/libdl.so
-LDFLAGS-noload = -rdynamic
+LDFLAGS-noload = -rdynamic $(no-as-needed)
$(objpfx)noload.out: $(objpfx)testobj5.so
$(objpfx)noload-mem: $(objpfx)noload.out
@@ -675,6 +687,7 @@ $(objpfx)reldep4: $(libdl)
$(objpfx)reldep4.out: $(objpfx)reldep4mod1.so $(objpfx)reldep4mod2.so
$(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so $(libdl)
+LDFLAGS-next = $(no-as-needed)
$(objpfx)unload2: $(libdl)
$(objpfx)unload2.out: $(objpfx)unload2mod.so $(objpfx)unload2dep.so
@@ -999,6 +1012,8 @@ $(objpfx)order2mod1.so: $(objpfx)order2mod4.so
$(objpfx)order2mod4.so: $(objpfx)order2mod3.so
$(objpfx)order2mod2.so: $(objpfx)order2mod3.so
order2mod2.so-no-z-defs = yes
+LDFLAGS-order2mod1.so = $(no-as-needed)
+LDFLAGS-order2mod2.so = $(no-as-needed)
tst-stackguard1-ARGS = --command "$(built-program-cmd) --child"
tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
@@ -1087,6 +1102,10 @@ $(objpfx)tst-initorder2: $(objpfx)tst-initorder2a.so $(objpfx)tst-initorder2d.so
$(objpfx)tst-initorder2a.so: $(objpfx)tst-initorder2b.so
$(objpfx)tst-initorder2b.so: $(objpfx)tst-initorder2c.so
$(objpfx)tst-initorder2c.so: $(objpfx)tst-initorder2d.so
+LDFLAGS-tst-initorder2 = $(no-as-needed)
+LDFLAGS-tst-initorder2a.so = $(no-as-needed)
+LDFLAGS-tst-initorder2b.so = $(no-as-needed)
+LDFLAGS-tst-initorder2c.so = $(no-as-needed)
define o-iterator-doit
$(objpfx)tst-initorder2$o.os: tst-initorder2.c; \
$$(compile-command.c) -DNAME=\"$o\"
diff --git a/nptl/Makefile b/nptl/Makefile
index 52277dd..be7a05c 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -456,6 +456,7 @@ $(objpfx)tst-tls4: $(libdl) $(shared-thread-library)
$(objpfx)tst-tls4.out: $(objpfx)tst-tls4moda.so $(objpfx)tst-tls4modb.so
$(objpfx)tst-tls5: $(objpfx)tst-tls5mod.so $(shared-thread-library)
+LDFLAGS-tst-tls5 = $(no-as-needed)
LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so
ifeq ($(build-shared),yes)
@@ -499,7 +500,7 @@ $(objpfx)tst-clock2: $(common-objpfx)rt/librt.a
$(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.a
endif
-LDFLAGS-tst-cancel24 = -lstdc++
+LDFLAGS-tst-cancel24 = $(no-as-needed) -lstdc++
extra-B-pthread.so = -B$(common-objpfx)nptl/
$(objpfx)libpthread.so: $(addprefix $(objpfx),$(crti-objs) $(crtn-objs))
diff --git a/stdlib/Makefile b/stdlib/Makefile
index 44eb20d..f7811c5 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -138,6 +138,7 @@ $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg
$(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)stdlib/
$(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so
+LDFLAGS-tst-putenv = $(no-as-needed)
$(objpfx)tst-putenvmod.so: $(objpfx)tst-putenvmod.os
$(build-module)
--
1.7.10