This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH/RFC] Fix asm-source.exp on FreeBSD
- From: Mark Kettenis <kettenis at chello dot nl>
- To: gdb-patches at sources dot redhat dot com
- Date: Sat, 10 May 2003 13:05:47 +0200 (CEST)
- Subject: [PATCH/RFC] Fix asm-source.exp on FreeBSD
Ever since asm-source.exp was changed to do the final link using
gdb_compile, the tests have been failing for me. The problem is that
FreeBSD's crt1.o defines some symbols (__progname, environ) that are
referenced by libc.so, which makes the final link fail. Compiling
statically fixes the problem.
I'm fairly certain that NetBSD and probably OpenBSD suffer from the
same problem, so perhaps I should change the regexp to *-*-*bsd*
instead. Can someone check whether that's indeed the case.
I've been using this patch in my local tree for quite some time now,
so if I don't see any objections in the coming days, I'll check this
in.
Mark
Index: testsuite/ChangeLog
from Mark Kettenis <kettenis@gnu.org>
* gdb.asm/asm-source.exp: Make sure the final link succeeds on
FreeBSD.
Index: testsuite/gdb.asm/asm-source.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asm-source.exp,v
retrieving revision 1.33
diff -u -p -r1.33 asm-source.exp
--- testsuite/gdb.asm/asm-source.exp 7 May 2003 21:52:53 -0000 1.33
+++ testsuite/gdb.asm/asm-source.exp 10 May 2003 10:55:52 -0000
@@ -99,6 +99,15 @@ if { "${asm-arch}" == "" } {
gdb_suppress_entire_file "Assembly source test -- not implemented for this target."
}
+# On FreeBSD, crt1.o the final link will fail because of unresolved
+# symbols. It turns out that libc.so references symbols that are
+# normally provided by crt1.o, which isn't linked in since we specify
+# -nostartfiles. Using -nostdlib doesn't help since target_compile
+# automatically adds -lm. Linking statically avoids this mess.
+if [istarget "*-*-freebsd*"] then {
+ set link-flags "-static"
+}
+
# Watch out, we are invoking the assembler, but the testsuite sets multilib
# switches according to compiler syntax. If we pass these options straight
# to the assembler, they won't always make sense. If we don't pass them to