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] |
Hi! I want to build GCC for ARM target and compile libgcc with thumb-interwork, big-endian and soft-float for both arm and thumb versions. After browsing Internet (thank you all) I enable options in configuration file t-arm-elf, hoping for multilib to build my desired combination. But my simple float-test application does not link. It looks like the msoft-float option is forgotten in the multilib configurations where the mhard-float is not included??? Is the multilib logic assuming soft-float as default (which it is not) or am I doing something wrong? If I build the complete GCC with configuration option "--with-float=soft", the linker is not complaining when compiling my application, but what does all my multilibs contain? Are all soft-float? My question is: Can I build libgcc with soft-float in a multilib combination? Building with: Binutils 2.16.1 GCC 4.0.1 Newlib 1.13.0 Changes made in t-arm-elf: --------- MULTILIB_OPTIONS = marm/mthumb MULTILIB_DIRNAMES = arm thumb MULTILIB_OPTIONS += mlittle-endian/mbig-endian MULTILIB_DIRNAMES += le be MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle MULTILIB_OPTIONS += msoft-float/mhard-float MULTILIB_DIRNAMES += soft fpu MULTILIB_EXCEPTIONS += *mthumb/*mhard-float* MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork MULTILIB_DIRNAMES += normal interwork --------- Building GCC with these options: --------- export TARGET=arm-elf export PREFIX=/usr/gcc-arm export CFLAGS="-s -O3" ../gcc-4.0.1/configure --target=$TARGET --prefix=$PREFIX \ --with-newlib --with-gnu-as --with-gnu-ld \ --with-local-prefix=${PREFIX}/${TARGET} --disable-shared \ --disable-nls --disable-win32-registry --enable-interwork \ --enable-multilib --enable-languages="c,c++,f95" --with-cpu=arm7tdmi \ --with-headers=../gcc-4.0.1/gcc/newlib/libc/include make all-gcc install-gcc --------- Checking build: --------- $ /cygdrive/c/cygwin/usr/gcc-arm/bin/arm-elf-gcc.exe -print-multi-lib .; thumb;@mthumb be;@mbig-endian fpu;@mhard-float interwork;@mthumb-interwork fpu/interwork;@mhard-float@mthumb-interwork be/fpu;@mbig-endian@mhard-float be/interwork;@mbig-endian@mthumb-interwork be/fpu/interwork;@mbig-endian@mhard-float@mthumb-interwork thumb/be;@mthumb@mbig-endian thumb/interwork;@mthumb@mthumb-interwork thumb/be/interwork;@mthumb@mbig-endian@mthumb-interwork --------- Compiling my application ("plus") with these arm-related flags: --------- ARM_FLAGS := -march=armv4t -mcpu=arm7tdmi -gdwarf-2 -mapcs-frame -mthumb-interwork -msoft-float -mbig-endian --------- Linker error: --------- /usr/gcc-arm/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld: ERROR: /usr/gcc-arm/lib/gcc/arm-elf/4.0.1/be/interwork/libgcc.a(_addsubsf3.o) uses hardware FP, whereas plus.elf uses software FP --------- When adding configuration option "--with-float=soft" to the GCC build, the linker is not complaining when linking the application... --------- ../gcc-4.0.1/configure --target=$TARGET --prefix=$PREFIX \ --with-newlib --with-gnu-as --with-gnu-ld \ --with-local-prefix=${PREFIX}/${TARGET} --disable-shared \ --disable-nls --disable-win32-registry --enable-interwork \ --enable-multilib --enable-languages="c,c++,f95" --with-cpu=arm7tdmi \ --with-headers=../gcc-4.0.1/gcc/newlib/libc/include \ --with-float=soft --------- But what does my be/fpu libraries contain? Soft-float or hardware FP? OLA BILLSTEIN / Senior R&D Engineer ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |