summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/classes/multilib_header.bbclass7
-rw-r--r--scripts/multilib_header_wrapper.h26
2 files changed, 16 insertions, 17 deletions
diff --git a/meta/classes/multilib_header.bbclass b/meta/classes/multilib_header.bbclass
index 304c28e771..e03f5b13b2 100644
--- a/meta/classes/multilib_header.bbclass
+++ b/meta/classes/multilib_header.bbclass
@@ -13,13 +13,9 @@ oe_multilib_header() {
;;
*)
esac
- # We use
- # For ARM: We don't support multilib builds.
# For MIPS: "n32" is a special case, which needs to be
# distinct from both 64-bit and 32-bit.
case ${TARGET_ARCH} in
- arm*) return
- ;;
mips*) case "${MIPSPKGSFX_ABI}" in
"-n32")
ident=n32
@@ -31,9 +27,6 @@ oe_multilib_header() {
;;
*) ident=${SITEINFO_BITS}
esac
- if echo ${TARGET_ARCH} | grep -q arm; then
- return
- fi
for each_header in "$@" ; do
if [ ! -f "${D}/${includedir}/$each_header" ]; then
bberror "oe_multilib_header: Unable to find header $each_header."
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