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: Installing a cross compiler


First, you need the content of /usr/include and /usr/lib from a
solaris2.8 system. These are not completely compatible with gcc's and
newlib's headers you'll need to do some modifications and it might get
pretty confusing.

I made a pretty neat makefile to automatically build all my
cross-compilers, attached is the output of 'make
TARGET=sparc-sun-solaris2.8 cross -n'... you can use it as a template.
There's a lot of options you won't necessarily need though.

I also suggest you don't use RedHat's gcc 2.96 (it's a highly patched
pre-release of gcc 3)... you should first build a native 2.95.3
bootstrap gcc.

Also, I could never get the posix/solaris threads working correctly with
the headers I got. So I use --enable-threads=single since I don't need
them anyway for my own compiles.

Hope this help...
I don't really have time to be more elaborate but I'm sure it'll give
you a head start.

-----Original Message-----
From: crossgcc-owner@sources.redhat.com
[mailto:crossgcc-owner@sources.redhat.com] On Behalf Of J-C Louis
Sent: Tuesday, October 30, 2001 09:34
To: crossgcc@sourceware.cygnus.com
Subject: Installing a cross compiler

Since two weeks, I try to install a cross-compiler but there
are still erros in the compilation.

I'm building Gcc on a Red hat 7.1 system, Gcc (2.96 version) is
already installed with the distribution
and I would configure Gcc for solaris on the same computer.

I recapitulate my compilation :

First, I configure and build binutils :

    export TARGET=sparc-sun-solaris2.8
    export PREFIX=/opt/i686-pc-linux-gnu/${TARGET}
    export PATH=$PATH:${PREFIX}/bin

    configure --target=${TARGET} --prefix=${PREFIX}
    make all install

Then, I configure Gcc (2.95.3 version) :

    configure --target=${TARGET} --prefix=${PREFIX}
        --without-headers --with-newlib
    make all-gcc install-gcc


The compilation failed. Here is the error message :

    In file included from gthr-default.h:1,
                              from gthr.h:98,
                              from ./libgcc2.c:3034:
    gthr-posix.h:37: pthread.h: No such file or directory
    .....

libgcc2 will be built without needing "gthr" (gnu pthreads)
So I add the option -D__gthr_posix_h and -Dinhibit_libc to
TARGET_LIBGCC2_CFLAGS in the file :
    ..gcc2.95.3/gcc/config/sparc/t-sol2


