aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/perl/perl_5.10.1.bb
diff options
context:
space:
mode:
authorGraham Gower <graham.gower@gmail.com>2010-11-30 15:23:42 +1030
committerStefan Schmidt <stefan@buglabs.net>2010-12-02 16:47:18 +0100
commit4ddd7b9d067ca8746516d5a0ea54eb22b2233d56 (patch)
treec8e46cb566167b69c1502ce828833d3fc9ff7a99 /recipes/perl/perl_5.10.1.bb
parent0a6ad3d3335ca2d93470c6b3b47eb702ca10ac4b (diff)
downloadopenembedded-4ddd7b9d067ca8746516d5a0ea54eb22b2233d56.tar.gz
perl_5.8.8.bb, perl_5.10.1.bb: Fix build when DISTRO_FEATURES lacks largefile.
CCCMD = mipsel-oe-linux-uclibc-gcc -march=mips32 -DPERL_CORE -c -isystem/mnt/oe/tmp/sysroots/mipsel-oe-linux-uclibc/include -fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -Wall In file included from /mnt/oe/tmp/sysroots/mipsel-oe-linux-uclibc/include/sys/types.h:27:0, from perl.h:420, from miniperlmain.c:36: /mnt/oe/tmp/sysroots/mipsel-oe-linux-uclibc/include/features.h:216:5: error: #error It appears you have defined _FILE_OFFSET_BITS=64. Unfortunately, uClibc was built without large file support enabled. Signed-off-by: Graham Gower <graham.gower@gmail.com> Acked-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/perl/perl_5.10.1.bb')
-rw-r--r--recipes/perl/perl_5.10.1.bb13
1 files changed, 13 insertions, 0 deletions
diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb
index 9038b9670b..91434e284a 100644
--- a/recipes/perl/perl_5.10.1.bb
+++ b/recipes/perl/perl_5.10.1.bb
@@ -97,6 +97,17 @@ export LDDLFLAGS = "${LDFLAGS} -shared"
# We're almost Debian, aren't we?
CFLAGS += "-DDEBIAN"
+do_nolargefile() {
+ sed -i -e "s,\(uselargefiles=\)'define',\1'undef',g" \
+ -e "s,\(d_readdir64_r=\)'define',\1'undef',g" \
+ -e "s,\(readdir64_r_proto=\)'\w+',\1'0',g" \
+ -e "/ccflags_uselargefiles/d" \
+ -e "s/-Duselargefiles//" \
+ -e "s/-D_FILE_OFFSET_BITS=64//" \
+ -e "s/-D_LARGEFILE_SOURCE//" \
+ ${S}/Cross/config.sh-${TARGET_ARCH}-${TARGET_OS}
+}
+
do_configure() {
# Make hostperl in build directory be the native perl
ln -sf ${HOSTPERL} hostperl
@@ -128,6 +139,8 @@ do_configure() {
config.sh-${TARGET_ARCH}-${TARGET_OS}
fi
+ ${@base_contains('DISTRO_FEATURES', 'largefile', '', 'do_nolargefile', d)}
+
# Update some paths in the configuration
sed -i -e 's,@DESTDIR@,${D},g' \
-e 's,@ARCH@,${TARGET_ARCH}-${TARGET_OS},g' \