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]

linker script error compiling linux-host, i386-go32 target


I am trying to create a cross-compiler hosted on linux, which 
can compile programs for DOS.

I'm running into trouble I cannot find on dejanews, other web-sites
or even in the FAQ.

I've downloaded gcc-2.8.1.tar.gz, binutils-2.9.1.tar.gz and
newlib-1.8.1.tar.gz. I've also downloaded the cross-gcc faq
0.8.2, one-tree-1.5.sh and crossgcc-gcc-2.8.1.patch.
This was I think all that would be required to make this work, right?
I'm compiling on a heavily patched RH 5.0 system, kernel 2.1.131ac10,
egcs-1.1.1, binutils-2.9.1.

After running one-tree-1.5.sh and configure as per the FAQ:

../src/configure --target=i386=go32 --prefix=/usr/local/cross -v
make all install

I get a linker-script error in ld. I'm not proficient enough in the build
process to have any inkling of what might be going wrong here. I can see
this is when testing gcc to link the new library, and it says 'ignore 
linker errors' but somehow I think this is a bit more serious....

I really would appreciate any pointers on what is going wrong here or
what I'm doing wrong here. Also some info on what to use for --prefix above
would be nice. I've tried different settings, and all give the same error,
but I don't really know what I should say there.

Finally, pointers to precompiled binaries of this linux-host, dos-target
compiler-tool would be nice, since I haven't been able to find them.

Below are the last few lines of the on-screen progess of 'make all install':
<please excuse the troublesome line-width of 112 characters>

if [ xlibgcc1.null != x ];                      \                                                               
then (cd tmpcopy; /home/jurriaan/cross/build/binutils/ar x ../libgcc1.null);    \                               
else true;                                      \                                                               
fi                                                                                                              
(cd tmpcopy; chmod +w * > /dev/null 2>&1)                                                                       
(cd tmpcopy; /home/jurriaan/cross/build/binutils/ar x ../libgcc2.a)                                             
(cd tmpcopy; /home/jurriaan/cross/build/binutils/ar rc ../tmplibgcc.a *.o)                                      
rm -rf tmpcopy                                                                                                  
if [ -f /usr/local/cross/i386-go32/bin/ranlib ] ; then /home/jurriaan/cross/build/binutils/ranlib tmplibgcc.a; e
lse true; fi                                                                                                    
mv tmplibgcc.a libgcc.a                                                                                         
/home/jurriaan/cross/build/gcc/xgcc -B/home/jurriaan/cross/build/gcc/ -DCROSS_COMPILE -DIN_GCC    -g -O2 -I./inc
lude     -c ../../src/gcc/libgcc1-test.c                                                                        
Testing libgcc1.  Ignore linker warning messages.                                                               
/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                                                                                     


the linker-scripts in /home/jurriaan/cross/build/ld/ld-scripts:

--------------------
i386go32.x
--------------------
OUTPUT_FORMAT("coff-go32-exe")
ENTRY(start)
SECTIONS
{
  .text  0x1000+SIZEOF_HEADERS : {
    *(.text)
    *(.const*)
    *(.ro*)
    etext  =  . ; _etext = .;
    . = ALIGN(0x200);
  }
  .data  ALIGN(0x200) : {
    djgpp_first_ctor = . ;
    *(.ctor)
    djgpp_last_ctor = . ;
    djgpp_first_dtor = . ;
    *(.dtor)
    djgpp_last_dtor = . ;
    *(.data)
     edata  =  . ; _edata = .;
     . = ALIGN(0x200);
  }
   }
   }
  .bss  SIZEOF(.data) + ADDR(.data) :
  { 					
    *(.bss)
    *(COMMON)
     end = . ; _end = .;
     . = ALIGN(0x200);
  }
}
--------------------
i386go32.xbn
--------------------
OUTPUT_FORMAT("coff-go32-exe")
ENTRY(start)
SECTIONS
{
  .text  0x1000+SIZEOF_HEADERS : {
    *(.text)
    *(.const*)
    *(.ro*)
    etext  =  . ; _etext = .;
    . = ALIGN(0x200);
  }
  .data  . : {
    djgpp_first_ctor = . ;
    *(.ctor)
    djgpp_last_ctor = . ;
    djgpp_first_dtor = . ;
    *(.dtor)
    djgpp_last_dtor = . ;
    *(.data)
     edata  =  . ; _edata = .;
     . = ALIGN(0x200);
  }
   }
   }
  .bss  SIZEOF(.data) + ADDR(.data) :
  { 					
    *(.bss)
    *(COMMON)
     end = . ; _end = .;
     . = ALIGN(0x200);
  }
}
--------------------
i386go32.xn
--------------------
OUTPUT_FORMAT("coff-go32-exe")
ENTRY(start)
SECTIONS
{
  .text  0x1000+SIZEOF_HEADERS : {
    *(.text)
    *(.const*)
    *(.ro*)
    etext  =  . ; _etext = .;
    . = ALIGN(0x200);
  }
  .data  ALIGN(0x200) : {
    djgpp_first_ctor = . ;
    *(.ctor)
    djgpp_last_ctor = . ;
    djgpp_first_dtor = . ;
    *(.dtor)
    djgpp_last_dtor = . ;
    *(.data)
     edata  =  . ; _edata = .;
     . = ALIGN(0x200);
  }
   }
   }
  .bss  SIZEOF(.data) + ADDR(.data) :
  { 					
    *(.bss)
    *(COMMON)
     end = . ; _end = .;
     . = ALIGN(0x200);
  }
}
--------------------
i386go32.xr
--------------------
OUTPUT_FORMAT("coff-go32")
ENTRY(start)
SECTIONS
{
  .text  : {
    *(.text)
    *(.const*)
    *(.ro*)
    ;
  }
  .data  : {
    *(.data)
    ;
  }
  }
  }
  .bss  :
  { 					
    *(.bss)
    *(COMMON)
    ;
  }
}
--------------------
i386go32.xu
--------------------
OUTPUT_FORMAT("coff-go32")
ENTRY(start)
SECTIONS
{
  .text  : {
    *(.text)
    *(.const*)
    *(.ro*)
    ;
  }
  .data  : {
    *(.data)
    ;
  }
  .ctor : { *(.ctor) }
  .dtor : { *(.dtor) }
  .bss  :
  { 					
    *(.bss)
    *(COMMON)
    ;
  }
}

-- 
My name is Bond..  Covalent Bond.
_______________________________________________
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.