This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [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.

Honestly, I think it should be put back to using the linker directly.


The intent of the test was to exercise the assembler functionality, when there was no C compiler. I confirmed this with Michael, the testsuite's author.

I've never had the time to do it though :-(

Andrew

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





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]