This is the mail archive of the mailing list for the crossgcc project.

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

Re: ns32k-pc532-netbsd problems wrote:

> I am trying to build an ns32k-pc532-netbsd crosscompiler, I used the
> sources for binutils egcs from netbsd itself, after solving some
> problems I was able to build the binutils and crosscompiler.
> But when I try to compile anything the compiler comes up with the
> following :
> \\z\ns32k-pc532-netbsd\ns32k-pc532-netbsd\lib\crt0.o(.text 0x44): undefined reference to `_DYNAMIC'
> \\z\ns32k-pc532-netbsd\ns32k-pc532-netbsd\lib\crt0.o(.text 0x55): undefined reference to `_DYNAMIC'
> collect2: ld returned 1 exit status

 Your internal linker script (see it with 'ld -verbose') should have 
something equivalent as follows:

------------- clip ------------------
D:\usr\local\i486-netbsd\bin>ld -verbose
GNU ld version 2.9.1 (with BFD 2.9.1)
  Supported emulations:
using internal linker script:
OUTPUT_FORMAT("a.out-i386-netbsd", "a.out-i386-netbsd",
__DYNAMIC = 0;
PROVIDE (__stack = 0);
------------- clip ------------------

in the beginning. The linker should take the value of '_DYNAMIC' (or 
'__DYNAMIC' as here) from it. Anyway the error,

   crt0.o(.text 0x44): undefined reference to `_DYNAMIC'

says that your startup file, 'crt0.o' needs it, and your linker and the 
startup file don't agree with the right name or the linker script lacks the 
'_DYNAMIC = 0;' line...

 Please check your 'crt0.o' with 'nm' :

------------- clip ------------------
D:\usr\local\i486-netbsd\lib>..\bin\nm crt0.o
         U __DYNAMIC
000007cc D ___progname
000007d0 D ___ps_strings
00000054 T ___start
         U _atexit
000006e8 T _dlclose
00000730 T _dlctl
00000770 T _dlerror
000006c4 T _dlopen
0000070c T _dlsym
00000004 C _environ
00000004 C _errno
         U _exit
         U _main
         U _strerror
00000000 T start
------------- clip ------------------

to get the right name (should be undefined '_DYNAMIC' there...)

 Something is wrong with the linker template for NetBSD in the binutils sources 
you used. I don't remember that I had to fix something to get the '__DYNAMIC' 
into my linker... The linker templates are in 'ld/emulparams'... Let's look at 
binutils-2.9.1 sources...

In 'ld/emulparams' I found: :


and :


 So it seems that the last line in '' is missing from 
''... You can try to add a line:


into it (if this was the name in your 'crt0.o', rebuild the linker and see what 

 Of course you can use the '-T <script>' to force it to use your own script 
(e.g. extracted and modified from the internal script), but checking if this 
is a bug in NetBSD-support in binutils, fixing it and reporting the bug to the 
address mentioned in binutils docs, or to the 'gnu.utils.bugs' newsgroup could 
be much better...

 Cheers, Kai

New CrossGCC FAQ:
To remove yourself from the crossgcc list, send
mail to with the
text 'unsubscribe' (without the quotes) in the
body of the message.

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