8d98171dc2
The n32 architecture is odd, in that it's a mips64 ABI which happens to be 32-bit. To handle this, we need something in the environment which can be used to distinguish it. The obvious place to stash this is the ABI suffix, so we use "n32" as an ABI suffix. This allows a couple of improved checks: 1. In insane.bbclass, we can use "linux-gnun32" to discern that it's okay for a mips64 binary to be a 32-bit binary in some cases. 2. In multilib_header, we can check for the n32 ABI, and use a distinct value. 3. In siteinfo, add linux-gnun32 as a synonym for linux, similar to what's done for linux-gnux32, and tell the mips*-linux-gnun32 variants to pick up the corresponding mips-linux site configs. Note that the multilib header wrapper already has n32 hooks in it, there was just nothing creating -n32 header variants. (From OE-Core rev: c8e8e8ba22eaa335ac72f0e5b317f804035133e2) Signed-off-by: Peter Seebach <peter.seebach@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
42 lines
1.4 KiB
Text
42 lines
1.4 KiB
Text
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() {
|
|
# 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
|
|
}
|