From 3caf446e29a3934900b9983dfd72cb8aa0d9e8d7 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Fri, 30 Jan 2015 20:50:02 +0100 Subject: Bug 1122: Reflect __LP64__ and _aarch64__ in GlueGen's stdint/stddef and Android compilerflags --- make/gluegen-cpptasks-base.xml | 9 +++++ make/lib/gluegen-cpptasks-android-aarch64.xml | 44 +++++++++++++++------- make/lib/gluegen-cpptasks-android-armv6.xml | 40 +++++++++++++++----- make/lib/gluegen-cpptasks-android-armv7.xml | 1 + make/stub_includes/platform/glibc-compat-symbols.h | 8 +++- make/stub_includes/platform/gluegen_stddef.h | 2 +- make/stub_includes/platform/gluegen_stdint.h | 2 +- 7 files changed, 80 insertions(+), 26 deletions(-) diff --git a/make/gluegen-cpptasks-base.xml b/make/gluegen-cpptasks-base.xml index e896fc0..58c539c 100755 --- a/make/gluegen-cpptasks-base.xml +++ b/make/gluegen-cpptasks-base.xml @@ -986,6 +986,8 @@ + + @@ -1015,6 +1017,9 @@ + + + @@ -1104,6 +1109,8 @@ + + @@ -1170,6 +1177,8 @@ + + diff --git a/make/lib/gluegen-cpptasks-android-aarch64.xml b/make/lib/gluegen-cpptasks-android-aarch64.xml index 7096ecc..fcf2875 100644 --- a/make/lib/gluegen-cpptasks-android-aarch64.xml +++ b/make/lib/gluegen-cpptasks-android-aarch64.xml @@ -41,25 +41,34 @@ NOTE: This is not necessary if using '$TARGET_TRIPLE-gcc' from $NDK_TOOLCHAIN_ROOT/bin. --> + + + - + + - + + - - - - + + + + + + + + + + + + - - - - @@ -67,6 +76,9 @@ + + + @@ -76,12 +88,17 @@ + + + + + - + @@ -99,6 +116,7 @@ enforce that libgcc is linked after source files but before other shared libraries. --> + diff --git a/make/lib/gluegen-cpptasks-android-armv6.xml b/make/lib/gluegen-cpptasks-android-armv6.xml index 733f623..bcb3f53 100644 --- a/make/lib/gluegen-cpptasks-android-armv6.xml +++ b/make/lib/gluegen-cpptasks-android-armv6.xml @@ -40,24 +40,38 @@ NOTE: This is not necessary if using '$TARGET_TRIPLE-gcc' from $NDK_TOOLCHAIN_ROOT/bin. --> + - + + - - - - + + + + + + + + + + + + + + - - - - @@ -74,7 +88,14 @@ + + + + + + + @@ -96,6 +117,7 @@ enforce that libgcc is linked after source files but before other shared libraries. --> + diff --git a/make/lib/gluegen-cpptasks-android-armv7.xml b/make/lib/gluegen-cpptasks-android-armv7.xml index d854d4f..d13c190 100644 --- a/make/lib/gluegen-cpptasks-android-armv7.xml +++ b/make/lib/gluegen-cpptasks-android-armv7.xml @@ -96,6 +96,7 @@ enforce that libgcc is linked after source files but before other shared libraries. --> + diff --git a/make/stub_includes/platform/glibc-compat-symbols.h b/make/stub_includes/platform/glibc-compat-symbols.h index 3599b82..1163c78 100644 --- a/make/stub_includes/platform/glibc-compat-symbols.h +++ b/make/stub_includes/platform/glibc-compat-symbols.h @@ -17,7 +17,9 @@ */ #if defined(__linux__) /* Actually we like to test whether we link against GLIBC .. */ #if defined(__GNUC__) - #if defined(__arm__) + #if defined(__aarch64__) + #define GLIBC_COMPAT_SYMBOL(FFF) __asm__(".symver " #FFF "," #FFF "@GLIBC_2.4"); + #elif defined(__arm__) #define GLIBC_COMPAT_SYMBOL(FFF) __asm__(".symver " #FFF "," #FFF "@GLIBC_2.4"); #elif defined(__amd64__) #define GLIBC_COMPAT_SYMBOL(FFF) __asm__(".symver " #FFF "," #FFF "@GLIBC_2.2.5"); @@ -25,7 +27,9 @@ #define GLIBC_COMPAT_SYMBOL(FFF) __asm__(".symver " #FFF "," #FFF "@GLIBC_2.0"); #endif /*__amd64__*/ #elif defined(__clang__) - #if defined(__arm__) + #if defined(__aarch64__) + #define GLIBC_COMPAT_SYMBOL(FFF) asm(".symver " #FFF "," #FFF "@GLIBC_2.4"); + #elif defined(__arm__) #define GLIBC_COMPAT_SYMBOL(FFF) asm(".symver " #FFF "," #FFF "@GLIBC_2.4"); #elif defined(__amd64__) #define GLIBC_COMPAT_SYMBOL(FFF) asm(".symver " #FFF "," #FFF "@GLIBC_2.2.5"); diff --git a/make/stub_includes/platform/gluegen_stddef.h b/make/stub_includes/platform/gluegen_stddef.h index 6272bd1..1500684 100644 --- a/make/stub_includes/platform/gluegen_stddef.h +++ b/make/stub_includes/platform/gluegen_stddef.h @@ -15,7 +15,7 @@ #elif defined(_WIN32) typedef __int32 ptrdiff_t; typedef unsigned __int32 size_t; -#elif defined(__ia64__) || defined(__x86_64__) +#elif defined(__LP64__) || defined(__ia64__) || defined(__x86_64__) || defined(__aarch64__) typedef long ptrdiff_t; typedef unsigned long size_t; #else diff --git a/make/stub_includes/platform/gluegen_stdint.h b/make/stub_includes/platform/gluegen_stdint.h index 8b1dbe3..b277817 100644 --- a/make/stub_includes/platform/gluegen_stdint.h +++ b/make/stub_includes/platform/gluegen_stdint.h @@ -33,7 +33,7 @@ typedef __int32 intptr_t; typedef unsigned __int32 uintptr_t; -#elif defined(__ia64__) || defined(__x86_64__) +#elif defined(__LP64__) || defined(__ia64__) || defined(__x86_64__) || defined(__aarch64__) typedef signed char int8_t; typedef unsigned char uint8_t; typedef signed short int16_t; -- cgit v1.2.3