
|
If you were logged in you would be able to see more operations.
|
|
|
|
Environment:
|
Solaris 10 U8 x86 Sun studio 12: cc: Sun C 5.9 SunOS_i386 Patch 124868-10 2009/04/30
|
|
| Planning Status: |
Unspecified
|
|
After conffigure is run I have the following in make.defaults:
# LINKER COMMANDS
LIB_LINK:= CC $(GLOB_OPTIONS)
STATICLIB_LINK:= ar cruvs
CLIENTLIB_LINK:= cc -xc99=all $(GLOB_OPTIONS)
EXE_LINK:= CC $(GLOB_OPTIONS)
STATICEXE_LINK:= CC $(GLOB_OPTIONS)
The problem is that both cc and CC assume -m32 memory model by default and when building 64bit binaries linker ld tries to generate 32bit object off 64bit objects. The following is reported:
ld: fatal: file ../temp/boot/jrd/dsc.o: wrong ELF class: ELFCLASS64
and the compilation breaks.
It can be easily fixed by the following change in make.defaults:
LIB_LINK:= CC $(GLOB_OPTIONS) $(CXXFLAGS)
CLIENTLIB_LINK:= cc -xc99=all $(GLOB_OPTIONS) $(CFLAGS)
EXE_LINK:= CC $(GLOB_OPTIONS) $(CXXFLAGS)
STATICEXE_LINK:= CC $(GLOB_OPTIONS) $(CXXFLAGS)
|
|
Description
|
After conffigure is run I have the following in make.defaults:
# LINKER COMMANDS
LIB_LINK:= CC $(GLOB_OPTIONS)
STATICLIB_LINK:= ar cruvs
CLIENTLIB_LINK:= cc -xc99=all $(GLOB_OPTIONS)
EXE_LINK:= CC $(GLOB_OPTIONS)
STATICEXE_LINK:= CC $(GLOB_OPTIONS)
The problem is that both cc and CC assume -m32 memory model by default and when building 64bit binaries linker ld tries to generate 32bit object off 64bit objects. The following is reported:
ld: fatal: file ../temp/boot/jrd/dsc.o: wrong ELF class: ELFCLASS64
and the compilation breaks.
It can be easily fixed by the following change in make.defaults:
LIB_LINK:= CC $(GLOB_OPTIONS) $(CXXFLAGS)
CLIENTLIB_LINK:= cc -xc99=all $(GLOB_OPTIONS) $(CFLAGS)
EXE_LINK:= CC $(GLOB_OPTIONS) $(CXXFLAGS)
STATICEXE_LINK:= CC $(GLOB_OPTIONS) $(CXXFLAGS) |
Show » |
| There are no comments yet on this issue.
|
|