Subject: Perl5 fails to build on NetBSD-1.6D with SWAP=512M
To: netbsd-help <netbsd-help@netbsd.org>
From: Sung N. Cho <sucho2@vt.edu>
List: netbsd-help
Date: 07/25/2002 13:22:42
Hi,

Ever since I've made the swap size using the default recommendation from 
sysinst:

128 M RAM;  512 M SWAP

Perl5 from pkgsrc fails to install.  Perl5 used to compile and install 
without error when my system was configured 128M RAM, 256 SWAP.  Below 
is the message error I get: (Sorry for the long list.  Just thought it 
would be more helpful in debugging for the developer when presented with 
detail!).


# cd /usr/pkgsrc/lang/perl5
# make
=> Checksum OK for perl-5.6.1.tar.gz.
work.snc -> /home/symlinks/usr/tmp/lang/perl5/work.snc
=> Lock acquired on behalf of process  307
===> Extracting for perl-5.6.1nb7
=> Lock released on behalf of process 307
=> Lock acquired on behalf of process  307
===> Patching for perl-5.6.1nb7
===> Applying NetBSD patches for perl-5.6.1nb7
=> Lock released on behalf of process 307
=> Lock acquired on behalf of process  307
===> Configuring for perl-5.6.1nb7
hintdir="/home/symlinks/usr/tmp/lang/perl5/work.snc/perl-5.6.1/hints";          

