Interworking for Arm-Elf

David Mc Kenna
Thu Feb 21 02:55:00 GMT 2002

Hi all,

I have compiled Binutils/GCC using the following script. I have enable interworking
for both binutils and gcc but when I print "arm-elf-gcc -print-multi-lib all
i get is thumb;@mthumb. Also when I use gcc to compile a c file using the -mthumb-interwork
i get the following error about lb not supporting interworking:

/c/arm/lib/gcc-lib/arm-thumb-elf/3.0.3/../../../../arm-thumb-elf/bin/ld: Warning:
/c/arm/lib/gcc-lib/arm-thumb-elf/3.0.3/thumb/libgcc.a(__main.o) does not support
interworking, whereas c:/test/temp2/test.elf does

This is approximately 30 of these warnings, but the file compiles not problems.

The scripts that I use are :-



export host=i686-pc-cygwin
export build=i686-pc-cygwin
export target=arm-elf
export prefix=/c/arm
export src_root=/usr/local/src/gnu1
export gccver=gcc-3.0.3
export newlibver=newlib-1.9.0
export gdbver=gdb-5.1.1
export insightver=insight-5.1.1
export binutilsver=binutils-020124

export PATH=$prefix/bin:$PATH

\rm -fr $src_root
\rm -rf $prefix

echo 	Starting $target
echo	Starting Setup
echo	Setup Completed
echo 	Starting Binutils
echo	Binutils Completed
echo 	Starting Gcc $gccver
echo	Gcc $gccver Completed

where setup:

mkdir -p $src_root

cd /tmp
bunzip2 $newlibver.tar.bz2
bunzip2 $gccver.tar.bz2
bunzip2 $binutilsver.tar.bz2

cd $src_root
tar -xf /tmp/$newlibver.tar
tar -xf /tmp/$gccver.tar
tar -xf /tmp/$binutilsver.tar

cd /tmp
bzip2 $newlibver.tar
bzip2 $gccver.tar
bzip2 $binutilsver.tar

mkdir -p $src_root/BUILD/binutils
mkdir -p $src_root/BUILD/logs
mkdir -p $src_root/BUILD/newlib
mkdir -p $src_root/BUILD/gcc

where binutils:

cd $src_root/BUILD/binutils
\rm -rf *
$src_root/$binutilsver/configure \
    --with-included-gettext --enable-multilib \
    --with-newlib --with-gnu-as --with-gnu-ld --enable-win32-registry \
    --target=$target --host=$host --build=$build \
    --enable-interwork --disable-shared \
    --prefix=$prefix   > ../logs/binutils_configure.log 2>&1

# 	Make Binutils

make -w all install > ../logs/binutils_make.log 2>&1

where gcc:

cd $src_root/BUILD/gcc && rm -rf *

echo 	Configure and make bootstrap compiler

$src_root/$gccver/configure \
     --with-newlib --with-headers=$src_root/$newlibver/newlib/libc/include 
--with-gnu-as --with-gnu-ld --enable-win32-registry \
     --target=$target --prefix=$prefix --exec-prefix=$prefix --host=$host --with-cpu=arm7tdmi
     --enable-multilib --enable-interwork --disable-shared --enable-languages=c
> ../logs/gcc_boot_bootstrap.log 2>&1

make all-gcc install-gcc > ../logs/gcc_boot_makeboot.log 2>&1

echo 	Configure and make newlib

cd $src_root/BUILD/newlib
$src_root/newlib-1.9.0/configure --target=$target --prefix=$prefix > ../logs/newlib_configure.log

make all install > ../logs/newlib_make.log 2>&1

cd $src_root/BUILD/gcc && rm -rf *

echo 	Configure and make full compiler

$src_root/$gccver/configure \
    --enable-languages=c,c++ \
    --target=$target --host=$host --build=$build --enable-win32-registry \
    --with-newlib \
    --prefix=$prefix \
    --exec-prefix=$prefix \
     --enable-multilib --enable-interwork \
    --with-gnu-as --with-gnu-ld  -v > ../logs/gcc_full_configure.log 2>&1

make -w all install > ../logs/gcc_full_make.log 2>&1

Any help enabling interworking would be greatly appreciated,

Dave Mc Kenna


Want more information?  See the CrossGCC FAQ,
Want to unsubscribe? Send a note to

More information about the crossgcc mailing list