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] | |
Heiko Nardmann <h.nardmann@secunet.de> wrote:
> I am trying to create a cross compiler on x86 Linux for a SPARC Solaris 8.
>
> After successfully building and installing binutils I got the whole include
> and the whole lib directory from the native machine and put them where gcc
> looks for them when trying to create the cross compiler.
In which order ? 64-bit as default, 32-bit optional and it's stuff
in some subdir ? Or vice versa ?
A quick look at the 'gcc/config/sparc' and the 'sol2-64.h' there :
----------------------- clip --------------------------------------
/* Definitions of target machine for GNU compiler, for bi-arch SPARC
running Solaris 2, defaulting to 64-bit code generation. */
#undef TARGET_DEFAULT
#define TARGET_DEFAULT \
(MASK_V9 + MASK_PTR64 + MASK_64BIT /* + MASK_HARD_QUAD */ + \
MASK_STACK_BIAS + MASK_FPU + MASK_LONG_DOUBLE_128)
----------------------- clip --------------------------------------
tells that the 64-bit sparcv9 code could be the default (sounds
logical when the target name is 'sparcv9-...', or how ?)
> Now when doing make I finally get the following error message:
>
> /opt/GNU-sparc-solaris-cross/sparcv9-solaris2.8/bin/ld: skipping incompatible
> /opt/GNU-sparc-solaris-cross/sparcv9-solaris2.8/lib/libc.so when searching
> for -lc
If the 'libc.so' is the 32-bit one and linker wants 64-bit, you must
change the library order...
A simple check using 'objdump -p' to look inside the shared
library normally tells what it is, a 32-bit or a 64-bit one:
----------------------- clip --------------------------------------
H:\usr\local\sparc-solaris2.7\lib>..\bin\objdump -p libc.so
libc.so: file format elf32-sparc
Program Header:
----------------------- clip --------------------------------------
My 2.7-version 'libc.so' definitely was a 32-bit library...
So I think you simply "have mixed the apples and oranges" ;)
and the '/opt/GNU-sparc-solaris-cross/sparcv9-solaris2.8/lib/libc.so'
is a 32-bit library when it should be the 64-bit one...
> When searching the web for this error message I only found
> references to using '--disable-multilib' which I already tried as
> you can see from the configure call.
If you do this, then you don't want to produce any 32-bit stuff...
Is this what you really want ? Or do you want to produce either
64-bit or 32-bit executables ?
If you want 32-bit stuff as default, then using the target name
'sparc-solaris2.8' will provide this... Producing the alternative
32- or 64-bit stuff with the options:
----------------------- clip --------------------------------------
-m32
-m64 Generate code for a 32-bit or 64-bit environment. The 32-bit
environment sets int, long and pointer to 32 bits. The 64-bit
environment sets int to 32 bits and long and pointer to 64 bits.
----------------------- clip --------------------------------------
depending on the default should succeed... Ok, looking at the 't-sol2-
64' tells:
MULTILIB_OPTIONS = m32/m64
MULTILIB_DIRNAMES = sparcv7 sparcv9
the subdir name being 'sparcv7' in the 'sparcv9-solaris2.8' case and
'sparcv9' in the 'sparc-solaris2.8' case, ie. the 'alternative' 32-
bit or 64-bit libraries must be there.
In your current case the default 64-bit stuff should be in:
/opt/GNU-sparc-solaris-cross/sparcv9-solaris2.8/lib
and the alternative 32-bit stuff in:
/opt/GNU-sparc-solaris-cross/sparcv9-solaris2.8/lib/sparcv7
If using the target name 'sparc-solaris2.8', the '.../lib' should
then have the 32-bit stuff and the '.../lib/sparcv9' the 64-bit
stuff...
Cheers, Kai
------
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] |