[comp.lang.perl] perl-3.0 PL#36 link problem

mdb@ESD.3Com.COM (Mark D. Baushke) (10/19/90)

System:     Sun-3/60 SunOS 3.5
Compiler:   either gcc or cc
Summary:    The Sun provided malloc under SunOS 3.5 contains a function
	    _malloc_at_addr which is used by shmsys.o
Workaround: Do no use the perl provided malloc.
Fix: 	    Remove the shared memory features from perl under SunOS 3.5
	    (but how?) 

% ld -y__malloc_at_addr -y_malloc_at_addr array.o cmd.o cons.o consarg.o doarg.o doio.o dolist.o dump.o eval.o form.o hash.o malloc.o perly.o regcomp.o regexec.o stab.o str.o toke.o util.o perl.o usersub.o -ldbm -lm -lc -o perl
Undefined: 
_environ 
/lib/libc.a(shmsys.o): reference to external undefined __malloc_at_addr 
_realloc: /lib/libc.a(malloc.o): multiply defined 
_free: /lib/libc.a(malloc.o): multiply defined 
/lib/libc.a(malloc.o): definition of external text __malloc_at_addr 
_malloc: /lib/libc.a(malloc.o): multiply defined 

% gcc   array.o cmd.o cons.o consarg.o doarg.o doio.o dolist.o dump.o eval.o form.o hash.o malloc.o perly.o regcomp.o regexec.o stab.o str.o toke.o util.o perl.o usersub.o -ldbm -lm -o perl
_realloc: ld: /lib/libc.a(malloc.o): multiply defined
_free: /lib/libc.a(malloc.o): multiply defined
_malloc: /lib/libc.a(malloc.o): multiply defined
*** Error code 1

Stop.

% nm malloc.o
00000004 C _cshlen 
00000004 C _cshname 
00000286 t _findbucket 
0000012a T _free 
00000000 T _malloc 
         U _memcpy 
0000006c t _morecore 
00000314 b _nextf 
000002f0 D _reall_srchlen 
00000192 T _realloc 
         U _sbrk 
000002cc d _sccsid 
00000004 C _statname 
00000004 C _statstab 
         U _warn 
% cd /tmp
% ar xv /lib/libc.a malloc.o 
x - malloc.o 
% nm malloc.o 
00000926 D ___mallinfo 
0000096a D __lbound 
000006ec T __malloc_at_addr 
00000966 D __root 
0000096e D __ubound 
         U _bcopy 
         U _errno 
000002f4 T _free 
         U _getpagesize 
000001d4 T _malloc 
00000478 T _realloc 
         U _sbrk 
% ar xv libc.a shmsys.o 
x - shmsys.o 
56:mdb@bennevis% nm shmsys.o 
         U __malloc_at_addr 
         U _errno 
         U _free 
         U _memalign 
         U _perror 
00000000 T _shmat 
00000192 T _shmctl 
000001c4 T _shmdt 
0000023a T _shmget 
         U _syscall 


-- 
Mark D. Baushke
mdb@ESD.3Com.COM