Patch by Samuel Rodriguez Perez, slightly modified by myself: New

configure flag "--use-32bit" enabling 32 bit builds with a 64 bit host
compiler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22046 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2007-08-22 22:07:03 +00:00
parent 2652981136
commit 0385b0657b
3 changed files with 49 additions and 31 deletions
+19 -7
View File
@@ -346,6 +346,12 @@ HAIKU_BUILD_DESCRIPTION ?= "Unknown Build" ;
# host platform settings
# enable GCC -m32 option, if requested
if $(HAIKU_HOST_USE_32BIT) = 1 {
HOST_GCC_BASE_FLAGS = -m32 ;
}
# save jam's variables for the build platform
HOST_AR ?= $(AR) ;
HOST_CC ?= $(CC) ;
@@ -355,13 +361,14 @@ HOST_LD ?= ld ; # TODO: Fix this!
HOST_OBJCOPY ?= objcopy ; #
HOST_RANLIB ?= $(RANLIB) ;
HOST_CPPFLAGS ?= $(CPPFLAGS) ;
HOST_CCFLAGS ?= $(CCFLAGS) ;
HOST_C++FLAGS ?= $(C++FLAGS) ;
HOST_LDFLAGS ?= $(LDFLAGS) ;
HOST_LINKFLAGS ?= $(LINKFLAGS) ;
HOST_CCFLAGS ?= $(HOST_GCC_BASE_FLAGS) $(CCFLAGS) ;
HOST_C++FLAGS ?= $(HOST_GCC_BASE_FLAGS) $(C++FLAGS) ;
HOST_LDFLAGS ?= $(HOST_GCC_BASE_FLAGS) $(LDFLAGS) ;
HOST_LINKFLAGS ?= $(HOST_GCC_BASE_FLAGS) $(LINKFLAGS) ;
HOST_DEFINES ?= $(DEFINES) ;
HOST_HDRS ?= $(HDRS) ;
# split up HOST_AR into the command name and flags
HOST_AR = [ Match "([^ ]*) *(.*)" : $(HOST_AR[1]) ]
$(HOST_AR[2-]) ;
@@ -415,10 +422,10 @@ HOST_C++FLAGS += -Wno-multichar ;
HOST_PIC_CCFLAGS += -fPIC ;
HOST_PIC_C++FLAGS += -fPIC ;
HOST_KERNEL_CCFLAGS += -finline -fno-builtin
-DBOCHS_DEBUG_HACK=$(BOCHS_DEBUG_HACK) -D_KERNEL_MODE ;
HOST_KERNEL_C++FLAGS += -finline -fno-builtin -fno-exceptions
HOST_KERNEL_CCFLAGS += $(HOST_GCC_BASE_FLAGS) -finline -fno-builtin
-DBOCHS_DEBUG_HACK=$(BOCHS_DEBUG_HACK) -D_KERNEL_MODE ;
HOST_KERNEL_C++FLAGS += $(HOST_GCC_BASE_FLAGS) -finline -fno-builtin
-fno-exceptions -DBOCHS_DEBUG_HACK=$(BOCHS_DEBUG_HACK) -D_KERNEL_MODE ;
HOST_KERNEL_PIC_CCFLAGS = -fno-pic ;
HOST_KERNEL_PIC_LINKFLAGS = ;
@@ -465,6 +472,11 @@ for level in $(HAIKU_DEBUG_LEVELS[2-]) {
HOST_KERNEL_DEBUG_$(level)_C++FLAGS = $(flags) ;
}
# ld flags
if $(HOST_ARCH) = x86 && $(HAIKU_HOST_USE_32BIT) = 1 {
HOST_LDFLAGS += -melf_i386 ;
}
# private kernel headers do be used when compiling kernel code
HOST_PRIVATE_KERNEL_HEADERS = ;
+3 -1
View File
@@ -224,8 +224,10 @@ rule MergeObjectFromObjects
if $(PLATFORM) = host {
LINK on $(1) = $(HOST_LD) ;
LINKFLAGS on $(target) = $(HOST_LDFLAGS) ;
} else {
LINK on $(1) = $(TARGET_LD) ;
LINKFLAGS on $(target) = $(TARGET_LDFLAGS) ;
}
}
@@ -238,7 +240,7 @@ rule MergeObjectFromObjects
actions MergeObjectFromObjects1
{
$(LINK) -r $(2) -o $(1) ;
$(LINK) $(LINKFLAGS) -r $(2) -o $(1) ;
}
rule MergeObject
Vendored
+4
View File
@@ -47,6 +47,7 @@ options:
valid targets=r5,bone,dano,haiku
--use-gcc-pipe Build with GCC option -pipe. Speeds up the build
process, but uses more memory.
--use-32bit Use -m32 flag on 64bit host gcc compiler.
--use-xattr Use Linux xattr support for BeOS attribute
emulation. Warning: Make sure your file system
supports sufficient attribute sizes (4 KB per
@@ -220,6 +221,7 @@ include_gpl_addons=0
distroCompatibility=default
target=haiku
use_gcc_pipe=0
use_32bit=0
use_xattr=0
crossToolsPrefix=
buildCrossTools=
@@ -273,6 +275,7 @@ while [ $# -gt 0 ] ; do
shift 2;;
--target=*) target=`echo $1 | cut -d'=' -f2-`; shift 1;;
--use-gcc-pipe) use_gcc_pipe=1; shift 1;;
--use-32bit) use_32bit=1; shift 1;;
--use-xattr) use_xattr=1; shift 1;;
*) echo Invalid argument: \`$1\'; exit 1;;
esac
@@ -350,6 +353,7 @@ BOCHS_DEBUG_HACK ?= "${bochs_debug}" ;
INCLUDE_GPL_ADDONS ?= "${include_gpl_addons}" ;
HAIKU_DISTRO_COMPATIBILITY ?= "${distroCompatibility}" ;
HAIKU_USE_GCC_PIPE ?= "${use_gcc_pipe}" ;
HAIKU_HOST_USE_32BIT ?= "${use_32bit}" ;
HAIKU_HOST_USE_XATTR ?= "${use_xattr}" ;
HAIKU_GCC_RAW_VERSION ?= ${haikuGCCVersion} ;