Files
poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb
Ioan-Adrian Ratiu 6db9299d9e perl-native: backport libnm link fix
pre-5.25.0 perl by default tries to link to an antiquated libnm (new
math) which is not used anymore since the early 1990's. After 2014
another libnm appeared for NetworkManager causing build failures.

(From OE-Core rev: 97d2ba227044571408151f84cfe611e1a72dd816)

(From OE-Core rev: 60e0374240c2121485dc91892a693cd6ac2eae24)

Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-23 15:27:06 +01:00

129 lines
4.2 KiB
BlitzBasic

require perl.inc
EXTRA_OEMAKE = "-e MAKEFLAGS="
SRC_URI += "\
file://Configure-multilib.patch \
file://perl-configpm-switch.patch \
file://native-nopacklist.patch \
file://native-perlinc.patch \
file://MM_Unix.pm.patch \
file://debian/errno_ver.diff \
file://dynaloaderhack.patch \
file://perl-PathTools-don-t-filter-out-blib-from-INC.patch \
file://perl-remove-nm-from-libswanted.patch \
"
SRC_URI[md5sum] = "6671e4829cbaf9cecafa9a84f141b0a3"
SRC_URI[sha256sum] = "9e87317d693ce828095204be0d09af8d60b8785533fadea1a82b6f0e071e5c79"
inherit native
NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}"
export LD="${CCLD}"
do_configure () {
./Configure \
-Dcc="${CC}" \
-Dcflags="${CFLAGS}" \
-Dldflags="${LDFLAGS}" \
-Dcf_by="Open Embedded" \
-Dprefix=${prefix} \
-Dvendorprefix=${prefix} \
-Dsiteprefix=${prefix} \
\
-Dbin=${STAGING_BINDIR}/${PN} \
-Dprivlib=${STAGING_LIBDIR}/perl/${PV} \
-Darchlib=${STAGING_LIBDIR}/perl/${PV} \
-Dvendorlib=${STAGING_LIBDIR}/perl/vendor_perl/${PV} \
-Dvendorarch=${STAGING_LIBDIR}/perl/vendor_perl/${PV} \
-Dsitelib=${STAGING_LIBDIR}/perl/site_perl/${PV} \
-Dsitearch=${STAGING_LIBDIR}/perl/site_perl/${PV} \
\
-Duseshrplib \
-Dusethreads \
-Duseithreads \
-Duselargefiles \
-Dnoextensions=ODBM_File \
-Ud_dosuid \
-Ui_db \
-Ui_ndbm \
-Ui_gdbm \
-Ui_gdbm_ndbm \
-Ui_gdbmndbm \
-Di_shadow \
-Di_syslog \
-Duseperlio \
-Dman3ext=3pm \
-Dsed=/bin/sed \
-Uafs \
-Ud_csh \
-Uusesfio \
-Uusenm -des
}
do_install () {
oe_runmake 'DESTDIR=${D}' install
# We need a hostperl link for building perl
ln -sf perl${PV} ${D}${bindir}/hostperl
ln -sf perl ${D}${libdir}/perl5
install -d ${D}${libdir}/perl/${PV}/CORE \
${D}${datadir}/perl/${PV}/ExtUtils
# Save native config
install config.sh ${D}${libdir}/perl
install lib/Config.pm ${D}${libdir}/perl/${PV}/
install lib/ExtUtils/typemap ${D}${libdir}/perl/${PV}/ExtUtils/
# perl shared library headers
# reference perl 5.20.0-1 in debian:
# https://packages.debian.org/experimental/i386/perl/filelist
for i in av.h bitcount.h charclass_invlists.h config.h cop.h cv.h dosish.h \
embed.h embedvar.h EXTERN.h fakesdio.h feature.h form.h git_version.h \
gv.h handy.h hv_func.h hv.h inline.h INTERN.h intrpvar.h iperlsys.h \
keywords.h l1_char_class_tab.h malloc_ctl.h metaconfig.h mg_data.h \
mg.h mg_raw.h mg_vtable.h mydtrace.h nostdio.h opcode.h op.h \
opnames.h op_reg_common.h overload.h pad.h parser.h patchlevel.h \
perlapi.h perl.h perlio.h perliol.h perlsdio.h perlvars.h perly.h \
pp.h pp_proto.h proto.h reentr.h regcharclass.h regcomp.h regexp.h \
regnodes.h scope.h sv.h thread.h time64_config.h time64.h uconfig.h \
unicode_constants.h unixish.h utf8.h utfebcdic.h util.h uudmap.h \
vutil.h warnings.h XSUB.h
do
install $i ${D}${libdir}/perl/${PV}/CORE
done
# Those wrappers mean that perl installed from sstate (which may change
# path location) works and that in the nativesdk case, the SDK can be
# installed to a different location from the one it was built for.
create_wrapper ${D}${bindir}/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/site_perl/${PV}:${STAGING_LIBDIR}/perl/vendor_perl/${PV}:${STAGING_LIBDIR}/perl/${PV}'
create_wrapper ${D}${bindir}/perl${PV} PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/site_perl/${PV}:${STAGING_LIBDIR}/perl/vendor_perl/${PV}:${STAGING_LIBDIR}/perl/${PV}'
# Use /usr/bin/env nativeperl for the perl script.
for f in `grep -Il '#! *${bindir}/perl' ${D}/${bindir}/*`; do
sed -i -e 's|${bindir}/perl|/usr/bin/env nativeperl|' $f
done
}
SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper"
perl_sysroot_create_wrapper () {
mkdir -p ${SYSROOT_DESTDIR}${bindir}
# Create a wrapper that /usr/bin/env perl will use to get perl-native.
# This MUST live in the normal bindir.
cat > ${SYSROOT_DESTDIR}${bindir}/../nativeperl << EOF
#!/bin/sh
realpath=\`readlink -fn \$0\`
exec \`dirname \$realpath\`/perl-native/perl "\$@"
EOF
chmod 0755 ${SYSROOT_DESTDIR}${bindir}/../nativeperl
cat ${SYSROOT_DESTDIR}${bindir}/../nativeperl
}
# Fix the path in sstate
SSTATE_SCAN_FILES += "*.pm *.pod *.h *.pl *.sh"