summaryrefslogtreecommitdiffstats
path: root/import-layers/yocto-poky/meta/classes/multilib_header.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/yocto-poky/meta/classes/multilib_header.bbclass')
-rw-r--r--import-layers/yocto-poky/meta/classes/multilib_header.bbclass54
1 files changed, 54 insertions, 0 deletions
diff --git a/import-layers/yocto-poky/meta/classes/multilib_header.bbclass b/import-layers/yocto-poky/meta/classes/multilib_header.bbclass
new file mode 100644
index 000000000..5ee0a2d56
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/multilib_header.bbclass
@@ -0,0 +1,54 @@
+inherit siteinfo
+
+# If applicable on the architecture, this routine will rename the header and
+# add a unique identifier to the name for the ABI/bitsize that is being used.
+# A wrapper will be generated for the architecture that knows how to call
+# all of the ABI variants for that given architecture.
+#
+oe_multilib_header() {
+
+ case ${HOST_OS} in
+ *-musl*)
+ return
+ ;;
+ *)
+ 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
+ ;;
+ *)
+ ident=${SITEINFO_BITS}
+ ;;
+ esac
+ ;;
+ *) 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."
+ continue
+ fi
+ stem=$(echo $each_header | sed 's#\.h$##')
+ # if mips64/n32 set ident to n32
+ mv ${D}/${includedir}/$each_header ${D}/${includedir}/${stem}-${ident}.h
+
+ sed -e "s#ENTER_HEADER_FILENAME_HERE#${stem}#g" ${COREBASE}/scripts/multilib_header_wrapper.h > ${D}/${includedir}/$each_header
+ done
+}
+
+# Dependencies on arch variables like MIPSPKGSFX_ABI can be problematic.
+# We don't need multilib headers for native builds so brute force things.
+oe_multilib_header_class-native () {
+ return
+}
OpenPOWER on IntegriCloud