develooper Front page | perl.perl5.porters | Postings from December 2008

suidperl on AIX

Thread Next
From:
Rainer Tammer
Date:
December 2, 2008 04:41
Subject:
suidperl on AIX
Message ID:
493528EF.4070208@tammer.net
Hello,
I have encountered a little problem with suidperl. As soon as I specify
-Dd_dosuid  to build suidperl on AIX I get this error:

LIBPATH=/daten/source/perl-5.8.9-RC1_32:/usr/local/081119/lib cc_r -q32
-o suidperl -brtl -bdynamic -b32 -bmaxdata:0x80000000 -bE:perl.exp
perlmain.o sperl.o  -L
/usr/opt/perl5.8.9_32/lib/5.8.9/aix-thread-multi/CORE -L
/daten/source/perl-5.8.9-RC1_32 -lperl `cat ext.libs` -lbind -lnsl -ldl
-lld -lm -lcrypt -lpthreads -lc -lbsd
ld: 0711-317 ERROR: Undefined symbol: .Perl_pp_entereval
ld: 0711-317 ERROR: Undefined symbol: .Perl_pp_entersub
ld: 0711-317 ERROR: Undefined symbol: .Perl_pad_new
ld: 0711-317 ERROR: Undefined symbol: .Perl_boot_core_PerlIO
ld: 0711-317 ERROR: Undefined symbol: .Perl_boot_core_UNIVERSAL
ld: 0711-317 ERROR: Undefined symbol: .Perl_boot_core_xsutils
ld: 0711-317 ERROR: Undefined symbol: .Perl_lex_start
ld: 0711-317 ERROR: Undefined symbol: .Perl_yyparse
ld: 0711-317 ERROR: Undefined symbol: .Perl_av_create_and_push
ld: 0711-317 ERROR: Undefined symbol: .Perl_cando
ld: 0711-317 ERROR: Undefined symbol: .Perl_rsignal_save
ld: 0711-317 ERROR: Undefined symbol: .Perl_rsignal_restore
ld: 0711-317 ERROR: Undefined symbol: .Perl_find_script
ld: 0711-317 ERROR: Undefined symbol: Perl_peep
ld: 0711-317 ERROR: Undefined symbol: .Perl_save_op
ld: 0711-317 ERROR: Undefined symbol: .Perl_push_return
ld: 0711-317 ERROR: Undefined symbol: .Perl_create_eval_scope
ld: 0711-317 ERROR: Undefined symbol: .Perl_delete_eval_scope
ld: 0711-317 ERROR: Undefined symbol: .Perl_parse_unicode_opts
ld: 0711-317 ERROR: Undefined symbol: .Perl_get_hash_seed
ld: 0711-317 ERROR: Undefined symbol: .PerlIO_destruct
ld: 0711-317 ERROR: Undefined symbol: .Perl_sv_clean_all
ld: 0711-317 ERROR: Undefined symbol: .PerlIO_cleanup
ld: 0711-317 ERROR: Undefined symbol: .Perl_free_tied_hv_pool
ld: 0711-317 ERROR: Undefined symbol: .Perl_sv_free_arenas
ld: 0711-317 ERROR: Undefined symbol: .Perl_sv_clean_objs
ld: 0711-317 ERROR: Undefined symbol: Perl_sighandler
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
information.
make: 1254-004 The error code from the last command is 8.

The rest builds without a problem.
I can solve this problem with the inclusion of -lperl_nonshr after sperl.o.

I am not sure why this is necessary.

In my current developement environment I have achieved this with the
following patch against Makefile.SH:

1. add aix_fixup='' right after ldlibpth=''
2. add aix_fixup="-lperl_nonshr" in the [case "$useshrplib" in] case
3. use LLIBPERL_SUIDPERL= $aix_fixup $linklibperl instead of LLIBPER=
$linklibperl for suidperl later

This is only a quick hack not a permanent solution.

So my question:

1. Is suidperl supposed to build shared ?
2. Why does perl build without a problem - what am I missing ?

Bye
  Rainer


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About