在 AIX 6.1 上,gcc 编译 Perl V5.8.8 时 make 失败
由于尝试安装 CPAN 时出现的 cc_r 问题,我让 gcc 在 AIX 6.1 上编译 Perl V5.8.8。我们没有 IBM C 编译器,但使用 gcc,它“成功编译”,我希望没有错误,运行 make per:
make
make depend MAKEDEPEND=
sh ./makedepend MAKE=make
sh writemain lib/auto/DynaLoader/DynaLoader.a > perlmain.c
echo av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c reentr.c perl.c perly.c pp.c pp_hot.c
pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c xsutils.c pad.c globals.c perlio.c perlapi.c numeric.c locale.c pp_pack.c pp_sort.c miniperlmain.c perlmain.c opmini.c | tr ' ' '\n' >.clist
Finding dependencies for av.o.
Finding dependencies for scope.o.
Finding dependencies for op.o.
Finding dependencies for doop.o.
Finding dependencies for doio.o.
Finding dependencies for dump.o.
Finding dependencies for hv.o.
Finding dependencies for mg.o.
Finding dependencies for reentr.o.
Finding dependencies for perl.o.
Finding dependencies for perly.o.
Finding dependencies for pp.o.
Finding dependencies for pp_hot.o.
Finding dependencies for pp_ctl.o.
Finding dependencies for pp_sys.o.
Finding dependencies for regcomp.o.
Finding dependencies for regexec.o.
Finding dependencies for utf8.o.
Finding dependencies for gv.o.
Finding dependencies for sv.o.
Finding dependencies for taint.o.
Finding dependencies for toke.o.
Finding dependencies for util.o.
Finding dependencies for deb.o.
Finding dependencies for run.o.
Finding dependencies for universal.o.
Finding dependencies for xsutils.o.
Finding dependencies for pad.o.
Finding dependencies for globals.o.
Finding dependencies for perlio.o.
Finding dependencies for perlapi.o.
Finding dependencies for numeric.o.
Finding dependencies for locale.o.
Finding dependencies for pp_pack.o.
Finding dependencies for pp_sort.o.
Finding dependencies for miniperlmain.o.
Finding dependencies for perlmain.o.
Finding dependencies for opmini.o.
echo Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH makedir.SH myconfig.SH writemain.SH pod/Makefile.SH | tr ' ' '\n' >.shlist
Updating makefile...
test -s perlmain.c && touch perlmain.c
cd x2p; make depend
sh ../makedepend MAKE=make
echo hash.c str.c util.c walk.c | tr ' ' '\n' >.clist
Finding dependencies for hash.o.
Finding dependencies for str.o.
Finding dependencies for util.o.
Finding dependencies for walk.o.
echo Makefile.SH cflags.SH | tr ' ' '\n' >.shlist
Updating makefile...
`sh cflags "optimize='-O'" miniperlmain.o` miniperlmain.c
CCCMD = gcc -maix64 -DPERL_CORE -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -maix64 -DUSE_64_BIT_ALL -O -Wall
In file included from perl.h:496,
from miniperlmain.c:36:
/usr/include/unistd.h:924: error: expected ')' before '[' token
/usr/include/unistd.h:925: error: expected declaration specifiers or '...' before 'rid_t'
make: 1254-004 The error code from the last command is 1.
Stop.
Output from offendinglines in /usr/include/unistd.h:
extern int setroles(rid_t [], int);
extern int getroles(pid_t, rid_t [], int);
"/usr/include/unistd.h" [Read only] The cursor is at line 924 of 966 --91%-- .
再次,非常感谢任何帮助。 ........ LT
PS。虽然 IBM 声明 Perl V5.10.x 在 AIX 6.1 上未打包/不受支持,但它实际上能正确运行吗?
I got gcc to compile Perl V5.8.8 on AIX 6.1 due to stated cc_r issues while attempting to install CPAN. We do not have the IBM C compiler but using gcc and it "successfully compiled", I hope as no errors, ran make per:
make
make depend MAKEDEPEND=
sh ./makedepend MAKE=make
sh writemain lib/auto/DynaLoader/DynaLoader.a > perlmain.c
echo av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c reentr.c perl.c perly.c pp.c pp_hot.c
pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c xsutils.c pad.c globals.c perlio.c perlapi.c numeric.c locale.c pp_pack.c pp_sort.c miniperlmain.c perlmain.c opmini.c | tr ' ' '\n' >.clist
Finding dependencies for av.o.
Finding dependencies for scope.o.
Finding dependencies for op.o.
Finding dependencies for doop.o.
Finding dependencies for doio.o.
Finding dependencies for dump.o.
Finding dependencies for hv.o.
Finding dependencies for mg.o.
Finding dependencies for reentr.o.
Finding dependencies for perl.o.
Finding dependencies for perly.o.
Finding dependencies for pp.o.
Finding dependencies for pp_hot.o.
Finding dependencies for pp_ctl.o.
Finding dependencies for pp_sys.o.
Finding dependencies for regcomp.o.
Finding dependencies for regexec.o.
Finding dependencies for utf8.o.
Finding dependencies for gv.o.
Finding dependencies for sv.o.
Finding dependencies for taint.o.
Finding dependencies for toke.o.
Finding dependencies for util.o.
Finding dependencies for deb.o.
Finding dependencies for run.o.
Finding dependencies for universal.o.
Finding dependencies for xsutils.o.
Finding dependencies for pad.o.
Finding dependencies for globals.o.
Finding dependencies for perlio.o.
Finding dependencies for perlapi.o.
Finding dependencies for numeric.o.
Finding dependencies for locale.o.
Finding dependencies for pp_pack.o.
Finding dependencies for pp_sort.o.
Finding dependencies for miniperlmain.o.
Finding dependencies for perlmain.o.
Finding dependencies for opmini.o.
echo Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH makedir.SH myconfig.SH writemain.SH pod/Makefile.SH | tr ' ' '\n' >.shlist
Updating makefile...
test -s perlmain.c && touch perlmain.c
cd x2p; make depend
sh ../makedepend MAKE=make
echo hash.c str.c util.c walk.c | tr ' ' '\n' >.clist
Finding dependencies for hash.o.
Finding dependencies for str.o.
Finding dependencies for util.o.
Finding dependencies for walk.o.
echo Makefile.SH cflags.SH | tr ' ' '\n' >.shlist
Updating makefile...
`sh cflags "optimize='-O'" miniperlmain.o` miniperlmain.c
CCCMD = gcc -maix64 -DPERL_CORE -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -maix64 -DUSE_64_BIT_ALL -O -Wall
In file included from perl.h:496,
from miniperlmain.c:36:
/usr/include/unistd.h:924: error: expected ')' before '[' token
/usr/include/unistd.h:925: error: expected declaration specifiers or '...' before 'rid_t'
make: 1254-004 The error code from the last command is 1.
Stop.
Output from offending lines in /usr/include/unistd.h:
extern int setroles(rid_t [], int);
extern int getroles(pid_t, rid_t [], int);
"/usr/include/unistd.h" [Read only] The cursor is at line 924 of 966 --91%-- .
again, any help is GREATLY appreciated......... LT
PS. while IBM states Perl V5.10.x is not packaged/supported on AIX 6.1, will it actually run correctly anyway?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
除了当前版本的 Perl 之外,您不太可能获得像样的社区支持,截至 2011 年,这意味着 v5.14< /a>.
#perl-help
的意见:You're very unlikely to get decent community support for anything but current versions of Perl, as of 2011 this means v5.14.
#perl-help
's opinions: