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: djgcpp cross assembler for PPC


gcc said:

> Using builtin specs.

This means that it is not finding the correct 'specs' file to tell it to
assemble for little-endian output.

You need to add the text '-b ppc' to the gcc command line, eg 'gcc -b
ppc -gstabs -v -mlittle-endian hello.c'

Actually, I'm not sure why it was able to find the power pc executables
at all, are you sure that you un-zipped the archives into the correct
subdirectory?  And that they were unzipped with the '-d' option to
preserve directory structure?

There is more detail on installation on the downloads page,
http://www.objsw.com/download.html (scroll down the page a bit to see
the installation stuff).

Michel_Pinton@swhouse.com wrote:
> 
> Hi,
> I am having problems with the cross assembler (djgcpp as downloaded from
> the www.objsw.com/download site) for the PPC cross assembler and the
> little-endian runtimes.
> 
> When compiling a small test program the assembler seems to be creating a
> big-endian object file which then links to the little-endian libs and
> fails.
> 
> Is it possible that the as built for this was built assuming big-endian?
> 
> Thanks for info,
> Michel
> ---------------------------------------
> Michel Pinton
> Sr Principal S/W Engineer
> Sensormatic ACD
> 
> Here's the command line and output.
> 
> My command line is ->
> gcc -gstabs       -v    -mlittle-endian    hello.c
> 
> the output  (due to the -v option) is ->
> 
> Using builtin specs.
> gcc version 2.8.1
>  d:/xgcc/ppc/2_8_1/cpp.exe -lang-c -v -iprefix d:/xgcc/dos/2_8_1/ -undef
> -D__GNUC__=2 -D__GNUC_MIN
> -gstabs -Di386 -Asystem(unix) -Acpu(i386) -Amachine(i386) -D__i386__
> -Asystem(unix) -Acpu(i386) -A
> GNU CPP version egcs-2.90.29 980515 (egcs-1.0.3 release) (PowerPC Embedded)
> #include "..." search starts here:
> #include <...> search starts here:
>  d:/xgcc/ppc/2_8_1/include
> End of search list.
>  d:/xgcc/ppc/2_8_1/cc1.exe C:\TEMP/ccaaaaaa.i -quiet -dumpbase hello.c
> -mlittle-endian -gstabs -ve
> GNU C version egcs-2.90.29 980515 (egcs-1.0.3 release) (ppc) compiled by
> GNU C version 2.8.1.
> hello.c: In function `main':
> hello.c:32: warning: return type of `main' is not `int'
>  d:/xgcc/bin/as.exe -o C:\TEMP/ccaaaaaa1.o C:\TEMP/ccaaaaaa.s
>  d:/xgcc/bin/ld.exe d:/xgcc/ppc/2_8_1/le/crt0.o -Ld:/xgcc
> -Ld:/xgcc/ppc/2_8_1/le C:\TEMP/ccaaaaaa1
> d:/xgcc/bin/ld.exe: d:/xgcc/ppc/2_8_1/le/crt0.o: compiled for a little
> endian system and target is
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/crt0.o
> d:/xgcc/bin/ld.exe: eabi.o: compiled for a little endian system and target
> is big endian
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/libgcc.a(e
> d:/xgcc/bin/ld.exe: eabi-ctors.o: compiled for a little endian system and
> target is big endian
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/libgcc.a(e
> d:/xgcc/bin/ld.exe: atexit.o: compiled for a little endian system and
> target is big endian
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/libg.a(ate
> d:/xgcc/bin/ld.exe: exit.o: compiled for a little endian system and target
> is big endian
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/libg.a(exi
> d:/xgcc/bin/ld.exe: impure.o: compiled for a little endian system and
> target is big endian
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/libg.a(imp
> d:/xgcc/bin/ld.exe: malloc.o: compiled for a little endian system and
> target is big endian
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/libg.a(mal
> d:/xgcc/bin/ld.exe: mallocr.o: compiled for a little endian system and
> target is big endian
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/libg.a(mal
> d:/xgcc/bin/ld.exe: memcpy.o: compiled for a little endian system and
> target is big endian
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/libg.a(mem
> d:/xgcc/bin/ld.exe: sbrkr.o: compiled for a little endian system and target
>  is big endian
> File in wrong format: failed to merge target specific data of file
> d:/xgcc/ppc/2_8_1/le/libg.a(sbr
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x8): undefined reference to
> `__SDATA_START__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0xc): undefined reference to
> `__SBSS_END__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x14): undefined reference to
> `__SDATA2_START__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x18): undefined reference to
> `__SBSS2_END__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x1c): undefined reference to
> `__GOT_START__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x28): undefined reference to
> `__GOT_END__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x2c): undefined reference to
> `__GOT2_START__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x30): undefined reference to
> `__GOT2_END__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x34): undefined reference to
> `__FIXUP_START__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x38): undefined reference to
> `__FIXUP_END__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x4c): undefined reference to
> `__EXCEPT_START__'
> d:/xgcc/ppc/2_8_1/le/libgcc.a(eabi.o)(.got2+0x50): undefined reference to
> `__EXCEPT_END__'
> 
> _______________________________________________
> 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.
_______________________________________________
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.