summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-30 15:02:21 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-30 16:27:02 +0100
commit141dc7136c9c62da1d30132df4b3244fe6d8898d (patch)
tree303b7570d78a4cfe09280a5260d2e7d80bdd1c8e /scripts
parenta2fbf85f68b685c32049fb48aed0248369911c49 (diff)
downloadopenembedded-core-141dc7136c9c62da1d30132df4b3244fe6d8898d.tar.gz
openembedded-core-141dc7136c9c62da1d30132df4b3244fe6d8898d.tar.bz2
openembedded-core-141dc7136c9c62da1d30132df4b3244fe6d8898d.zip
multilib_header: Update wrapper to handle arm 32/64 bit
Having arm 32/64 bit headers coexisting turns out to be tricky. Unfortunately our wrapper works using wordsize.h and this differs on arm so we can't use it. Therefore replicate the logic here for arm. I did look into writing our own wordsize.h but we also need to remap kernel headers on arm and since wordsize.h comes from libc, that doesn't work for kernel headers. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/multilib_header_wrapper.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/scripts/multilib_header_wrapper.h b/scripts/multilib_header_wrapper.h
index 5a87540884..f516673b63 100644
--- a/scripts/multilib_header_wrapper.h
+++ b/scripts/multilib_header_wrapper.h
@@ -21,11 +21,23 @@
*
*/
-#include <bits/wordsize.h>
-#ifdef __WORDSIZE
+#if defined (__arm__)
+#define __MHWORDSIZE 32
+#elif defined (__aarch64__) && defined ( __LP64__)
+#define __MHWORDSIZE 64
+#elif defined (__aarch64__)
+#define __MHWORDSIZE 32
+#else
+#include <bits/wordsize.h>
+#if defined (__WORDSIZE)
+#define __MHWORDSIZE __WORDSIZE
+#else
+#error "__WORDSIZE is not defined"
+#endif
+#endif
-#if __WORDSIZE == 32
+#if __MHWORDSIZE == 32
#ifdef _MIPS_SIM
@@ -41,15 +53,9 @@
#include <ENTER_HEADER_FILENAME_HERE-32.h>
#endif
-#elif __WORDSIZE == 64
+#elif __MHWORDSIZE == 64
#include <ENTER_HEADER_FILENAME_HERE-64.h>
#else
#error "Unknown __WORDSIZE detected"
#endif /* matches #if __WORDSIZE == 32 */
-
-#else /* __WORDSIZE is not defined */
-
-#error "__WORDSIZE is not defined"
-
-#endif