How to genetare multi libgcc
Franzi Edo.
edo.franzi@ukos.ch
Tue Jun 17 20:07:00 GMT 2008
Hi,
Can someone help me for finding the right configuration for a 68k and
CondFire toolchain?
Here is my problem:
I need to have a compiler capable to generate fpic code (code accesses
by %PC, and data accesses by %A5).
The problem appears when I use float numbers. In this case, the
compiler links my program with
../gcc-4.2.4/m68k-elf/lib/gcc/m68k-elf/4.2.4/m528x/libgcc.a(_float.o).
So, the analysis of the generated code shows
that this libgcc.a doesn't contain any fpic code, so, my program
crashes.
For a long time I have been using the gcc version 4.2.3 without any
problems, now I have moved to the 4.2.4 (and I tried also the 4.3.1)
but this problem appears.
If I resume, it seems that for the version 4.2.3 the toolchain
generates all the possible libgcc, but this is not the
case for the most recent versions (4.2.4 and 4.3.1).
Questions,:
1. how to modify my toolchain for making possible the generation of a
multi libgcc (the normal and the fpic one)?
2. from the makefile how do I have to proceed for informing the linker
to use one or the other library?
Thanks
Edo
PS: here is my toolchain for generating the compiler (the 68k
generates also for ColdFire)
#!/bin/sh
# usage: toolchain [m68k, arm, bfin] [gcc version]
# ex. sh toolchain m68k 4.2.4
TARGET_DIR=/Users/Shared
case "$1" in
'm68k')
cpu=$1
bin_ver=2.18
gcc_ver=$2
nlb_ver=1.16.0
gdb_ver=6.7.1
;;
'arm')
cpu=$1
bin_ver=2.18
gcc_ver=$2
nlb_ver=1.16.0
gdb_ver=6.7.1
;;
'bfin')
cpu=$1
bin_ver=2.18
gcc_ver=$2
nlb_ver=1.16.0
gdb_ver=6.7.1
;;
*)
echo CPU not supported ...
exit 127
;;
esac
TARGET=$cpu-elf
BIN_VER=$bin_ver
GCC_VER=$gcc_ver
NLB_VER=$nlb_ver
GDB_VER=$gdb_ver
echo " - Create an alias of the library"
cd $TARGET_DIR/GCC/gcc-$GCC_VER
ln -s ../newlib-$NLB_VER/newlib .
ln -s ../newlib-$NLB_VER/libgloss .
export prefix=$TARGET_DIR/cross/gcc-$GCC_VER/$TARGET
export i=$prefix/bin
echo " Build the tools"
mkdir -p $TARGET_DIR/builds/gcc-$GCC_VER/$TARGET/binutils-$BIN_VER
cd $TARGET_DIR/builds/gcc-$GCC_VER/$TARGET/binutils-$BIN_VER
../../../../GCC/binutils-$BIN_VER/configure --target=$TARGET \
--prefix=$prefix \
--enable-multilib
make
make install
make clean
echo " - Build the compiler"
cd $TARGET_DIR/builds/gcc-$GCC_VER/$TARGET
mkdir gcc-$GCC_VER
cd gcc-$GCC_VER
../../../../GCC/gcc-$GCC_VER/configure --target=$TARGET \
--prefix=$prefix \
--enable-multilib \
--enable-languages=c \
--with-newlib \
--enable-newlib-io-long-long \
--with-gnu-as \
--with-gnu-ld
make "CFLAGS = -DREENTRANT_SYSCALLS_PROVIDED"
make install
make clean
echo " - Build the gdb"
cd $TARGET_DIR/builds/gcc-$GCC_VER/$TARGET
mkdir gdb-$GDB_VER
cd gdb-$GDB_VER
../../../../GCC/gdb-$GDB_VER/configure --target=$TARGET \
--prefix=$prefix \
--enable-multilib
make
make install
make clean
echo " - Terminate"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1584 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/crossgcc/attachments/20080617/07092bc8/attachment.p7s>
More information about the crossgcc
mailing list