This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Bootstrap gcc for powerpc-eabi


Hello, I'm new to the list and could use some help.

I am trying to build a gnu toolchain for a non-linux, powerpc-eabi
target, using newlib, but I've been having trouble with the bootstrap
gcc needed to build newlib.

From what I can tell, I've been following a pretty standard procedure
to:
1) Build binutils (2.17)
2) Build bootstrap gcc (3.4.6)
3) Build newlib (1.15)
4) Build full gcc

However, the bootstrap gcc that I build in step 2 doesn't seem to work
correctly.  Although it builds without errors, the newlib configuration
script fails because gcc can't create executables, 

Here are the specific steps I'm taking and the error messages that I
get:

#Setup environment/aliases...
export TARGET=powerpc-unknown-eabi
export PREFIX=/usr/local/cross
export PATH=$PATH:$PREFIX/bin

#Build Binutils
cd build-binutils
../binutils-2.17/configure --target=$TARGET --prefix=$PREFIX -v
make all
make install
  <Binutils appears to build without errors and install correctly>

#Build bootstrap gcc
cd build-gcc
../gcc-3.4.6/configure --target=$TARGET --prefix=$PREFIX \
--without-headers --with-newlib --disable-threads --disable-shared \
--enable-languages=c -v
make all-gcc
make install-gcc
  <gcc builds and installs without any errors>

#Build Newlib
cd build-newlib
CC=${TARGET}-gcc ../newlib-1.15.0/configure --host=$TARGET
--prefix=$PREFIX
  <which fails with the following output>

craig@Helios:~/tools/build-newlib> CC=${TARGET}-gcc
../newlib-1.15.0/configure --host=$TARGET --prefix=$PREFIX
creating cache ./config.cache
checking host system type... powerpc-unknown-eabi
checking target system type... powerpc-unknown-eabi
checking build system type... powerpc-unknown-eabi
checking for a BSD compatible install... ../newlib-1.15.0/install-sh -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for gcc... powerpc-unknown-eabi-gcc
checking whether the C compiler (powerpc-unknown-eabi-gcc  ) works... no
configure: error: installation or configuration problem: C compiler
cannot create executables.

If I try to compile a simple c program with the bootstrap compiler I
just built, I get the following output:

craig@Helios:~/tools> powerpc-unknown-eabi-gcc -o hello2 hello.c
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/../../../../powerpc-
unknown-eabi/bin/ld: warning: cannot find entry symbol _start;
defaulting to 01800074
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o): In
function `__eabi':
/export/home/craig/tools/build-gcc/gcc/eabi.S:232: undefined reference
to `__init'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x8): undefined reference to `__SDATA_START__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0xc): undefined reference to `__SBSS_END__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x14): undefined reference to `__SDATA2_START__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x18): undefined reference to `__SBSS2_END__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x1c): undefined reference to `__GOT_START__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x28): undefined reference to `__GOT_END__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x2c): undefined reference to `__GOT2_START__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x30): undefined reference to `__GOT2_END__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x34): undefined reference to `__FIXUP_START__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x38): undefined reference to `__FIXUP_END__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x3c): undefined reference to `__CTOR_LIST__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x40): undefined reference to `__CTOR_END__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x44): undefined reference to `__DTOR_LIST__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x48): undefined reference to `__DTOR_END__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x4c): undefined reference to `__EXCEPT_START__'
/usr/local/cross/lib/gcc/powerpc-unknown-eabi/3.4.6/libgcc.a(eabi.o):(.g
ot2+0x50): undefined reference to `__EXCEPT_END__'
collect2: ld returned 1 exit status

I've tried this procedure on three different host systems:
i386-pc-solaris2.10, i86_64-pc-gnu-linux and i686-pc-gnu-linux, and
several combinations of binutils (2.14, 2.15, 2.16, 2.17), gcc (2.95.,
3.3.x, 3.4.x, 4.1.2), and the result is essentially the same.  I think I
can exclude host or source issues, and since most people that have had
problems on this list get farther than I do, I'm led to believe I'm
doing something wrong in my build procedure.  Does anyone have any
suggestions?

Thanks in advance for the help.
Craig Miller, ViaSat, Inc.



--
For unsubscribe information see http://sourceware.org/lists.html#faq


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