Problems compiling script that uses IO::Socket

136 views
Skip to first unread message

ShaunR

unread,
Jan 21, 2011, 5:35:13 PM1/21/11
to perl-compiler
I've been working on this for hours now and just cant seam to figure
it out.

OS is CentOS 5 (32bit)
Perl Version 5.8.8 (default centos 5 rpm install)
B::C version is 1.29.

Here is my source...

[root@server1 module-test3]# cat script.pl
#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket;
my $remote = IO::Socket::INET->new( Proto => "tcp", PeerAddr =>
"perl.org", PeerPort => "80" );
print $remote "GET / HTTP/1.0" . "\r\n\r\n";
while(<$remote>) { print }
close $remote;

Then...
[root@server1 module-test3]# perl -MO=C,-oscript.c script.pl
script.pl syntax OK


and Finally...
[root@server1 module-test3]# cc_harness script.c
gcc -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -
Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -
D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -I/usr/lib/perl5/5.8.8/i386-
linux-thread-multi/CORE script.c -Wl,-E -Wl,-rpath,/usr/lib/
perl5/5.8.8/i386-linux-thread-multi/CORE -L/usr/local/lib /usr/lib/
perl5/5.8.8/i386-linux-thread-multi/auto/DynaLoader/DynaLoader.a -L/
usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE /usr/lib/perl5/5.8.8/
i386-linux-thread-multi/CORE/libperl.so -lresolv -lnsl -ldl -lm -
lcrypt -lutil -lpthread -lc

When running the a.out file i get the following error.
[root@server1 module-test3]# ./a.out
Can't locate object method "new" via package
"IO::Socket::INET" (perhaps you forgot to load "IO::Socket::INET"?) at
script.c line 8.

I've tried to do many things over the the last few hours, messed with
perlcc options, gcc options, even installed perl 5.6.2 to see if that
was more stable. If i i pass -uIO::Socket::INET to perlcc i can get
it to compile but this time i get a seg fault.

Anybody have any advice or info that can point me in the right
direction?

~Shaun R.

J. Nick Koston

unread,
Jan 21, 2011, 5:42:39 PM1/21/11
to perl-c...@googlegroups.com
Try it with -uIO::Socket::INET and make sure to link in IO.so when you compile it.

> --
> Unsubscribe via mail to perl-compile...@googlegroups.com
> Options: http://groups.google.com/group/perl-compiler?hl=en
>

Shaun Reitan

unread,
Jan 21, 2011, 11:45:30 PM1/21/11
to perl-c...@googlegroups.com
Hey Nick, thanks for the reply!  Still no go though.  I've included what i didn incase i'm not doing it correctly and an strace of a.out
 
 
[root@server1 module-test3]# perl -MO=C,-oscript.c,-uIO::Socket::INET script.pl
NYI S_method_common not fully implemented yet sv=B::NULL=SCALAR(0x9ef8ff0) flags=0x300 at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/B/C.pm line 345.
NYI S_method_common not fully implemented yet sv=B::IV=SCALAR(0x9ecffec) flags=0x1010301 at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/B/C.pm line 345.
script.pl syntax OK

