PATCH: Add tests for --add-needed and --copy-dt-needed-entries
Alan Modra
amodra@gmail.com
Fri Dec 7 05:27:00 GMT 2012
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
More information about the Binutils
mailing list