After that, there is another error in my compilation :

    ./frame.c:57: parse error before `object_mutex'
    ./frame.c:57: warning: data definition has no type or storage class
    make[1]: *** [libgcc2.a] Error 1


What does that mean ?
I try to compile with another target (arm-elf ) and the compilation
don't failed but with the target Sparc-sun-solaris2.*, there are
problems
I don't understand.

Any help will be very appreciated.

Jean-Christophe.




------
Want more information?  See the CrossGCC FAQ,
http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to
crossgcc-unsubscribe@sourceware.cygnus.com
target.solaris.mki:7: --- Using 'THREADING_MODEL=single' by default for solaris target
target.solaris.mki:8: ---
Makefile:242: ---------- Using 'C_LIBRARY=newlib' by default
Makefile:243: ----------
chain.separate.mki:37: ----------
chain.separate.mki:37: ---------- /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/lib from /RealRH71/root/cross-compiler/tars/sparc-sun-solaris2.8.lib.tar.bz2
chain.separate.mki:37: ----------
mkdir -p /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/
cd /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/ ; gtar --extract --no-same-owner --bzip2 --file=/RealRH71/root/cross-compiler/tars/sparc-sun-solaris2.8.lib.tar.bz2 ;
chain.separate.mki:69: ----------
chain.separate.mki:69: ---------- /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/include from /RealRH71/root/cross-compiler/tars/sparc-sun-solaris2.8.include.tar.bz2
chain.separate.mki:69: ----------
mkdir -p /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/
cd /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/ ; gtar --extract --no-same-owner --bzip2 --file=/RealRH71/root/cross-compiler/tars/sparc-sun-solaris2.8.include.tar.bz2 ;
chain.separate.mki:102: ----------
chain.separate.mki:102: ---------- cross-binutils
chain.separate.mki:102: ----------
mkdir -p /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/binutils/
cd /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/binutils/ ; /RealRH71/root/cross-compiler/src/binutils-2.11.2/configure \
	--build=i686-pc-linux-gnu \
	--host=i686-pc-linux-gnu \
	--target=sparc-sun-solaris2.8 \
	--prefix=/crossgcc \
	-v \
	 \
	--program-transform-name='s/\(.*\)/sparc-sun-solaris2.8-\1-2.11.2/' \
	--enable-multilib \
	--with-cross-host \
	--with-gnu-ld --with-gnu-as \
	 \
	 \
	2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/binutils.configure.log
make -C /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/binutils/ all 2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/binutils.all.log
make -C /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/binutils/ install 2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/binutils.install.log
chain.separate.mki:131: ----------
chain.separate.mki:131: ---------- cross-gcc-minimal
chain.separate.mki:131: ----------
mkdir -p /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-minimal/
cd /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-minimal/ ; /RealRH71/root/cross-compiler/src/gcc-2.95.3/configure \
	--build=i686-pc-linux-gnu \
	--host=i686-pc-linux-gnu \
	--target=sparc-sun-solaris2.8 \
	--prefix=/crossgcc \
	-v \
	 \
	--program-transform-name='s/\(.*\)/sparc-sun-solaris2.8-\1-2.95.3/' \
	--enable-multilib \
	--with-cross-host \
	--with-gnu-ld --with-gnu-as \
	--disable-shared \
	--enable-languages=c \
	--enable-checking \
	--with-local-prefix=/crossgcc \
	--enable-version-specific-runtime-libs \
	--with-newlib \
	--enable-threads=single \
	--disable-fast-fixincludes \
	--with-libs=/RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/lib/ \
	--with-headers=/RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/include/ \
	 \
	2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-minimal.configure.log
make -C /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-minimal/ all-gcc 2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-minimal.all-gcc.log
make -C /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-minimal/ install-gcc 2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-minimal.install-gcc.log
chain.separate.mki:191: ----------
chain.separate.mki:191: ---------- cross-newlib
chain.separate.mki:191: ----------
mkdir -p /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/newlib/
cd /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/newlib/ ; /RealRH71/root/cross-compiler/src/newlib-1.9.0/configure \
	--build=i686-pc-linux-gnu \
	--host=i686-pc-linux-gnu \
	--target=sparc-sun-solaris2.8 \
	--prefix=/crossgcc \
	-v \
	 \
	 \
	--enable-multilib \
	--with-cross-host \
	--with-gnu-ld --with-gnu-as \
	 \
	 \
	2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/newlib.configure.log
make -C /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/newlib/ all 2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/newlib.all.log
make -C /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/newlib/ install 2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/newlib.install.log
chain.separate.mki:131: ----------
chain.separate.mki:131: ---------- cross-gcc-full
chain.separate.mki:131: ----------
mkdir -p /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-full/
cd /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-full/ ; /RealRH71/root/cross-compiler/src/gcc-2.95.3/configure \
	--build=i686-pc-linux-gnu \
	--host=i686-pc-linux-gnu \
	--target=sparc-sun-solaris2.8 \
	--prefix=/crossgcc \
	-v \
	 \
	--program-transform-name='s/\(.*\)/sparc-sun-solaris2.8-\1-2.95.3/' \
	--enable-multilib \
	--with-cross-host \
	--with-gnu-ld --with-gnu-as \
	 \
	--enable-languages="c,c++" \
	--enable-checking \
	--with-local-prefix=/crossgcc \
	--enable-version-specific-runtime-libs \
	--with-newlib \
	--enable-threads=single \
	--disable-fast-fixincludes \
	--with-libs=/RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/lib/ \
	--with-headers=/RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/include/ \
	 \
	2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-full.configure.log
make -C /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-full/ all 2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-full.all.log
make -C /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-full/ install 2>&1 | tee /RealRH71/root/cross-compiler/build-cross-sparc-sun-solaris2.8/gcc-full.install.log

------
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]