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