[PATCH/RFC] Fix asm-source.exp on FreeBSD
Andrew Cagney
ac131313@redhat.com
Sat May 10 14:24:00 GMT 2003
> 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
>
More information about the Gdb-patches
mailing list