Hi Brian,
I hope you had a good time in Germany and on the "German Perl
Workshop".
On Sat, Feb 24 2001, Brian Ingerson wrote:
> In the forthcoming Inline-0.32, you will be able to expose symbols
> between shared objects.
>
> ----8<----
> use Inline Global;
This week I was testing your "GLOBAL" feature in your new version
0.32. I have taken exactly the example included in this original
email. While this example is running on my Linux box, it it
not under AIX :-( What else did you expect !!!
I get an error like this:
ld: 0711-317 ERROR: Undefined symbol: .squared
I have attached both files ".Inline/.../out.make" from AIX and from
Linux to provide more informations. While the Linux make has a
"-shared" flag I can't see anything similar on the AIX. Do you have
any clue where I should look or what I can change ?
Cheers,
Norbert
--
Ceterum censeo | PGP encrypted mail preferred.
Redmond esse delendam. | PGP Public Key at www.MPA-Garching.MPG.DE/~nog/
mkdir blib
mkdir blib/lib
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/main_C_perl_72_d237fac999017ffdc2315401ea845109
mkdir blib/lib/auto
mkdir blib/lib/auto/main_C_perl_72_d237fac999017ffdc2315401ea845109
/usr/bin/perl -I/usr/lib/perl5/5.00503/i586-linux -I/usr/lib/perl5/5.00503
/usr/lib/perl5/5.00503/ExtUtils/xsubpp -typemap
/usr/lib/perl5/5.00503/ExtUtils/typemap
main_C_perl_72_d237fac999017ffdc2315401ea845109.xs >xstmp.c && mv xstmp.c
main_C_perl_72_d237fac999017ffdc2315401ea845109.c
cc -c -Dbool=char -DHAS_BOOL -I/usr/local/include -O2 -pipe -DVERSION=\"0.00\"
-DXS_VERSION=\"0.00\" -fpic -I/usr/lib/perl5/5.00503/i586-linux/CORE
main_C_perl_72_d237fac999017ffdc2315401ea845109.c
Running Mkbootstrap for main_C_perl_72_d237fac999017ffdc2315401ea845109 ()
chmod 644 main_C_perl_72_d237fac999017ffdc2315401ea845109.bs
LD_RUN_PATH="" cc -o
blib/arch/auto/main_C_perl_72_d237fac999017ffdc2315401ea845109/main_C_perl_72_d237fac999017ffdc2315401ea845109.so
-shared -L/usr/local/lib main_C_perl_72_d237fac999017ffdc2315401ea845109.o
chmod 755
blib/arch/auto/main_C_perl_72_d237fac999017ffdc2315401ea845109/main_C_perl_72_d237fac999017ffdc2315401ea845109.so
cp main_C_perl_72_d237fac999017ffdc2315401ea845109.bs
blib/arch/auto/main_C_perl_72_d237fac999017ffdc2315401ea845109/main_C_perl_72_d237fac999017ffdc2315401ea845109.bs
chmod 644
blib/arch/auto/main_C_perl_72_d237fac999017ffdc2315401ea845109/main_C_perl_72_d237fac999017ffdc2315401ea845109.bs
/usr/local/bin/perl "-I/usr/local/lib/perl5/5.00502/aix"
"-I/usr/local/lib/perl5/5.00502" -e 'use ExtUtils::Mksymlists; \
Mksymlists("NAME" => "main_C_perl_72_d237fac999017ffdc2315401ea845109", "DL_FUNCS" =>
{ }, "DL_VARS" => []);'
/usr/local/bin/perl -I/usr/local/lib/perl5/5.00502/aix -I/usr/local/lib/perl5/5.00502
/usr/local/lib/perl5/5.00502/ExtUtils/xsubpp -typemap
/usr/local/lib/perl5/5.00502/ExtUtils/typemap
main_C_perl_72_d237fac999017ffdc2315401ea845109.xs
>main_C_perl_72_d237fac999017ffdc2315401ea845109.tc && mv
main_C_perl_72_d237fac999017ffdc2315401ea845109.tc
main_C_perl_72_d237fac999017ffdc2315401ea845109.c
cc -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=8192
-I/usr/local/include -O -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\"
-I/usr/local/lib/perl5/5.00502/aix/CORE
main_C_perl_72_d237fac999017ffdc2315401ea845109.c
Running Mkbootstrap for main_C_perl_72_d237fac999017ffdc2315401ea845109 ()
chmod 644 main_C_perl_72_d237fac999017ffdc2315401ea845109.bs
LD_RUN_PATH="" ld -o
blib/arch/auto/main_C_perl_72_d237fac999017ffdc2315401ea845109/main_C_perl_72_d237fac999017ffdc2315401ea845109.so
-bhalt:4 -bM:SRE -bI:/usr/local/lib/perl5/5.00502/aix/CORE/perl.exp
-bE:main_C_perl_72_d237fac999017ffdc2315401ea845109.exp -b noentry -lc
-L/usr/local/lib main_C_perl_72_d237fac999017ffdc2315401ea845109.o
ld: 0711-317 ERROR: Undefined symbol: .squared
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make: ***
[blib/arch/auto/main_C_perl_72_d237fac999017ffdc2315401ea845109/main_C_perl_72_d237fac999017ffdc2315401ea845109.so]
Error 8
use Inline Global;
use Inline C;
use Inline C;
my ($a, $b) = @ARGV;
print "$a ^ 2 + $b ^ 2 = ", sum_squares($a, $b), "\n";
__END__
__C__
extern int squared(int);
int squared(int x) {
return x * x;
}
__C__
int sum_squares(int a, int b) {
return squared(a) + squared(b);
}