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]

RE: Newbie can't build linux cross-compiler for solaris


Title: RE: Newbie can't build linux cross-compiler for solaris

Thanks!  I will continue into the evening ...

Yes, I found references on Canadian Cross, but
I never made the connection between a Canadian
Cross and 'make cross' -- you're right, this
newsgroup is absolutely essential ...

> -----Original Message-----
> From: jimk [mailto:jimk@scitechsoft.com]
> Sent: Thursday, August 30, 2001 5:22 PM
> To: David Thompson
> Subject: RE: Newbie can't build linux cross-compiler for solaris
>
>
> I'm almost positive you don't want the 'make cross' version. 
> I believe that is to
> make what they call a Canadian Cross which is a cross
> compiler that is built
> on OS 'A', run on OS 'B', and targeting OS 'C'.  It's
> actually not too difficult
> once you start to understand what's going on, but it took me
> a while to figure it
> out and the mailing list was absolutely necessary.  I doubt I
> could have gotten
> anywhere without it.  Now, my cross-compiler works great and
> I use it every
> day.
>
> Actually, here's some notes I made when I was building mine. 
>
> build native gcc
> ----------------
> mkdir /build-native
> cd /build-native
> /gcc-2.95.3-2/configure --prefix=/usr/native
> make bootstrap
> make install
>
>
> build cross-binutils
> --------------------
> export target=i386-redhat-linux
> export prefix=/usr/crosslinux
> path needs to start with
> /usr/i686-pc-cygwin/bin:/usr/native/bin:$PATH
> export CC=/usr/native/bin/gcc.exe     // I think this needs
> to be here...not sure
> mkdir /build-binutils-linux
> cd /build-binutils-linux
> /binutils-2.11/configure --target=$target --prefix=$prefix -v
> make all install
>
>
>
> build cross-gcc
> ---------------
> copy headers from /usr/include on linux to /usr/include-rh7
> under cygwin
> mkdir /build-gcc-linux
> cd /build-gcc-linux
> path needs to start with
> /usr/cross-linux:/usr/cross-linux/bin:/usr/i686-pc-
> cygwin/bin:/usr/native/bin:$PATH
> export CC=/usr/native/bin/gcc.exe
> /gcc-2.95.3-2/configure --target=$target --prefix=$prefix --with-h
> eaders=/usr/include-rh7 -v
>
> make LANGUAGES="c" all install
>
> copy libraries from /lib on linux to
> /lib/gcc/i386-redhat-linux/2.95.3-2
> copy libraries from /usr/lib on linux to
> /usr/cross-linux/i386-redhat-linux/lib
> edit /usr/cross-linux/i386-redhat-linux/lib/libc.so to
> contain the following:
> GROUP ( /usr/lib/gcc/i386-redhat-linux/2.95.3-2/libc.so.6
> /usr/cross-linux/i386-
> redhat-linux/lib/libc_nonshared.a
> /usr/lib/gcc/i386-redhat-linux/2.95.3-2/ld-lin
> ux.so.2 )
>
> then go back and do a make install LANGUAGES="c c++"
>
> Good luck.
> -Jim
>
>
>
> On 30 Aug 2001, at 16:58, David Thompson wrote:
>
> > Thanks!  I'm trying that, too.  Man, why is building a cross
> > compiler so hard?  No website seems to have all the answers,
> > I've even learned I should say 'make cross', which no website
> > has ever mentioned so far ...
> >
> > > -----Original Message-----
> > > From: jimk [mailto:jimk@scitechsoft.com]
> > > Sent: Thursday, August 30, 2001 4:51 PM
> > > To: David Thompson; 'crossgcc'
> > > Subject: RE: Newbie can't build linux cross-compiler for solaris
> > >
> > >
> > > Hi David,
> > >
> > > I've built a cross-compiler targetting linux hosted on my
> > > win2k box.  Below is
> > > an email I exchanged with Kevin about how I was able to do
> > > this.  I think it will
> > > answer your questions.
> > >
> > > HTH
> > > -(some other) Jim
> > >
> > > <enclosed email>
> > > Yes, you should be able to just copy the headers and libs to the
> > > appropriate place on the host machine.  I've built a
> cross-compiler
> > > targetting linux hosted on win2k and I just pulled the
> libraries and
> > > headers off my linux box and that seemed to go okay.
> > >
> > > I grabbed the headers from the linux machine in
> /usr/include and I
> > > think you just need to point to wherever you put them
> with the --with-
> > > headers flag when you configure gcc.
> > >
> > > I grabbed the libs from /usr/lib and put them in
> > > $prefix/$target/lib and
> > > I put the libs from /lib in /lib/gcc/$target/2.95.3-2.  Both
> > > of these I
> > > believe were listed in the search path when I did a "gcc -print-
> > > search-dirs".  I belive that some of these libs came from when
> > > someone built glibc on this target machine before I got
> here, so I'm
> > > not sure what went into that.  If you can build glibc on
> your target
> > > machine, you should be able to do it.
> > >
> > > I also needed to modify the file libc.so (text file) to point
> > > to where a
> > > couple of libs were that gave me link errors when I tried
> to build a
> > > test.c.  Just look at that file when you get the link errors
> > > and you'll
> > > see how to modify it.
> > >
> > > HTH
> > > -Jim
> > >
> > > On 4 Jun 2001, at 13:56, Kevin Heatwole wrote:
> > >
> > > > I'm attempting to build a gcc cross-compiler hosted on AIX and
> > > > targeted to LinuxPPC (installed on an iMac).
> > > >
> > > > Everything looks very straight forward.  The process I am
> > > using I got
> > > > from Bill Gatliff's site
> (http://crossgcc.billgatliff.com) where he
> > > > outlines how to build a cross-compiler for an embedded
> target.  In
> > > > this process, you first build binutils (which built
> fine for me).
> > > > Then, you build a "gcc-core" (which also built fine for
> me).  Then,
> > > > you use this little gcc cross-compiler to build glibc.  And
> > > finally,
> > > > you rebuild a full gcc cross-compiler using the libs
> you built with
> > > > the little gcc cross-compiler.
> > > >
> > > > Unfortunately, glibc isn't building very well for me. 
> I've had to
> > > > edit some files that had preprocessing errors to get
> the build to
> > > > succeed (I haven't gotten all the way through this yet, though).
> > > >
> > > > Anyway, my question to the group is:
> > > >
> > > > Since I already have a complete LinuxPPC environment
> > > including a gcc
> > > > and all it's libraries sitting on the iMac and this is the
> > > platform I
> > > > want to build a gcc cross for (so I can build complete
> binaries on
> > > > AIX and just ftp them to the iMac), shouldn't I be able to
> > > just copy
> > > > all these libraries/include files into my cross on AIX
> and not have
> > > > to rebuild anything (especially the glibc that I'm
> having problems
> > > > building now)?
> > > >
> > > > Can someone indicate what files/directories I should copy from
> > > > LinuxPPC into my gcc cross on AIX to do this and where
> I should put
> > > > them on AIX?
> > > >
> > > > Thanks for any help...  I just want to give this a try
> > > before I turn
> > > > to hiring a consultant to do it for me.
> > > >
> > > > Kevin
> > > > --
> > > >
> > > </enclosed email>
> > >
> > > On 30 Aug 2001, at 16:38, David Thompson wrote:
> > >
> > > > Hi Jim, but I need the header files from the target platform,
> > > > right?  Isn't this how --with-headers is used?  In my case,
> > > > building on Solaris, I need --with-headers to point to a
> > > > path where I've copied the Linux headers ... right ??
> > > >
> > > > > -----Original Message-----
> > > > > From: Jim Tison [mailto:jtison@ntplx.net]
> > > > > Sent: Thursday, August 30, 2001 4:15 PM
> > > > > To: 'crossgcc'
> > > > > Subject: Re: Newbie can't build linux cross-compiler
> for solaris
> > > > >
> > > > >
> > > > > I ran into the same thing at the same place for another
> > > > > target. What fixed it
> > > > > for me was using the --with-headers= switch in ./configure.
> > > > > This needs to
> > > > > point to the system headers. In your case (you'll be running
> > > > > this compiler
> > > > > with the Sun libs, I take it....) you can probably just
> > > get away with
> > > > > pointing --with-headers to /usr/include (or is that
> > > > > /usr/ccb/include? Heck,
> > > > > I've forgotten... my Solaris experience is so dated!).
> > > > >
> > > > > You will need to reconfigure and restart your build. It might
> > > > > be smart to
> > > > > make clean, too.
> > > > >
> > > > > Peace,
> > > > > --Jim--
> > > > >
> > > > > On Thursday 30 August 2001 17:50, David Thompson wrote:
> > > > > > Hi there,
> > > > > >
> > > > > > I am a newbie at building a cross compiler so I'm trying
> > > > > > to read everything I can find, but I've failed in all my
> > > > > > attempts to build a Linux gcc cross-compiler than runs
> > > > > > on Solaris.  Here is my simple script,
> > > > > >
> > > > > >  #!/bin/ksh
> > > > > >  GCC=gcc-2.95.3
> > > > > >  BINUTILS=binutils-2.10.1
> > > > > >  TARGET=i686-pc-linux-gnu
> > > > > >  SRCDIR=/home/davidt/gnu/src/sun
> > > > > >  BINDIR=/home/davidt/gnu/bin/sun
> > > > > >
> > > > > >  cd $SRCDIR
> > > > > >  mkdir build-binutils build-gcc
> > > > > >
> > > > > >  # configure, build and install binutils
> > > > > >  cd build-binutils
> > > > > >  ../$BINUTILS/configure --target=$TARGET --prefix=$BINDIR -v
> > > > > >  make all install
> > > > > >
> > > > > >  # configure, build and install gcc
> > > > > >  cd ../build-gcc
> > > > > >  ../$GCC/configure --target=$TARGET --prefix=$BINDIR -v
> > > > > >  make all install
> > > > > >
> > > > > > I have untarred the packages into /home/davidt/gnu/bin/sun,
> > > > > > and binutils builds fine.  The error I get is from building
> > > > > > gcc, here is the [slightly formatted] error output,
> > > > > >
> > > > > >  for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3
> > > > > _negdi2 _lshrdi3 \
> > > > > >   _ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4
> > > > > _cmpdi2 _ucmpdi2 \
> > > > > >   _floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi
> > > > > _fixdfdi \
> > > > > >   _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi _floatdixf
> > > _fixunsxfsi \
> > > > > >   _fixtfdi _fixunstfdi _floatditf __gcc_bcmp _varargs
> > > > > __dummy _eprintf \
> > > > > >   _bb _shtab _clear_cache _trampoline __main _exit
> > > _ctors _pure; \
> > > > > >  do \
> > > > > >    echo ${name}; \
> > > > > >     /home/davidt/gnu/src/sun/build-gcc/gcc/xgcc \
> > > > > >      -B/home/davidt/gnu/src/sun/build-gcc/gcc/ \
> > > > > >      -B/home/davidt/gnu/bin/sun/i686-pc-linux-gnu/bin/ \
> > > > > >     
> -I/home/davidt/gnu/bin/sun/i686-pc-linux-gnu/include -O2  \
> > > > > >      -DCROSS_COMPILE -DIN_GCC   -DSVR4  -g -O2
> -I./include  \
> > > > > >      -fPIC -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
> > > > > >      -I. -I../../gcc-2.95.3/gcc
> -I../../gcc-2.95.3/gcc/config \
> > > > > >      -I../../gcc-2.95.3/gcc/../include -c -DL${name} \
> > > > > >      ../../gcc-2.95.3/gcc/libgcc2.c -o ${name}.o; \
> > > > > >    if [ $? -eq 0 ] ; then true; else exit 1; fi; \
> > > > > >    i686-pc-linux-gnu-ar rc tmplibgcc2.a ${name}.o; \
> > > > > >    rm -f ${name}.o; \
> > > > > >  done
> > > > > >  _muldi3
> > > > > >  ../../gcc-2.95.3/gcc/libgcc2.c:41: stdlib.h: No such file
> > > > > or directory
> > > > > >  ../../gcc-2.95.3/gcc/libgcc2.c:42: unistd.h: No such file
> > > > > or directory
> > > > > >  make[1]: *** [libgcc2.a] Error 1
> > > > > >  make[1]: Leaving directory
> > > `/home/davidt/gnu/src/sun/build-gcc/gcc'
> > > > > >  make: *** [all-gcc] Error 2
> > > > > >
> > > > > > I don't understand why stdlib.h & unistd.h cannot be
> > > found.  I need
> > > > > > help, what am I doing wrong?  Any advice or URLs that
> > > would help me
> > > > > > (the above script is from
> > http://www.objsw.com/CrossGCC) would be
> > > > > extremely appreciated.
> > > >
> > > > ----------------------------------------
> > > > Content-Type: text/html; charset="iso-8859-1";
> name="Attachment: 1"
> > > > Content-Transfer-Encoding: 7bit
> > > > Content-Description:
> > > > ----------------------------------------
> > > >
> > > > ----------------------------------------
> > > > Content-Type: text/plain; charset="us-ascii";
> name="Attachment: 2"
> > > > Content-Transfer-Encoding: 7bit
> > > > Content-Description:
> > > > ----------------------------------------
> > > >
> > > > ------
> > > > Want more information?  See the CrossGCC FAQ,
> > > http://www.objsw.com/CrossGCC/
> > > Want to unsubscribe? Send a note to
> > > crossgcc-unsubscribe@sourceware.cygnus.com
> > >
> >
> >
>
>

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

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