[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