This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PATCH: Add tests for --add-needed and --copy-dt-needed-entries
- From: Alan Modra <amodra at gmail dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: binutils at sourceware dot org
- Date: Fri, 7 Dec 2012 15:56:47 +1030
- Subject: Re: PATCH: Add tests for --add-needed and --copy-dt-needed-entries
- References: <20121204174529.GA14933@intel.com>
On Tue, Dec 04, 2012 at 09:45:29AM -0800, H.J. Lu wrote:
> + * ld-elf/shared.exp (build_tests): Build libneeded1b.so,
> + libneeded1a.so and libneeded1c.o.
> + (run_tests): Test --add-needed and --copy-dt-needed-entries.
> + Add tests for --no-add-needed and --no-copy-dt-needed-entries.
> +
> + * ld-elf/needed1.out: New file.
> + * ld-elf/needed1a.c: Likewise.
> + * ld-elf/needed1b.c: Likewise.
> + * ld-elf/needed1c.c: Likewise.
On my Ubuntu 11.10 x86_64 box, I've been getting
FAIL: Build needed1a.so with --add-needed
FAIL: Build needed1b.so with --copy-dt-needed-entries
FAIL: Link with --add-needed
FAIL: Link with --copy-dt-needed-entries
FAIL: --no-add-needed
FAIL: --no-copy-dt-needed-entries
This is due to the system gcc adding --no-add-needed --as-needed for
free, so when building libneeded1a.so we don't link with
libneeded1b.so (-lneeded1b appears on the linker command line before
needed1a.o).
* ld-elf/shared.exp (libneeded1a.so): Override any system
supplied --as-needed or --add-needed flag.
Index: ld/testsuite/ld-elf/shared.exp
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-elf/shared.exp,v
retrieving revision 1.25
diff -u -p -r1.25 shared.exp
--- ld/testsuite/ld-elf/shared.exp 6 Dec 2012 00:25:19 -0000 1.25
+++ ld/testsuite/ld-elf/shared.exp 7 Dec 2012 02:05:24 -0000
@@ -183,7 +183,7 @@ set build_tests {
"-shared" "-fPIC"
{needed1b.c} {} "libneeded1b.so"}
{"Build libneeded1a.so"
- "-shared -Ltmpdir -lneeded1b" "-fPIC"
+ "-shared -Wl,--add-needed,--no-as-needed -Ltmpdir -lneeded1b" "-fPIC"
{needed1a.c} {} "libneeded1a.so"}
{"Build libneeded1c.o"
"-r -nostdlib" ""
--
Alan Modra
Australia Development Lab, IBM