This is the mail archive of the newlib@sourceware.cygnus.com mailing list for the newlib project.


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

More newlib issues w/StrongARM Target


Hello!

In our attempt to build newlib for a StrongARM target, we decided to
build a separate toolchain and use the newlib headers. However in doing
so, we have encountered some additional difficulties.

We are using:

Binutils-2.9.1.0.19a + Binutils-2.9.1.0.19a-arm-diff981230patch
EGCS-1.1.1 + EGCS-1.1.1-arm-diff-990113patch
NewLib 1.8.2

(Though the binutils & EGCS are out of date, they have worked decently
up
till now).

We started with a clean environment and 
began by unpacking newlib and making the ARM 
binutils. Next we unpacked + patched EGCS, and then compiled it using 
the --with-headers= and pointed to the newlib include directory
(../newlib-1.8.2/newlib/libc/include). 


Binutils & EGCS compiled fine and 
produced arm-elf-gcc and arm-linux-* 
(where * == the rest of the tools like ar,
ranlib, etc.) executables.

Following that, we went to our root toolchain dir, and 
issued the command "mkdir newlib-arm-elf; cd newlib-arm-elf".

Then we issued "../newlib-1.8.2/configure --host=i686 --target=arm-elf"
followed by a "make".

The make executed the configure scripts, found the correct arm-elf-gcc
and the rest of the cross-tool chain properly, however the make stops on
a peculiar error (see below for errors messages)

Should we be using a newer compiler (GCC 2.95.2.42) and binutils or have
we just configured newlib incorrectly?

Yesterday we succesfully *built* an ARM targeted newlib but we
used EGCS + Binutils (same versions as used in this last build) that
relied on glibc and not the newlib headers. Though we produced a 
libc.a(for ARM) using our original cross-compilers, the compiler
would not properly include the newlib headers hence we were not 
to see if the resulting executable was valid.
(Our configuration for newlib was:
../newlib-1.8.2/configure --host=i686 --target=arm-elf followed by a
make).

Looking at the error messages, to us it seems as if it is trying to
generate x86/386 code...

If you have any suggestions, please let us know.

Thanks,
Dave Croyle & Vasant Ram.

config.status from the newlib-arm-elf:
#!/bin/sh
# This file was generated automatically by configure.  Do not edit.
# This directory was configured as follows:
../newlib-1.8.2/configure --host=i686 --target=arm-elf --norecursion 
# 

(warning, very long list of errors to follow)


