This is the mail archive of the crossgcc@sources.redhat.com 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]

multilib won't build soft-float libraries for strongarm-elf


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]