This is the mail archive of the crossgcc@cygnus.com 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: linker script error compiling linux-host, i386-go32 target


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.