[root@server1 module-test3]# cc_harness script.c /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so
gcc -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE script.c /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE  -L/usr/local/lib /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE /usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so -lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
[root@server1 module-test3]# ./a.out
Segmentation fault
[root@server1 module-test3]# strace ./a.out
execve("./a.out", ["./a.out"], [/* 20 vars */]) = 0
brk(0)                                  = 0xa06f000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f29000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\20\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=16016, ...}) = 0
mmap2(NULL, 18896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xad1000
mmap2(0xad5000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xad5000
close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\1\2\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1240264, ...}) = 0
mmap2(NULL, 1251456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb3f000
mmap2(0xc6a000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12a) = 0xc6a000
mmap2(0xc6f000, 6272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xc6f000
close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/i686/sse2/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/i686/sse2", 0xbfe0ddc0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/i686/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/i686", 0xbfe0ddc0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/sse2/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/sse2", 0xbfe0ddc0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls", 0xbfe0ddc0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/i686/sse2/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/i686/sse2", 0xbfe0ddc0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/i686/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/i686", 0xbfe0ddc0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/sse2/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/sse2", 0xbfe0ddc0) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=16278, ...}) = 0
mmap2(NULL, 16278, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f25000
close(3)                                = 0
open("/lib/libresolv.so.2", O_RDONLY)   = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340 \0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=78780, ...}) = 0
mmap2(NULL, 80072, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xe4d000
mmap2(0xe5d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf) = 0xe5d000
mmap2(0xe5f000, 6344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xe5f000
close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libnsl.so.1", O_RDONLY)      = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@1\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=107924, ...}) = 0
mmap2(NULL, 100296, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xade000
mmap2(0xaf3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14) = 0xaf3000
mmap2(0xaf5000, 6088, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xaf5000
close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.2", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\n\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=18812, ...}) = 0
mmap2(NULL, 16504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x373000
mmap2(0x376000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0x376000
close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0204\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=214572, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f24000
mmap2(NULL, 163952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xebe000
mmap2(0xee5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26) = 0xee5000
close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libcrypt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libcrypt.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\7\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=43616, ...}) = 0
mmap2(NULL, 201020, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xcb3000
mmap2(0xcbc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xcbc000
mmap2(0xcbe000, 155964, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xcbe000
close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libutil.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libutil.so.1", O_RDONLY)     = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\n\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=13492, ...}) = 0
mmap2(NULL, 12428, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4f6000
mmap2(0x4f8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0x4f8000
close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0PH\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=135892, ...}) = 0
mmap2(NULL, 98788, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x674000
mmap2(0x689000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15) = 0x689000
mmap2(0x68b000, 4580, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x68b000
close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340_\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1686224, ...}) = 0
mmap2(NULL, 1410500, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x110000
mmap2(0x263000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x152) = 0x263000
mmap2(0x266000, 9668, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x266000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f23000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f22000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7f226c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0x263000, 8192, PROT_READ)     = 0
mprotect(0x689000, 4096, PROT_READ)     = 0
mprotect(0x4f8000, 4096, PROT_READ)     = 0
mprotect(0xcbc000, 4096, PROT_READ)     = 0
mprotect(0xee5000, 4096, PROT_READ)     = 0
mprotect(0x376000, 4096, PROT_READ)     = 0
mprotect(0xaf3000, 4096, PROT_READ)     = 0
mprotect(0xe5d000, 4096, PROT_READ)     = 0
mprotect(0x612000, 4096, PROT_READ)     = 0
munmap(0xb7f25000, 16278)               = 0
set_tid_address(0xb7f22708)             = 28850
set_robust_list(0xb7f22710, 0xc)        = 0
futex(0xbfe0e694, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGRTMIN, {0x6783e0, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x6782e0, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sys="Linux", node="server1.dev.vpsctrl.net", ...}) = 0
rt_sigaction(SIGFPE, {0x1, [FPE], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
brk(0)                                  = 0xa06f000
brk(0xa090000)                          = 0xa090000
getuid32()                              = 0
geteuid32()                             = 0
getgid32()                              = 0
getegid32()                             = 0
mmap2(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f01000
open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 3
read(3, "\301\370F\"", 4)               = 4
close(3)                                = 0
time(NULL)                              = 1295645661
stat64("/usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.7", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.6", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.5", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.7", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.6", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.5", 0xbfe0e3ac) = -1 ENOENT (No such file or directory)
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
_llseek(0, 0, 0xbfe0e1f0, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
_llseek(1, 0, 0xbfe0e1f0, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
_llseek(2, 0, 0xbfe0e1f0, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
open("/dev/null", O_RDONLY|O_LARGEFILE) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfe0e2a8) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(3, 0, [0], SEEK_CUR)            = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
fstat64(3, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
readlink("/proc/self/exe", "/usr/local/vpsctrl/testing/module-test3/a.out"..., 4095) = 45
close(3)                                = 0
brk(0xa0b1000)                          = 0xa0b1000
brk(0xa0d2000)                          = 0xa0d2000
brk(0xa0f3000)                          = 0xa0f3000
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so", {st_mode=S_IFREG|0755, st_size=16016, ...}) = 0
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.bs", 0xa06f0c8) = -1 ENOENT (No such file or directory)
futex(0x37706c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.so", {st_mode=S_IFREG|0755, st_size=20216, ...}) = 0
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.bs", 0xa06f0c8) = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\r\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=20216, ...}) = 0
mmap2(NULL, 23092, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xa04000
mmap2(0xa09000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4) = 0xa09000
close(3)                                = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
[root@server1 module-test3]#

Reini Urban

unread,
Jan 22, 2011, 7:40:29 AM1/22/11
to perl-c...@googlegroups.com
2011/1/22 Shaun Reitan <shaun....@gmail.com>:

> Hey Nick, thanks for the reply!  Still no go though.  I've included what i
> didn incase i'm not doing it correctly and an strace of a.out

Hi,
There's still a problem with XSLoader.
You have to link to Socket.so and -UUSE_DYNAMIC_LOADING in cc_harness.

I planned a -staticxs cmdline switch for perlcc, but haven't implemented it yet.
(.so/dll detection API)

Shaun Reitan

unread,
Jan 22, 2011, 10:30:56 PM1/22/11
to perl-c...@googlegroups.com
Reini, Problem still exists.
 
[root@server1 module-test3]# cc_harness -UUSE_DYNAMIC_LOADING script.c /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.so /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so
gcc -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE -UUSE_DYNAMIC_LOADING script.c /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.so /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE  -L/usr/local/lib /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE /usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so -lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
[root@server1 module-test3]# ./a.out
Segmentation fault
[root@server1 module-test3]# strace ./a.out
execve("./a.out", ["./a.out"], [/* 20 vars */]) = 0
brk(0)                                  = 0x94ca000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f34000

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\r\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=20216, ...}) = 0
mmap2(NULL, 23092, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x771000
mmap2(0x776000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4) = 0x776000
close(3)                                = 0

open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\20\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=16016, ...}) = 0
mmap2(NULL, 18896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x810000
mmap2(0x814000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0x814000

close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\1\2\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1240264, ...}) = 0
mmap2(NULL, 1251456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x133000
mmap2(0x25e000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12a) = 0x25e000
mmap2(0x263000, 6272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x263000

close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/i686/sse2/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/i686/sse2", 0xbffb52b4) = -1 ENOENT (No such file or directory)

open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/i686/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/i686", 0xbffb52b4) = -1 ENOENT (No such file or directory)

open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/sse2/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/sse2", 0xbffb52b4) = -1 ENOENT (No such file or directory)

open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/tls", 0xbffb52b4) = -1 ENOENT (No such file or directory)

open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/i686/sse2/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/i686/sse2", 0xbffb52b4) = -1 ENOENT (No such file or directory)

open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/i686/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/i686", 0xbffb52b4) = -1 ENOENT (No such file or directory)

open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/sse2/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/sse2", 0xbffb52b4) = -1 ENOENT (No such file or directory)

open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=16278, ...}) = 0
mmap2(NULL, 16278, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f30000

close(3)                                = 0
open("/lib/libresolv.so.2", O_RDONLY)   = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340 \0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=78780, ...}) = 0
mmap2(NULL, 80072, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x110000
mmap2(0x120000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf) = 0x120000
mmap2(0x122000, 6344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x122000

close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libnsl.so.1", O_RDONLY)      = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@1\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=107924, ...}) = 0
mmap2(NULL, 100296, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xe20000
mmap2(0xe35000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14) = 0xe35000
mmap2(0xe37000, 6088, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xe37000

close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.2", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\n\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=18812, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2f000
mmap2(NULL, 16504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x996000
mmap2(0x999000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0x999000

close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0204\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=214572, ...}) = 0
mmap2(NULL, 163952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3e1000
mmap2(0x408000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26) = 0x408000

close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libcrypt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libcrypt.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\7\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=43616, ...}) = 0
mmap2(NULL, 201020, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x269000
mmap2(0x272000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0x272000
mmap2(0x274000, 155964, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x274000

close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libutil.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libutil.so.1", O_RDONLY)     = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\n\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=13492, ...}) = 0
mmap2(NULL, 12428, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x412000
mmap2(0x414000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0x414000

close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0PH\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=135892, ...}) = 0
mmap2(NULL, 98788, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xc18000
mmap2(0xc2d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15) = 0xc2d000
mmap2(0xc2f000, 4580, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xc2f000

close(3)                                = 0
open("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340_\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1686224, ...}) = 0
mmap2(NULL, 1410500, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x416000
mmap2(0x569000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x152) = 0x569000
mmap2(0x56c000, 9668, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x56c000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2e000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2d000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7f2d6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0x569000, 8192, PROT_READ)     = 0
mprotect(0xc2d000, 4096, PROT_READ)     = 0
mprotect(0x414000, 4096, PROT_READ)     = 0
mprotect(0x272000, 4096, PROT_READ)     = 0
mprotect(0x408000, 4096, PROT_READ)     = 0
mprotect(0x999000, 4096, PROT_READ)     = 0
mprotect(0xe35000, 4096, PROT_READ)     = 0
mprotect(0x120000, 4096, PROT_READ)     = 0
mprotect(0xffa000, 4096, PROT_READ)     = 0
munmap(0xb7f30000, 16278)               = 0
set_tid_address(0xb7f2d708)             = 16598
set_robust_list(0xb7f2d710, 0xc)        = 0
futex(0xbffb5ba4, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGRTMIN, {0xc1c3e0, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0xc1c2e0, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0

rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sys="Linux", node="server1.dev.vpsctrl.net", ...}) = 0
rt_sigaction(SIGFPE, {0x1, [FPE], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
brk(0)                                  = 0x94ca000
brk(0x94eb000)                          = 0x94eb000

getuid32()                              = 0
geteuid32()                             = 0
getgid32()                              = 0
getegid32()                             = 0
mmap2(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f0c000

open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 3
read(3, "i\231\372\337", 4)             = 4
close(3)                                = 0
time(NULL)                              = 1295727589
stat64("/usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.7", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.6", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/site_perl/5.8.5", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.7", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.6", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi", 0xbffb58bc) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/perl5/vendor_perl/5.8.5", 0xbffb58bc) = -1 ENOENT (No such file or directory)

ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
_llseek(0, 0, 0xbffb5700, SEEK_CUR)     = -1 ESPIPE (Illegal seek)

ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
_llseek(1, 0, 0xbffb5700, SEEK_CUR)     = -1 ESPIPE (Illegal seek)

ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
_llseek(2, 0, 0xbffb5700, SEEK_CUR)     = -1 ESPIPE (Illegal seek)

open("/dev/null", O_RDONLY|O_LARGEFILE) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbffb57b8) = -1 ENOTTY (Inappropriate ioctl for device)

_llseek(3, 0, [0], SEEK_CUR)            = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
fstat64(3, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
readlink("/proc/self/exe", "/usr/local/vpsctrl/testing/module-test3/a.out"..., 4095) = 45
close(3)                                = 0
brk(0x950c000)                          = 0x950c000
brk(0x952d000)                          = 0x952d000
brk(0x954e000)                          = 0x954e000

stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so", {st_mode=S_IFREG|0755, st_size=16016, ...}) = 0
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.bs", 0x94ca0c8) = -1 ENOENT (No such file or directory)
futex(0x99a06c, FUTEX_WAKE_PRIVATE, 2147483647) = 0

stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.so", {st_mode=S_IFREG|0755, st_size=20216, ...}) = 0
stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.bs", 0x94ca0c8) = -1 ENOENT (No such file or directory)

Reini Urban

unread,
Jan 23, 2011, 5:56:50 AM1/23/11
to perl-c...@googlegroups.com
2011/1/23 Shaun Reitan <shaun....@gmail.com>:

> Reini, Problem still exists.
>
> [root@server1 module-test3]# cc_harness -UUSE_DYNAMIC_LOADING script.c
> /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.so
> /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so
> gcc -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
> -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
> -I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE -UUSE_DYNAMIC_LOADING
> script.c /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.so
> /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so -Wl,-E
> -Wl,-rpath,/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE
> -L/usr/local/lib
> /usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/DynaLoader/DynaLoader.a
> -L/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE
> /usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so -lresolv -lnsl
> -ldl -lm -lcrypt -lutil -lpthread -lc
> [root@server1 module-test3]# ./a.out
> Segmentation fault

Ok. This could be a problem on the application level and not in the
xsloader/dynaloader.

We'll have to debug this with gdb, but first I'll try fix the
outstanding dynaloader
problems and add -staticxs so you don't have to tweak the building process.

Can you add an issue to code.google and add the two straces in the meantime?

> [root@server1 module-test3]# strace ./a.out

...


> stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.so",
> {st_mode=S_IFREG|0755, st_size=16016, ...}) = 0
> stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/IO/IO.bs",
> 0x94ca0c8) = -1 ENOENT (No such file or directory)
> futex(0x99a06c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
> stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.so",
> {st_mode=S_IFREG|0755, st_size=20216, ...}) = 0
> stat64("/usr/lib/perl5/5.8.8/i386-linux-thread-multi/auto/Socket/Socket.bs",
> 0x94ca0c8) = -1 ENOENT (No such file or directory)

> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> +++ killed by SIGSEGV +++

--
Reini Urban

Shaun Reitan

unread,
Jan 24, 2011, 12:26:27 PM1/24/11
to perl-c...@googlegroups.com
I created issue 59.  I included the source, build info, strace, and gdb info.  Let me know if you need anything else!

Reini Urban

unread,
Jan 24, 2011, 2:00:05 PM1/24/11
to perl-c...@googlegroups.com
2011/1/24 Shaun Reitan <shaun....@gmail.com>:

> I created issue 59.  I included the source, build info, strace, and
> gdb info.  Let me know if you need anything else!

I just finished perlcc --staticxs so I can check out this new problem,
thanks.
--
Reini

J. Nick Koston

unread,
Jan 30, 2011, 9:49:17 PM1/30/11
to perl-c...@googlegroups.com
Looks like its trying to autoload the module even though its already compiled in.

Perl_gv_fetchmethod_autoload
Try changing
Line 3885  in C.pm from
|| $package =~ /^(B|PerlIO|Internals|IO)::/ )
to
|| $package =~ /^(?:B::|PerlIO::|Internals::|IO$)/ )


On Jan 24, 2011, at 11:26 AM, Shaun Reitan wrote:

I created issue 59.  I included the source, build info, strace, and gdb info.  Let me know if you need anything else!

Reply all
Reply to author
Forward
0 new messages