ld core dump

robert_f_sharp@platts.com robert_f_sharp@platts.com
Thu Apr 10 18:03:00 GMT 2003



Thanks Nick

I will experiment with your suggestions for diagnostics and see what I can find.
I have tried to use GNU tools (gcc, ld) completely. The build will compile and
link the 64bit smbd program etc but I think the problem is with building 64bit
shared objects . I think the linker should just look at the ELF headers on the
input files and determine the mode, 32 or 64 bit. I will look for a 64bit linker
directive for shared objects. I guess my main problem is ld that ld turns it's
toes up (core dumps) and that introduces the question of how much can you trust
its error messages, I would have thought it should be a little more robust.

Robert S.




Nick Clifton <nickc@redhat.com> on 09/04/2003 16:37:56
                                                              
                                                              
                                                              
 To:      Robert F Sharp/ST/FIS@FIS                           
                                                              
 cc:      binutils@sources.redhat.com                         
                                                              
                                                              
                                                              
 Subject: Re: ld core dump                                    
                                                              





Hi Robert,

> luck. I have included the latest output. The one thing that attracts my
> attention is the output, sparc, not as it should be, sparcv9. Is it trying to
> link libnss_winbind.so as a 32bit (sparc?) oject?

Probably.  It sounds like you have a 32bit sparc targeted linker, so
it is trying to create a 32bit sparc executable, and it gets rather
confused when you give it 64bit libraries...

I am not a sparc expert, so I am not sure whether there is a different
linker to create 32bit and 64bit executable or just one linker and a
command line switch.  (Or maybe there is only one linker and the
linker is supposed to be clever and work out which kind of binary it
is supposed to create from its input files).

> bash-2.05$ make
> Using FLAGS =  -O -m64 -I./popt -Iinclude -I./include -I./ubiqx -I./smbwrapper

Could you make "make" tell you the *exact* command line that it is
executing ?  It may be that there are some strange switches in there,
or maybe a 32bit object file...  Also could you add "-v" to the
command line ?  I assume that you are using gcc to drive the linker,
so passing "-v" to gcc will cause it to print out the command line
that it is using to invoke the linker

Cheers
        Nick






More information about the Binutils mailing list