Making all in stdlib
make[5]: Entering directory
`/newlib-arm-elf/arm-elf/le/newlib/libc/stdlib'
arm-elf-gcc  -mlittle-endian -DPACKAGE=\"newlib\" -DVERSION=\"1.8.2\" 
-I.
-I../../../../../../newlib-1.8.2/newlib/libc/stdlib  -O2
-DABORT_PROVIDED
-DHAVE_GETTIMEOFDAY -DARM_RDI_MONITOR -I../../targ-include
-I../../../../../../newlib-1.8.2/newlib/libc/../libc/include
-fno-builtin
-g -O2 -W -Wall  -mlittle-endian -c
../../../../../../newlib-1.8.2/newlib/libc/stdlib/__adjust.c
/tmp/ccIMkXDe.s: Assembler messages:
/tmp/ccIMkXDe.s:2: Error: no such 386 instruction: `rfp'
/tmp/ccIMkXDe.s:3: Error: no such 386 instruction: `sl'
/tmp/ccIMkXDe.s:4: Error: no such 386 instruction: `fp'
/tmp/ccIMkXDe.s:5: Error: no such 386 instruction: `ip'
/tmp/ccIMkXDe.s:6: Error: no such 386 instruction: `sp'
/tmp/ccIMkXDe.s:7: Error: no such 386 instruction: `lr'
/tmp/ccIMkXDe.s:8: Error: no such 386 instruction: `pc'
/tmp/ccIMkXDe.s:93: Error: Rest of line ignored. First ignored character
is `@'.
/tmp/ccIMkXDe.s:94: Error: Rest of line ignored. First ignored character 
is `@
/tmp/ccIMkXDe.s:96: Error: operands given don't match any known 386
instruction
/tmp/ccIMkXDe.s:97: Error: no such 386 instruction: `stmfd'
/tmp/ccIMkXDe.s:98: Error: no such 386 instruction: `stfe'
/tmp/ccIMkXDe.s:100: Error: expecting operand after ','; got nothing
/tmp/ccIMkXDe.s:102: Error: expecting operand after ','; got nothing
/tmp/ccIMkXDe.s:103: Error: operands given don't match any known 386
instruction
/tmp/ccIMkXDe.s:105: Error: no such 386 instruction: `ble'
/tmp/ccIMkXDe.s:107: Error: no such 386 instruction: `ldr'
/tmp/ccIMkXDe.s:108: Error: no such 386 instruction: `ldfd'
/tmp/ccIMkXDe.s:110: Error: expecting operand after ','; got nothing
/tmp/ccIMkXDe.s:111: Error: invalid char '[' begining second operand
'[r0'
/tmp/ccIMkXDe.s:113: Error: expecting operand after ','; got nothing
/tmp/ccIMkXDe.s:114: Error: no such 386 instruction: `mnfned'
/tmp/ccIMkXDe.s:115: Error: no such 386 instruction: `b'
/tmp/ccIMkXDe.s:122: Error: no such 386 instruction: `cmn'
/tmp/ccIMkXDe.s:124: Error: no such 386 instruction: `movlt'
/tmp/ccIMkXDe.s:125: Error: no such 386 instruction: `strlt'
/tmp/ccIMkXDe.s:127: Error: no such 386 instruction: `mvfltd'
/tmp/ccIMkXDe.s:128: Error: no such 386 instruction: `blt'
/tmp/ccIMkXDe.s:131: Error: no such 386 instruction: `ldfd'
/tmp/ccIMkXDe.s:133: Error: expecting operand after ','; got nothing
/tmp/ccIMkXDe.s:135: Error: no such 386 instruction: `mnfned'
/tmp/ccIMkXDe.s:138: Error: expecting operand after ','; got nothing
/tmp/ccIMkXDe.s:140: Error: no such 386 instruction: `mvfeqd'
/tmp/ccIMkXDe.s:141: Error: no such 386 instruction: `beq'
/tmp/ccIMkXDe.s:145: Error: no such 386 instruction: `movge'
/tmp/ccIMkXDe.s:146: Error: no such 386 instruction: `blge'
/tmp/ccIMkXDe.s:147: Error: no such 386 instruction: `mufged'
/tmp/ccIMkXDe.s:150: Error: no such 386 instruction: `eorlt'
/tmp/ccIMkXDe.s:151: Error: no such 386 instruction: `sublt'
/tmp/ccIMkXDe.s:152: Error: no such 386 instruction: `bllt'
/tmp/ccIMkXDe.s:153: Error: no such 386 instruction: `dvfltd'
/tmp/ccIMkXDe.s:157: Error: no such 386 instruction: `ldfe'
/tmp/ccIMkXDe.s:158: Error: no such 386 instruction: `ldmea'
make[5]: *** [__adjust.o] Error 1
make[5]: Leaving directory
`/usr/local/home/vram/strongarm_embedded/armbuild/newlib-arm-elf/arm-elf/le/newlib/libc/stdlib'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory
`/usr/local/home/vram/strongarm_embedded/armbuild/newlib-arm-elf/arm-elf/le/newlib/libc'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory
`/usr/local/home/vram/strongarm_embedded/armbuild/newlib-arm-elf/arm-elf/le/newlib'
make[2]: *** [multi-do] Error 1
make[2]: Leaving directory
`/usr/local/home/vram/strongarm_embedded/armbuild/newlib-arm-elf/arm-elf/newlib'
make[1]: *** [all-multi] Error 2
make[1]: Leaving directory
`/usr/local/home/vram/strongarm_embedded/armbuild/newlib-arm-elf/arm-elf/newlib'
make: *** [all-target-newlib] Error 2

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