You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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)
summary: Linker commands that use cc or CC should apply CFLAGS and CXXFLAGS respectively => Linker commands that use c or c++ compiler should apply CFLAGS and CXXFLAGS respectively
Submitted by: Mariusz Zynel (mariusz)
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)$(GLOB_OPTIONS) $ (CFLAGS)$(GLOB_OPTIONS) $ (CXXFLAGS)$(GLOB_OPTIONS) $ (CXXFLAGS)
CLIENTLIB_LINK:= cc -xc99=all
EXE_LINK:= CC
STATICEXE_LINK:= CC
Commits: f8f918d ef11481
The text was updated successfully, but these errors were encountered: