Mailing List Archive

MM 5.09 patch with 5.002b1: problems on Linux
I applied patch-perl5.002beta1-MM5.09.gz on my Linux box.

Perl coredumps on all the following tests (with not even so much
as a symptomatic error message):

lib/anydbm
lib/db-btree
lib/db-hash
lib/db-recno
lib/gdbm
lib/odbm
lib/posix

The only commonality I can see is that they are all dynamically loaded.
(funnily enough, sdbm passes all tests.)

Perl passes all tests if I back out the patch and use MM 5.06 instead.

I haven't had the time to look further than that, but I thought
I should let you know, in case some one else is seeing the same.

- Sarathy.
gsar@engin.umich.edu

myconfig output (for the version I built with MM 5.06):
------
Summary of my perl5 (patchlevel 2) configuration:
Platform:
osname=linux, osver=1, archname=i586-linux
uname='linux pujyam 1.2.13 #2 sun oct 8 17:33:58 edt 1995 i586 '
hint=recommended
Compiler:
cc='cc', optimize='-O2', ld='cc'
cppflags='-D__USE_BSD_SIGNAL -Dbool=char -DHAS_BOOL'
ccflags ='-D__USE_BSD_SIGNAL -Dbool=char -DHAS_BOOL'
ldflags =' -L/usr/local/lib'
stdchar='char', d_stdstdio=define, usevfork=false
voidflags=15, castflags=0, d_casti32=undef, d_castneg=define
intsize=4, alignbytes=4, usemymalloc=n, randbits=31
Libraries:
so=so
libpth=/usr/local/lib /lib /usr/lib
libs=-lgdbm -ldbm -ldb -ldl -lm -lc -lbsd
libc=/usr/lib/libc.a
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef
cccdlflags='-fpic', ccdlflags='-rdynamic', lddlflags='-shared -L/usr/local/lib'
Re: MM 5.09 patch with 5.002b1: problems on Linux (solved) [ In reply to ]
On Thu, 23 Nov 1995 23:58:52 EST, I wrote:
>
>I applied patch-perl5.002beta1-MM5.09.gz on my Linux box.
>
>Perl coredumps on all the following tests (with not even so much
>as a symptomatic error message):

ld seems to have been taken for granted, which you can't do on
Linux. The fix was to go back to the earlier way of doing it.

- Sarathy.
gsar@engin.umich.edu
--------------------------------8<-------------------------------
*** MakeMaker.pm.5.09 Fri Nov 24 00:09:06 1995
--- MakeMaker.pm Fri Nov 24 01:22:21 1995
***************
*** 1220,1226 ****
$self->{OBJECT} =~ s/\n+/ \\\n\t/g;
$self->{BOOTDEP} = (-f "$self->{BASEEXT}_BS") ? "$self->{BASEEXT}_BS" : "";
$self->{PERLMAINCC} ||= '$(CC)';
! $self->{LD} ||= 'ld';
$self->{LDFROM} = '$(OBJECT)' unless $self->{LDFROM};

# Sanity check: don't define LINKTYPE = dynamic if we're skipping
--- 1220,1227 ----
$self->{OBJECT} =~ s/\n+/ \\\n\t/g;
$self->{BOOTDEP} = (-f "$self->{BASEEXT}_BS") ? "$self->{BASEEXT}_BS" : "";
$self->{PERLMAINCC} ||= '$(CC)';
! #$self->{LD} ||= 'ld'; # naw, that won't work on Linux
! $self->{LD} = ($Config::Config{ld} || 'ld') unless $self->{LD};
$self->{LDFROM} = '$(OBJECT)' unless $self->{LDFROM};

# Sanity check: don't define LINKTYPE = dynamic if we're skipping
Re: MM 5.09 patch with 5.002b1: problems on Linux (solved) [ In reply to ]
>>>>> "gsar" == Gurusamy Sarathy <gsar@engin.umich.edu> writes:

gsar> On Thu, 23 Nov 1995 23:58:52 EST, I wrote:
>>
>> I applied patch-perl5.002beta1-MM5.09.gz on my Linux box.
>>
>> Perl coredumps on all the following tests (with not even so much
>> as a symptomatic error message):

gsar> ld seems to have been taken for granted, which you can't do on
gsar> Linux. The fix was to go back to the earlier way of doing it.

I have tried a similar fix that preserves ld from $Config{ld}, but my
testing on linux now fails on sdbm file. Are you sure it works for you?


make[1]: Entering directory `/usr/sources/perl/perl/perl5.002beta1a/ext/SDBM_File/sdbm'
cc -c -D__USE_BSD_SIGNAL -Dbool=char -DHAS_BOOL -O2 -DVERSION=\"0.10\" -fpic -I../../.. -DSDBM -DDUFF sdbm.c
cc -L/usr/local/lib sdbm.o -o sdbm
sdbm.o(.text+0x2e9): undefined reference to `sdbm_hash'
sdbm.o(.text+0x310): undefined reference to `getpair'
sdbm.o(.text+0x3c3): undefined reference to `sdbm_hash'
sdbm.o(.text+0x3e2): undefined reference to `delpair'
sdbm.o(.text+0x4e3): undefined reference to `sdbm_hash'
sdbm.o(.text+0x50f): undefined reference to `duppair'
sdbm.o(.text+0x53a): undefined reference to `delpair'
sdbm.o(.text+0x54d): undefined reference to `fitpair'
sdbm.o(.text+0x580): undefined reference to `putpair'
sdbm.o(.text+0x633): undefined reference to `splpage'
sdbm.o(.text+0x716): undefined reference to `fitpair'
sdbm.o(.text+0x994): undefined reference to `chkpage'
sdbm.o(.text+0xbd8): undefined reference to `getnkey'
sdbm.o(.text+0xc4e): undefined reference to `chkpage'
/usr/lib/crt1.o(.text+0x50): undefined reference to `main'


Is it my make (3.74)?

andreas
Re: MM 5.09 patch with 5.002b1: problems on Linux (solved) [ In reply to ]
On Fri, 24 Nov 1995 10:53:29 +0100, Andreas Koenig wrote:
>
>make[1]: Entering directory `/usr/sources/perl/perl/perl5.002beta1a/ext/SDBM_File/s
>dbm'
>cc -c -D__USE_BSD_SIGNAL -Dbool=char -DHAS_BOOL -O2 -DVERSION=\"0.10\" -fpic -I../
>../.. -DSDBM -DDUFF sdbm.c

You seem to be missing '-shared' for gcc. (I'm guessing you're building
statically from the -fpic).

>
>Is it my make (3.74)?
>

I have the same make. And yes, I did double check that all the tests
run fine.

>
>andreas
>

- Sarathy.
gsar@engin.umich.edu