From 82cbfd3573769eae988d63fd31c7e645a10a1ffb Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Sat, 2 Jan 2010 22:11:08 +0000 Subject: [PATCH] first stab at fixing #5091: * let BuildSetup set HAIKU_HOST_IS_BIG_ENDIAN according to HOST_GCC_MACHINE * minor cleanup in BuildSetup * when building ICU, set the endianness indicator suffix according to HAIKU_HOST_IS_BIG_ENDIAN git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34864 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/BuildSetup | 24 +++++++++++++++++------- src/libs/icu/source/data/Jamfile | 11 +++++++++-- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup index 7c8ae46f60..194d88aa4f 100644 --- a/build/jam/BuildSetup +++ b/build/jam/BuildSetup @@ -181,15 +181,25 @@ switch $(HAIKU_DISTRO_COMPATIBILITY) { # analyze the gcc machine spec to determine HAIKU_CPU switch $(HAIKU_GCC_MACHINE) { - case i386-* : HAIKU_CPU = x86 ; - case i486-* : HAIKU_CPU = x86 ; - case i586-* : HAIKU_CPU = x86 ; - case i686-* : HAIKU_CPU = x86 ; + case i?86-* : HAIKU_CPU = x86 ; case powerpc-* : HAIKU_CPU = ppc ; - case m68k-* : HAIKU_CPU = m68k ; + case m68k-* : HAIKU_CPU = m68k ; case mipsel-* : HAIKU_CPU = mipsel ; - case arm-* : HAIKU_CPU = arm ; - case * : Exit "Unsupported gcc target machine:" $(HAIKU_GCC_MACHINE) ; + case arm-* : HAIKU_CPU = arm ; + case * : Exit "Unsupported gcc target machine:" + $(HAIKU_GCC_MACHINE) ; +} + +# determine the endianness of the host +switch $(HOST_GCC_MACHINE) { + case i?86-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; + case x86_64-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; + case powerpc-* : HAIKU_HOST_IS_BIG_ENDIAN = 1 ; + # the following are rather unlikely as hosts ... + case m68k-* : HAIKU_HOST_IS_BIG_ENDIAN = 1 ; + case mipsel-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; + case arm-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; + case * : Exit "Unsupported gcc host machine:" $(HOST_GCC_MACHINE) ; } switch $(HAIKU_CPU) { diff --git a/src/libs/icu/source/data/Jamfile b/src/libs/icu/source/data/Jamfile index dcca8d90bf..5ef27e25e3 100644 --- a/src/libs/icu/source/data/Jamfile +++ b/src/libs/icu/source/data/Jamfile @@ -3,11 +3,18 @@ SubDir HAIKU_TOP src libs icu source data ; ICU_UNICODE_VERSION = 5.1 ; ICU_CLDR_VERSION = $(ICU_GENRB_CLDR_VERSION) ; ICU_DAT_FILES = pnames.icu unames.icu cnvalias.icu ucadata.icu invuca.icu ; -ICU_DATA_DIR = [ FDirName $(HOST_COMMON_DEBUG_OBJECT_DIR) icudt42l ] ; ICU_VERSION = 42.1 ; ICU_DATA_SYMBOL = icudt42 ; -ICU_ENDIANNESS_INDICATOR = l ; # TODO: little endian is hardcoded, for now +# ICU is endianness-aware, so we need to set the endianness indicator such +# that it matches the endianness of the host platform +if $(HAIKU_HOST_IS_BIG_ENDIAN) = 1 { + ICU_ENDIANNESS_INDICATOR = b ; +} else { + ICU_ENDIANNESS_INDICATOR = l ; +} ICU_DATA_VERSION = icudt42$(ICU_ENDIANNESS_INDICATOR) ; +ICU_DATA_DIR + = [ FDirName $(HOST_COMMON_DEBUG_OBJECT_DIR) $(ICU_DATA_VERSION) ] ; rule MakeLocateICUData files : subdir {