linker script error compiling linux-host, i386-go32 target
David Querbach
querbach@realtime.bc.ca
Wed Feb 17 11:27:00 GMT 1999
thunder7@xs4all.nl wrote:
>
> I am trying to create a cross-compiler hosted on linux, which
> can compile programs for DOS.
>
> Below are the last few lines of the on-screen progess of 'make all install':
> <please excuse the troublesome line-width of 112 characters>
>
> /home/jurriaan/cross/build/gcc/xgcc -B/home/jurriaan/cross/build/gcc/
-DCROSS_COMPILE -DIN_GCC -g -O2 -I./inc
> lude libgcc1-test.o -o libgcc1-test \
> -nostartfiles -nostdlib `/home/jurriaan/cross/build/gcc/xgcc
-B/home/jurriaan/cross/build/gcc/ --print-libgcc-
> file-name`
> /home/jurriaan/cross/build/gcc/ld:built in linker script:24: parse error
> make[1]: *** [libgcc1-test] Error 1
> make[1]: Leaving directory `/home/jurriaan/cross/build/gcc'
> make: *** [all-gcc] Error 2
I just recently found this problem myself. The new version of bash
distributed with Debian 2.0 has a slightly different brace expansion
which causes problems in binutils/ld/scripttempl/i386go32.sc. The
construct
${CONSTRUCTING+${RELOCATING-.ctor : { *(.ctor) }}}
${CONSTRUCTING+${RELOCATING-.dtor : { *(.dtor) }}}
leaves stray closing braces in some of the built-in linker scripts.
Instead, I had to quote the inner brackets to ensure they were ignored
during the parameter expansion:
${CONSTRUCTING+${RELOCATING-.ctor : "{ *(.ctor) }"}}
${CONSTRUCTING+${RELOCATING-.dtor : "{ *(.dtor) }"}}
Change this file and try again -- you should have more success.
Regards,
David Querbach
_______________________________________________
New CrossGCC FAQ: http://www.objsw.com/CrossGCC
_______________________________________________
To remove yourself from the crossgcc list, send
mail to crossgcc-request@cygnus.com with the
text 'unsubscribe' (without the quotes) in the
body of the message.
More information about the crossgcc
mailing list