multilib won't build soft-float libraries for strongarm-elf
Tim Klein
Tim.Klein@dsl.pipex.com
Sun Sep 29 15:20:00 GMT 2002
For some reason when I build a gcc cross for strongarm-elf using a cygwin
host I don't get the soft floating point libraries. I don't get any errors
while building, and the croos compiler works fine, just no soft-float
libraries.
Multilib appears to be working as I get be (-mbig-endian) and fpu
(-mhard-float) directories populated with libraries. I thought the default
library might be soft-float/little-endian but when I compile a c or c++ app
and then try and link it I get an error telling me that the library was
compiled for hardware FP.
Can anyone help me - I've read everything and tried everything I can but
just can't seem to get the expected results. I hope the following
information will help.
Tim
I'm using the following distributions:-
binutils-2.13
gcc-3.2
newlib-1.10.0
I configure using
--target=strongarm-elf --prefix=/usr/local --enable-languages=c,c++ --with-
newlib"
The multilib options in src-dir/gcc/config/arm/t-strongarm-elf are
MULTILIB_OPTIONS = mlittle-endian/mbig-endian mhard-float/msoft-float
MULTILIB_DIRNAMES = le be fpu soft
If I invoke the compiler with --print-multi-lib I don't see any soft-float
libraries....
>$ strongarm-elf-gcc gcc --print-multi-lib
.;
be;@mbig-endian
fpu;@mhard-float
be/fpu;@mbig-endian@mhard-float
The following output from genmultilib is as I'd have expected (from
build-dir/gcc/multilib.h)
static const char *const multilib_raw[] = {
". !mlittle-endian !mbig-endian !mhard-float !msoft-float;",
"le mlittle-endian !mbig-endian !mhard-float !msoft-float;",
"be !mlittle-endian mbig-endian !mhard-float !msoft-float;",
"fpu !mlittle-endian !mbig-endian mhard-float !msoft-float;",
"soft !mlittle-endian !mbig-endian !mhard-float msoft-float;",
"le/fpu mlittle-endian !mbig-endian mhard-float !msoft-float;",
"le/soft mlittle-endian !mbig-endian !mhard-float msoft-float;",
"be/fpu !mlittle-endian mbig-endian mhard-float !msoft-float;",
"be/soft !mlittle-endian mbig-endian !mhard-float msoft-float;",
NULL
};
static const char *const multilib_matches_raw[] = {
"mbe mbig-endian;",
"mle mlittle-endian;",
"mlittle-endian mlittle-endian;",
"mbig-endian mbig-endian;",
"mhard-float mhard-float;",
"msoft-float msoft-float;",
NULL
};
static const char *multilib_extra = "";
static const char *const multilib_exclusions_raw[] = {
NULL
};
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list