Front page | perl.perl5.porters |
Postings from September 2010
[perl #77972] perl 5.12.2 cross-compile fail @ "xconfig.h : error: invalid preprocessing directive ..."
Thread Previous
|
Thread Next
From:
pgngw+dev001+perl5-porters @ f-m . fm
Date:
September 21, 2010 23:42
Subject:
[perl #77972] perl 5.12.2 cross-compile fail @ "xconfig.h : error: invalid preprocessing directive ..."
Message ID:
rt-3.6.HEAD-5116-1285097220-1125.77972-75-0@perl.org
# New Ticket Created by pgngw+dev001+perl5-porters@f-m.fm
# Please include the string: [perl #77972]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=77972 >
hi,
i'm working on a port & cross-compiled build (for openwrt backfire
10.03/atheros AR71xx, on openSUSE 11.3/x86_64) of perl 5.12.2, digging
through issues/bugs one at a time.
i've started with the existing package for perl 5.10.x from the repo.
i'm stuck at a fail of "build target miniperl binary" in
'config_h_.SH'-generated 'xconfig.h'.
some, not all, of the generated #defines seem wrong; not yet clear why.
all i can say, atm, is that the following just gets me as far as I get
-- i can't yet say, whether i've an OK build process; here's what i've
done so far:
svn co svn://svn.openwrt.org/openwrt/branches/backfire openwrt_backfire
cd openwrt_backfire
make menuconfig
Target System (Atheros AR71xx/AR7240/AR913x) --->
Target Profile (Buffalo WZR-HP-G300NH) --->
...
[*] Build the OpenWrt SDK
...
make -j8 V=99
./scripts/feeds update
cp -a feeds/packages/lang/perl package/perl512
./scripts/feeds install -p packages libdb47 libxml2 libgdbm
### MAKE PATCH FAILURE: " ... read-only; refusing to patch"
# https://forum.openwrt.org/viewtopic.php?pid=115258
vi scripts/patch-kernel.sh
...
- ${uncomp} ${i} | patch -p1 -E -d ${targetdir}
+ ${uncomp} ${i} | patch -f -p1 -E -d ${targetdir}
...
make menuconfig
make -j8 package/libxml2/{clean,compile,install} V=99
make -j8 package/db47/{clean,compile,install} V=99
make -j8 package/gdbm/{clean,compile,install} V=99
# [FIXED] BUG: https://bugzilla.novell.com/show_bug.cgi?id=640700
vi /usr/include/dbm.h
...
-extern int dbmclose __P((DBM *));
+extern int dbmclose __P((void));
rm package/perl512/patches/*
make -j8 package/perl512/{clean,compile} V=99
## FAIL
...
===> Stage 3: Configure target perl
...
Fetching answers from config.sh...
Doing variable substitutions on .SH files...
Extracting config.h (with variable substitutions)
Extracting cflags (with variable substitutions)
Not re-extracting config.h
Extracting makeaperl (with variable substitutions)
Extracting makedepend (with variable substitutions)
Extracting Makefile (with variable substitutions)
Extracting myconfig (with variable substitutions)
Extracting pod/Makefile (with variable substitutions)
Extracting Policy.sh (with variable substitutions)
Extracting runtests (with variable substitutions)
Extracting utils/Makefile (with variable substitutions)
Extracting writemain (with variable substitutions)
Extracting x2p/cflags (with variable substitutions)
Extracting x2p/Makefile (with variable substitutions)
Extraction done.
touch
/build/openwrt_backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/perl/perl-5.12.2/.configured_-perl
===> Stage 4: Build target miniperl binary
install -m 0644
/build/openwrt_backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/perl/perl-5.12.2/config.h
/build/openwrt_backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/perl/perl-5.12.2/xconfig.h
rm -f
/build/openwrt_backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/perl/perl-5.12.2/miniperl
make -C
/build/openwrt_backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/perl/perl-5.12.2
miniperl
make[3]: Entering directory
`/build/openwrt_backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/perl/perl-5.12.2'
`sh cflags "optimize='-O2'" miniperlmain.o` miniperlmain.c
CCCMD = mips-openwrt-linux-uclibc-gcc -DPERL_CORE -c -Os
-pipe -mips32r2 -mtune=mips32r2 -funit-at-a-time
-fhonour-copts -msoft-float -DUSE_CROSS_COMPILE
-I/build/openwrt_backfire/staging_dir/target-mips_r2_uClibc-0.9.30.1/usr/include
-I/build/openwrt_backfire/staging_dir/target-mips_r2_uClibc-0.9.30.1/include
-I/build/openwrt_backfire/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/include
-I/build/openwrt_backfire/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/include
-O2 -Wall
In file included from perl.h:40,
from miniperlmain.c:40:
xconfig.h:774:3: error: invalid preprocessing directive #I_SYS_POLL
xconfig.h:879:3: error: invalid preprocessing directive #CAN_VAPROTO
xconfig.h:1084:3: error: invalid preprocessing directive
#HASATTRIBUTE_DEPRECATED
xconfig.h:2415:3: error: invalid preprocessing directive #I_GDBMNDBM
xconfig.h:2416:3: error: invalid preprocessing directive #I_GDBM_NDBM
xconfig.h:2417:3: error: invalid preprocessing directive
#NDBM_H_USES_PROTOTYPES
xconfig.h:2418:3: error: invalid preprocessing directive
#GDBMNDBM_H_USES_PROTOTYPES
xconfig.h:2419:3: error: invalid preprocessing directive
#GDBM_NDBM_H_USES_PROTOTYPES
xconfig.h:3304:3: error: invalid preprocessing directive #PERL_USE_DEVEL
xconfig.h:3576:3: error: invalid preprocessing directive
#HAS_GETADDRINFO
xconfig.h:3618:3: error: invalid preprocessing directive
#HAS_GETNAMEINFO
xconfig.h:3648:3: error: invalid preprocessing directive #HAS_INETNTOP
xconfig.h:3654:3: error: invalid preprocessing directive #HAS_INETPTON
xconfig.h:4048:3: error: invalid preprocessing directive #HAS_CTIME64
xconfig.h:4049:3: error: invalid preprocessing directive
#HAS_LOCALTIME64
xconfig.h:4050:3: error: invalid preprocessing directive #HAS_GMTIME64
xconfig.h:4051:3: error: invalid preprocessing directive #HAS_MKTIME64
xconfig.h:4052:3: error: invalid preprocessing directive #HAS_DIFFTIME64
xconfig.h:4053:3: error: invalid preprocessing directive #HAS_ASCTIME64
xconfig.h:4059:3: error: invalid preprocessing directive #HAS_TIMEGM
xconfig.h:4132:3: error: invalid preprocessing directive #I_ASSERT
xconfig.h:4210:3: error: invalid preprocessing directive #I_MALLOCMALLOC
xconfig.h:4587:3: error: invalid preprocessing directive #USE_DTRACE
make[3]: *** [miniperlmain.o] Error 1
make[3]: Leaving directory
`/build/openwrt_backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/perl/perl-5.12.2'
make[2]: ***
[/build/openwrt_backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/perl/perl-5.12.2/.built-perl]
Error 2
make[2]: Leaving directory `/build/openwrt_backfire/package/perl512'
make[1]: *** [package/perl512/compile] Error 2
make[1]: Leaving directory `/build/openwrt_backfire'
make: *** [package/perl512/compile] Error 2
i've posted the generated 'xconfig.h' @ http://pastebin.com/8iv6Sbtz
note that @ each of the id'd error line_nos, the #define looks wrong.
e.g., @ 774,
...
#
#define I_SYS_PARAM /**/
#
#
/* I_SYS_POLL:
#
* This symbol, if defined, indicates that the program may
include
#
* <sys/poll.h>. When I_POLL is also defined, it's probably
safest
#
* to only include <poll.h>.
#
*/
#
774 # I_SYS_POLL /**/
#
#
/* I_SYS_RESOURCE:
#
* This symbol, if defined, indicates to the C program that
it should
#
* include <sys/resource.h>.
#
*/
#
#define I_SYS_RESOURCE /**/
...
looking at other instances in the file, I suspect (?) it should be
either,
774 #define I_SYS_POLL /**/
or
774 /*#define I_SYS_POLL / **/
not
774 # I_SYS_POLL /**/
fwiw, the install of exiting 5.10.x packages from the repo ends up with
a broken install.
otoh, a cross-compile build of perl 5.10.x from the repos works well.
.../ipkgs-install/ dirs & files scp'd from the build host to the openwrt
target work fine.
5.12.2 clearly has some differences ...
any help is appreciated.
Thread Previous
|
Thread Next