for hints in ${hintdir}/*.sh; do                                 
/bin/chmod +w $
{hints};                                         ( echo 
'';                    
echo 'man3dir=none';                             echo 
'locincpth="/usr/pkg/inclu
de"';                    echo 
'loclibpth="/usr/pkg/lib"';                      
echo 'ldflags="-Wl,-R/usr/pkg/lib $ldflags"';    ) >> 
${hints};                
done
hintdir="/home/symlinks/usr/tmp/lang/perl5/work.snc/perl-5.6.1/hints";          

for hints in ${hintdir}/*.sh; do                                 ( echo 
"glibpth
='/usr/lib'";            ) >> 
${hints};                                        
done
First let's make sure your kit is complete.  Checking...
Locating common programs...
Checking compatibility between /bin/echo and builtin echo (if any)...
Symbolic links are supported.
Checking how to test for symbolic links...
You can test for symbolic links with 'test -h'.
Good, your tr supports [:lower:] and [:upper:] to convert case.
Using [:upper:] and [:lower:] to convert case.
3b1             dynix           isc             nonstopux       stellar  
aix             dynixptx        isc_2           openbsd         sunos_4_0  
altos486        epix            linux           opus            sunos_4_1  
amigaos         esix4           lynxos          os2             svr4  
apollo          fps             machten         os390           svr5  
aux_3           freebsd         machten_2       posix-bc        ti1500  
beos            genix           mint            powerux         titanos  
bsdos           gnu             mips            qnx             ultrix_4  
convexos        greenhills      mpc             rhapsody        umips  
cxux            hpux            mpeix           sco             unicos  
cygwin          i386            ncr_tower       sco_2_3_0       unicosmk  
darwin          irix_4          netbsd          sco_2_3_1       
unisysdynix  
dcosx           irix_5          newsos4         sco_2_3_2       utekv  
dec_osf         irix_6          next_3          sco_2_3_3       uts  
dgux            irix_6_0        next_3_0        sco_2_3_4       uwin  
dos_djgpp       irix_6_1        next_4          solaris_2       vmesa  
Which of these apply, if any? [netbsd] 
Operating system name? [netbsd] 
Operating system version? [1.6d] 
Build a threading Perl? [n] 
Build Perl for multiplicity? [n] 
Use which C compiler? [cc] 
Checking for GNU cc in disguise and/or its version number...
Now, how can we feed standard input to your C preprocessor...
Directories to use for library searches? [/usr/pkg/lib /usr/lib] 
What is the file extension used for shared libraries? [so] 
Build Perl for SOCKS? [n] 
Checking for optional libraries...
What libraries to use? [-lm -lcrypt] 
What optimizer/debugger flag should be used? [-O2 -march=pentiumpro] 
Any additional cc flags? [-fno-strict-aliasing -I/usr/pkg/include] 
Let me guess what the preprocessor flags are...
Any additional ld flags (NOT including libraries)?
[-Wl,-R/usr/pkg/lib  -L/usr/pkg/lib] 
Checking your choice of C compiler and flags for coherency...
Checking to see how big your integers are...
off_t found.
Checking to see how big your file offsets are...
fpos_t found.
Checking the size of fpos_t...
Try to use 64-bit integers, if available? [n] 
Try to use maximal 64-bit support, if available? [n] 
Checking for GNU C Library...
Shall I use /usr/bin/nm to extract C symbols from the libraries? [y] 
Where is your C library? [/usr/lib/libc.so] 
Extracting names from the following files for later perusal:
        /usr/lib/libc.so
        /usr/lib/libcrypt.so.0.1
        /usr/lib/libm.so.0.1
This may take a while....done
sqrtl() NOT found.
Try to use long doubles if available? [n] 
Checking to see how big your double precision numbers are...
Checking to see if you have long double...
Checking to see how big your long doubles are...
What is your architecture name [i386-netbsd] 
Installation prefix to use? (~name ok) [/usr/pkg] 
AFS does not seem to be running...
What installation prefix should I use for installing files? (~name ok)
[/usr/pkg] 
Getting the current patchlevel...
Pathname where the private library files will reside? (~name ok)
[/usr/pkg/lib/perl5/5.6.1] 
Where do you want to put the public architecture-dependent libraries? 
(~name ok)
[/usr/pkg/lib/perl5/5.6.1/i386-netbsd] 
Binary compatibility with Perl 5.005? [y] 
Other username to test security of setuid scripts with? [none] 
I'll assume setuid scripts are *not* secure.
Does your kernel have *secure* setuid scripts? [n] 
Do you want to do setuid/setgid emulation? [n] 
Computing filename position in cpp output for #include directives...
<malloc.h> found.
<stdlib.h> found.
Do you wish to attempt to use the malloc that comes with perl5? [n] 
Your system wants malloc to return 'void *', it would seem.
Your system uses void free(), it would seem.
Installation prefix to use for add-on modules and utilities? (~name ok)
[/usr/pkg] 
Pathname for the site-specific library files? (~name ok)
[/usr/pkg/lib/perl5/site_perl/5.6.1] 
Pathname for the site-specific architecture-dependent library files? 
(~name ok)
[/usr/pkg/lib/perl5/site_perl/5.6.1/i386-netbsd] 
Do you want to configure vendor-specific add-on directories? [n] 
Colon-separated list of additional directories for perl to search? [none] 
Checking out function prototypes...
Pathname where the public executables will reside? (~name ok) 
[/usr/pkg/bin] 
List of earlier versions to include in @INC? [none] 
Do you want to install perl as /usr/bin/perl? [n] 
<dld.h> NOT found.
dlopen() found.
Do you wish to use dynamic loading? [y] 
Source file to use for dynamic loading [ext/DynaLoader/dl_dlopen.xs] 
Any special flags to pass to cc -c to compile shared library modules?
[-DPIC -fPIC ] 
What command should be used to create dynamic libraries? [cc] 
Any special flags to pass to cc to create a dynamically loaded library?
[--whole-archive -shared  -Wl,-R/usr/pkg/lib -L/usr/pkg/lib] 
Any special flags to pass to cc to use dynamic linking?
[-Wl,-whole-archive -lgcc -Wl,-no-whole-archive                         
-Wl,-E -
Wl,-R/usr/pkg/lib ] 
Build a shared libperl.so (y/n) [y] 
What name do you want to give to the shared libperl? [libperl.so] 

Adding -Wl,-R/usr/pkg/lib/perl5/5.6.1/i386-netbsd/CORE to the flags
passed to cc so that the perl executable will find the
installed shared libperl.so.

System manual is in /usr/share/man/man1.
Where do the main Perl5 manual pages (source) go? (~name ok)
[/usr/pkg/man/man1] 
What suffix should be used for the main Perl5 man pages? [1] 
You can have filenames longer than 14 characters.
Where do the perl5 library man pages (source) go? (~name ok) [none] 
Figuring out host name...
Your host name appears to be "snc". Right? [y] 
What is your domain name? [.home] 
What is your e-mail address? [sncho@snc.home] 
Perl administrator e-mail address [sncho@snc.home] 
Do you want to install only the version-specific parts of perl? [n] 
What shall I put after the #! to start up perl ("none" to not use #!)?
[/usr/pkg/bin/perl] 
Where do you keep publicly executable scripts? (~name ok) [/usr/pkg/bin] 
Pathname where the add-on public executables should be installed? (~name ok)
[/usr/pkg/bin] 
Use the experimental PerlIO abstraction layer? [n] 
qgcvt() NOT found.
Checking how to print long doubles...
gconvert NOT found.
gcvt NOT found.
sprintf() found.
I'll use sprintf to convert floats into a string.
fwalk() found.
access() found.
<sys/file.h> defines the *_OK access constants.
accessx() NOT found.
alarm() found.
atolf() NOT found.
atoll() found.
Checking whether your compiler can handle __attribute__ ...
bcmp() found.
bcopy() found.
<unistd.h> found.
getpgrp() found.
You have to use getpgrp() instead of getpgrp(pid).
setpgrp() found.
You have to use setpgrp(pid,pgrp) instead of setpgrp().
bzero() found.
You have void (*signal())().
Checking whether your C compiler can cast large floats to int32.
Checking whether your C compiler can cast negative float to unsigned.
vprintf() found.
Your vsprintf() returns (int).
chown() found.
chroot() found.
chsize() NOT found.
Checking to see if your C compiler knows about "const"...
crypt() found.
cuserid() NOT found.
<limits.h> found.
<float.h> found.
DBL_DIG found.
difftime() found.
<dirent.h> found.
Your directory entries are struct dirent.
Good, your directory entry keeps length information in d_namlen.
dlerror() found.
<dlfcn.h> found.
What is the extension of dynamically loaded modules [so] 
Checking whether your dlsym() needs a leading underscore ...
dlsym doesn't need a leading underscore.
dup2() found.
eaccess() NOT found.
endgrent() found.
endhostent() found.
endnetent() found.
endprotoent() found.
endpwent() found.
endservent() found.
<sys/file.h> defines the O_* constants...
and you have the 3 argument form of open().
Using <string.h> instead of <strings.h>.
Figuring out the flag used by open() for non-blocking I/O...
Let's see what value errno gets from read() on a O_NONBLOCK file...
fchmod() found.
fchown() found.
fcntl() found.
Hmm... Looks like you have Berkeley networking support.
socketpair() found.
Checking the availability of certain socket constants...
<sys/select.h> found.
Testing to see if we should include <time.h>, <sys/time.h> or both.
We'll include <sys/time.h>.
Well, your system knows about the normal fd_set typedef...
and you have the normal fd_set macros (just as I'd expect).
fgetpos() found.
flock() found.
fork() found.
pathconf() found.
fpathconf() found.
Checking to see if you have fpos64_t...
frexpl() NOT found.
<sys/param.h> found.
<sys/mount.h> found.
<sys/types.h> found.
Checking to see if your system supports struct fs_data...
fseeko() found.
fsetpos() found.
fstatfs() found.
statvfs() NOT found.
fstatvfs() NOT found.
fsync() found.
ftello() found.
getcwd() found.
getespwnam() NOT found.
getfsstat() found.
getgrent() found.
gethostbyaddr() found.
gethostbyname() found.
gethostent() NOT found.
gethostname() found.
uname() found.
Shall I ignore gethostname() from now on? [n] 
<netdb.h> found.
getlogin() found.
getmnt() NOT found.
getmntent() NOT found.
getnetbyaddr() found.
getnetbyname() found.
getnetent() found.
getpagesize() found.
getprotobyname() found.
getprotobynumber() found.
getprotoent() found.
getpgid() found.
getpgrp2() NOT found.
getppid() found.
getpriority() found.
getprpwnam() NOT found.
getpwent() found.
getservbyname() found.
getservbyport() found.
getservent() found.
getspnam() NOT found.
gettimeofday() found.
<grp.h> found.
hasmntopt() NOT found.
<netinet/in.h> found.
<arpa/inet.h> found.
htonl() found.
iconv() NOT found.
strchr() found.
inet_aton() found.
<inttypes.h> found.
Checking to see if you have int64_t...
isascii() found.
isnan() found.
isnanl() NOT found.
killpg() found.
lchown() found.
LDBL_DIG found.
link() found.
localeconv() found.
lockf() found.
Checking to see if you have long long...
Checking to see how big your long longs are...
lstat() found.
madvise() found.
mblen() found.
mbstowcs() found.
mbtowc() found.
memchr() found.
memcmp() found.
memcpy() found.
memmove() found.
memset() found.
mkdir() found.
mkdtemp() found.
mkfifo() found.
mkstemp() found.
mkstemps() NOT found.
mktime() found.
<sys/mman.h> found.
mmap() found.
and it returns (void *).
modfl() NOT found.
mprotect() found.
msgctl() found.
msgget() found.
msgsnd() found.
msgrcv() found.
You have the full msg*(2) library.
msync() found.
munmap() found.
nice() found.
Checking which 64-bit integer type we could use...
We could use 'long long' for 64-bit integers.
Checking to see how big your characters are (hey, you never know)...
What is the size of a character (in bytes)? [1] 
Checking to see if your C compiler knows about "volatile"...
Choosing the C types to be used for Perl's internal types...
Checking how many bits of your UVs your NVs can preserve...
Checking to see if you have off64_t...
<pthread.h> found.
pause() found.
pipe() found.
poll() found.
<pwd.h> found.
readdir() found.
seekdir() found.
telldir() found.
rewinddir() found.
readlink() found.
rename() found.
rmdir() found.
<memory.h> found.
Checking to see if your bcopy() can do overlapping copies...
Checking to see if your memcpy() can do overlapping copies...
Checking if your memcmp() can compare relative magnitude...
select() found.
semctl() found.
semget() found.
semop() found.
You have the full sem*(2) library.
You do not have union semun in <sys/sem.h>.
You can use union semun for semctl IPC_STAT.
You can also use struct semid_ds* for semctl IPC_STAT.
setegid() found.
seteuid() found.
setgrent() found.
sethostent() found.
setlinebuf() found.
setlocale() found.
setnetent() found.
setprotoent() found.
setpgid() found.
setpgrp2() NOT found.
setpriority() found.
setproctitle() found.
setpwent() found.
setregid() found.
setresgid() NOT found.
setreuid() found.
setresuid() NOT found.
setrgid() found.
*** WHOA THERE!!! ***
    The recommended value for $d_setrgid on this machine was "undef"!
    Keep the recommended value? [y] 
setruid() found.
*** WHOA THERE!!! ***
    The recommended value for $d_setruid on this machine was "undef"!
    Keep the recommended value? [y] 
setservent() found.
setsid() found.
setvbuf() found.
<sfio.h> NOT found.
libs = -lm -lcrypt
shmctl() found.
shmget() found.
shmat() found.
and it returns (void *).
shmdt() found.
You have the full shm*(2) library.
sigaction() found.
POSIX sigsetjmp found.
socks5_init() NOT found.
<sys/stat.h> found.
Checking to see if your struct stat has st_blocks field...
<sys/vfs.h> NOT found.
<sys/statfs.h> NOT found.
Checking to see if your system supports struct statfs...
Checking to see if your struct statfs has f_flags field...
Checking how std your stdio is...
Checking to see what happens if we set the stdio ptr...
Increasing ptr in your stdio leaves cnt unchanged.  Good.
Checking how to access stdio streams by file descriptor number...
You can access stdio streams by file descriptor number by the __sF array.
strcoll() found.
Checking to see if your C compiler can copy structs...
strerror() found.
strtod() found.
strtol() found.
strtold() NOT found.
strtoll() found.
strtoul() found.
strtoull() found.
strtouq() found.
strxfrm() found.
symlink() found.
syscall() found.
sysconf() found.
system() found.
tcgetpgrp() found.
tcsetpgrp() found.
<sys/times.h> found.
times() found.
clock_t found.
truncate() found.
tzname[] found.
umask() found.
ustat() NOT found.
vfork() found.
Do you still want to use vfork()? [y] 
<sys/dir.h> found.
<sys/ndir.h> NOT found.
closedir() found.
Checking whether closedir() returns a status...
wait4() found.
waitpid() found.
wcstombs() found.
wctomb() found.
Checking alignment constraints...
Doubles must be aligned on a how-many-byte boundary? [4] 
Checking to see how your cpp does stuff like catenate tokens...
Oh!  Smells like ANSI's been here.
<db.h> found.
Checking Berkeley DB version ...
Looks OK.
Checking return type needed for hash for Berkeley DB ...
Checking return type needed for prefix for Berkeley DB ...
Checking to see how well your C compiler groks the void type...
Good.  It appears to support void to the level perl5 wants.
Looking for a random number function...
Good, found drand48().
Use which function to generate random numbers? [drand48] 
Determining whether or not we are on an EBCDIC system...
Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF8.
Checking how to flush all pending stdio output...
Your fflush(NULL) works okay for output streams.
Let's see if it clobbers input pipes...
fflush(NULL) seems to behave okay with input streams.
Checking the size of gid_t...
Checking the sign of gid_t...
Checking how to print 64-bit integers...
Checking the format strings to be used for Perl's internal types...
Checking the format string to be used for gids...
getgroups() found.
setgroups() found.
What type pointer is the second argument to getgroups() and setgroups()?
[gid_t] 
Checking if your /usr/bin/make program sets $(MAKE)...
mode_t found.
size_t found.
What pager is used on your system? [/usr/bin/less] 
pid_t found.
Checking to see how big your pointers are...
Checking how to generate random libraries on your machine...
Your select() operates on 32 bits at a time.
Generating a list of signal names and numbers...
Checking the size of size_t...
Checking to see if you have socklen_t...
<socks.h> NOT found.
I'll be using ssize_t for functions returning a byte count.
Your stdio uses signed chars.
time() found.
time_t found.
Checking the size of uid_t...
Checking the sign of uid_t...
Checking the format string to be used for uids...
Which compiler compiler (yacc or bison -y) shall I use? [yacc] 
dbmclose() NOT found.
<sys/file.h> found.
We'll be including <sys/file.h>.
<fcntl.h> found.
We don't need to include <fcntl.h> if we include <sys/file.h>.
<iconv.h> found.
<machine/ieeefp.h> found.
<libutil.h> NOT found.
<locale.h> found.
<math.h> found.
<mntent.h> NOT found.
<ndbm.h> found.
dbm_open() found.
<net/errno.h> NOT found.
<netinet/tcp.h> found.
<poll.h> found.
<prot.h> NOT found.
Guessing which symbols your C compiler and preprocessor define...
tcsetattr() found.
You have POSIX termios.h... good!
<shadow.h> NOT found.
<stdarg.h> found.
<varargs.h> found.
We'll include <stdarg.h> to get va_dcl definition.
<stddef.h> found.
<sunmath.h> NOT found.
<sys/access.h> NOT found.
<sys/filio.h> found.
<sys/ioctl.h> found.
<syslog.h> found.
<sys/mode.h> NOT found.
<sys/resource.h> found.
<sys/security.h> NOT found.
<sys/statvfs.h> NOT found.
<sys/uio.h> found.
<sys/un.h> found.
<sys/utsname.h> found.
<sys/wait.h> found.
<ustat.h> NOT found.
<utime.h> found.
<values.h> NOT found.
<vfork.h> NOT found.
<gdbm.h> NOT found.
Looking for extensions...
What extensions do you wish to load dynamically?
[B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob 
IO IPC/
SysV NDBM_File Opcode POSIX SDBM_File Socket Sys/Hostname Sys/Syslog 
attrs re] 
What extensions do you wish to load statically? [none] 
Stripping down executable paths...
Creating config.sh...
./config.sh: 610: Syntax error: ")" unexpected
*** Error code 2

Stop.
make: stopped in /home/NetBSD-current/pkgsrc/lang/perl5
*** Error code 1

Stop.
make: stopped in /home/NetBSD-current/pkgsrc/lang/perl5
#



Thanks.


Yours sincerely,
Sung N. Cho,
Thursday, July 25, 2002.