This is the mail archive of the crossgcc@sources.redhat.com 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]

RE: Building und/libiberty for powerpc-eabi cross compiler fails due to linker error


I finished building the toolchain under cygwin with the following
libraries/sequence :

Tars weree in /GccTars/

1) Extract all

cygwin$ target=powerpc-eabi
cygwin$ prefix=/ppc
cygwin$ src_root=~/gnu
  
cygwin$ mkdir $src_root
cygwin$ cd $src_root

cygwin$ tar xf /GccTars/binutils-2.14.tar
cygwin$ tar xf /GccTars/newlib-1.11.0.tar
cygwin$ tar xf /GccTars/gcc-3.3.2.tar
cygwin$ tar xf /GccTars/gdb-6.0.tar

cygwin$ mkdir -p $src_root/BUILD/binutils
cygwin$ cd $src_root/BUILD/binutils
cygwin$ $src_root/binutils-2.14/configure --with-included-gettext
--target=$target --prefix=$prefix -v
cygwin$ make
cygwin$ make install

export PATH=$prefix/bin:$PATH

2) Build a bootload GCC

cygwin$ mkdir $src_root/BUILD/gcc
cygwin$ cd $src_root/BUILD/gcc
cygwin$ $src_root/gcc-3.3.2/configure --enable-languages=c,c++
--with-included-gettext --enable-shared --enable-threads --target=$target
--prefix=$prefix --with-newlib -v
cygwin$ make LANGUAGES=c all-gcc
cygwin$ make LANGUAGES=c install

3) Build the libraries

cygwin$ mkdir $src_root/BUILD/newlib
cygwin$ cd $src_root/BUILD/newlib
cygwin$ $src_root/newlib-1.11.0/configure -target=$target -prefix=$prefix -v
cygwin$ make
cygwin$ make install

4) Build the Full GCC

cygwin$ cd $src_root/BUILD/gcc
cygwin$ make
cygwin$ make install

5) Build GDB

cygwin$ mkdir $src_root/BUILD/gdb
cygwin$ cd $src_root/BUILD/gdb
cygwin$ $src_root/gdb-6.0/configure --target=$target --prefix=$prefix
cygwin$ make
cygwin$ make install

No errors, of course many warnings.  I used the same method successfully on
Solaris 8 as well. 

However, the reason I am responding to this post is that I experienced
similar problems to those that Hermann-Simon Lichte experienced on my first
attempt (about 2 weeks ago).  I am using exactly the same tar files, so it
was clearly due to the command line options that I used.  

I eventually got the first build to work by using a number of hacks but I
didn't document exactly what I did.  It was my first attempt at building the
tool chain and I made quite a few mistakes (half the steps were compensating
for other incorrect steps).  I would recommend starting over with clean
directories.

I also updated by cygwin environment between attempts.  I don't think this
mattered but it might have.

The method above is a slightly modfified version of:
http://www.nanotech.wisc.edu/~khan/software/gnu-win32/cygwin-to-newlib-cross
-howto.txt

I hope this helps.
Good Luck,
Derek

-----Original Message-----
From: crossgcc-owner@sources.redhat.com
[mailto:crossgcc-owner@sources.redhat.com] On Behalf Of Kai Ruottu
Sent: Friday, February 06, 2004 8:44 AM
To: Hermann-Simon Lichte
Cc: crossgcc@sources.redhat.com
Subject: Re: Building und/libiberty for powerpc-eabi cross compiler fails
due to linker error


On 3 Feb 2004 at 13:41, Hermann-Simon Lichte wrote:

> I am trying to build a powerpc-eabi cross compiler on an 
> i686-pc-cygwin
> host. I followed Bill Gatliff's tutorial, however, building the complete 
> cross compiler fails.
> 
> I am using binutils-2.14, gcc-3.3.2 and newlib-1.11.0. Compiling
> binutils, the bootstrap gcc, and newlib isn't a problem.
> 
> When compiling the complete gcc, 'make all' fails because the compiler
> does not know what target it should generate executables for.

 Is somewhere any evidence that the usual way of building newlib- based GCCs
doesn't produce working libraries with the generic newlib headers?  Ie. when
one copies the '.../newlib/libc/include' into one's chosen $prefix/$target,
makes the necessary symlinks to be seen in the $prefix/$target/sys-include,
configures GCC using the '--with-newlib', builds (almost) everything coming
with the GCC sources and installs the stuff. Then builds and installs
newlib.

 The PowerPC target(s) replace some 'generic' headers with the PPC-dependent
ones with AltiVec-function protos and such, but do these really have any
influence to libgcc, libiberty and
libstdc++ ?  Most targets use the generic headers as they are,
so building all the newlib-based GCCs in the same way could be the rule.

 Someone with a quick PC could experiment and see whether
the generic headers could produce different results than when the
powerpc-specific headers are used.

 Ok, in this case it was weird that the '--with-newlib' was not used in the
GCC configure although newlib was the C library and creating executables
with the defaults doesn't succeed.

 BTW, the bug with the '__end' is in all those '.ld' files for PPC coming
with newlib-1.11.0...

Cheers, Kai


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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