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]

Errors while crosscompiling a mips toolchain under OSX


Hello

I'm trying to generate a toolchain for mips under macosx, and I've run
into various error, which were initially due to a bad choice of
triplet. With "mips-linux" + a change to newlib configure script
(commenting out mips*-*-linux* on line 3529) I can reach stage 2
Now I'm stuck there on libiberty if I disable C++ :
(...)
checking for library containing strerror... configure: error: Link
tests are not allowed after GCC_NO_EXECUTABLES.
(...)
but also later if I enable it:
(...)
/Developer/Fritzbox/mips-linux/bin/ld: cannot find crti.o: No such
file or directory
/Developer/Fritzbox/mips-linux/bin/ld:
/Developer/Fritzbox/mips-linux/lib/libc.a(lib_a-abort.o): relocation
R_MIPS_HI16 against `__gnu_local_gp' can not be used when making a
shared object; recompile with -fPIC
/Developer/Fritzbox/mips-linux/lib/libc.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libgcc_s.so] Error 1
make[1]: *** [all-target-libgcc] Error 2


Versions and commands used :

cd gmp-5.0.2 && ./configure --disable-nls
--prefix=/Developer/Fritzbox/ --enable-cxx |tee config-gmp.log && make
-j4 | tee make-gmp.log && make install && cd ..
cd mpfr-3.0.1 && ./configure --disable-nls
--prefix=/Developer/Fritzbox/ --with-gmp=/Developer/Fritzbox/| tee
config-mpfr.log && make -j4 | tee make-mpfr.log && make install && cd
..
cd mpc-0.8.2 && ./configure --disable-nls --prefix=/Developer/Fritzbox
 --with-gmp=/Developer/Fritzbox --with-mpfr=/Developer/Fritzbox | tee
config-mpc.log && make -j4 |tee make-binutils.log && make install &&
cd ..
cd binutils-2.21 && ./configure --disable-nls
--prefix=/Developer/Fritzbox  --with-gmp=/Developer/Fritzbox
--with-mpfr=/Developer/Fritzbox  --target=mips-linux --with-gnu-as
--with-gnu-ld --enable-interwork --enable-multilib --enable-ld |tee
config-binutils.log && make -j4 |tee make-binutils.log && make install
rm -fr gcc-build-freestanding ; mkdir gcc-build-freestanding && cd
gcc-build-freestanding && ../gcc-4.5.3/configure --disable-nls
--with-gmp=/Developer/Fritzbox --with-mpfr=/Developer/Fritzbox
--with-mpc=/Developer/Fritzbox  --prefix=/Developer/Fritzbox
--target=mips-linux --with-gnu-as --with-gnu-ld --enable-interwork
--enable-multilib  --with-newlib --enable-languages=c
--without-headers --disable-shared --disable-threads
--disable-checking --disable-werror --disable-libssp
--disable-libmudflap --disable-libgomp | tee
config-gcc-freestanding.log && make -j4 |tee make-gcc.log && make
install
cd newlib-1.19.0 && ../configure --with-mpfr=/Developer/Fritzbox
--with-gmp=/Developer/Fritzbox --with-mpc=/Developer/Fritzbox
--prefix=/Developer/Fritzbox  --target=mips-linux  --enable-interwork
--enable-multilib --with-gnu-as --with-gnu-ld --disable-nls | tee
config-newlib.log && make -j4 | tee make-newlib.log && make install
rm -fr gcc-build-full ; mkdir gcc-build-full && cd gcc-build-full &&
../gcc-4.5.3/configure --disable-nls --with-gmp=/Developer/Fritzbox
--with-mpfr=/Developer/Fritzbox --with-mpc=/Developer/Fritzbox
--prefix=/Developer/Fritzbox  --target=mips-linux --with-gnu-as
--with-gnu-ld --enable-interwork --enable-multilib
--enable-languages=c,c++ --without-headers --disable-threads
--enable-shared | tee config-gcc-full && make -j4 |tee
make-gcc-full.log && make install
 --enable-threads=single

I have been looking on google and on the list for the cause of these
bugs - apparenty the R_MIPS_HI16 is due to a compilation without -fPIC
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524593) and the
GCC_NO_EXECUTABLES is due to LIBTOOL checks
(http://gcc.gnu.org/ml/gcc/2007-11/msg00790.html) but I'm not sure
about this one, so my config.log is attached here.

I would like to crosscompile a c/c++ toolchain then compile a native
toolchain for the mips host (a fritzbox 7390, mips big endian, it uses
uclibc and I only need some simple tools so I compile statically with
:export CFLAGS="-O3 -march=24kec -mips16 -mdsp -static -static-libgcc
-Wl,-static")

I'm interested in learning to do that by hand (I know crosstools,
buildroot, etc.) and understanding what I'm not doing correctly. I
hope my "mips-linux" choice is correct by the way :-)

So my question: how can I work around these bugs? For the -fpic I
assume I should pass a flag to gcc 2nd stage compilation but I haven't
found which one after some googling. The documentations I found did
not mention this problem, probably because they used old version of
gcc.

Any help is appreciated.

Guylhem

-- 
vCard: http://guylhem.tel

Attachment: config.log
Description: Binary data

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