Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Obtaining perl-5.6.2 for modern Ubuntu

by syphilis (Archbishop)
on Mar 20, 2020 at 05:17 UTC ( [id://11114503]=perlquestion: print w/replies, xml ) Need Help??

syphilis has asked for the wisdom of the Perl Monks concerning the following question:

Hi,

Building recent perls on Ubuntu is quite trivial, but I want an x86_64 build of perl-5.6.2, as I need to better understand an aspect of it's fuckedness.

So, I grabbed the source and ran:
$ sh Configure -des -Dprefix=/home/sisyphus/perl-5.6.2-d
which produced:

First let's make sure your kit is complete. Checking... Would you like to see the instructions? [n] 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. I see a config.sh file. Shall I use it to set the defaults? [y] Fetching default answers from your old config.sh file... Operating system name? [linux] Operating system version? [4.15.0-91-generic] 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... gccvers.c: In function ‘main’: gccvers.c:10:2: warning: implicit declaration of function ‘exit’ [-Wim +plicit-function-declaration] exit(0); ^~~~ gccvers.c:10:2: warning: incompatible implicit declaration of built-in + function ‘exit’ gccvers.c:10:2: note: include ‘<stdlib.h>’ or provide a declaration of + ‘exit’ Now, how can we feed standard input to your C preprocessor... Directories to use for library searches? [/usr/local/lib /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? [none] What optimizer/debugger flag should be used? [-O2] Any additional cc flags? [-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE +_OFFSET_BITS=64] Let me guess what the preprocessor flags are... Any additional ld flags (NOT including libraries)? [ -L/usr/local/lib] + Checking your choice of C compiler and flags for coherency... Checking to see how big your file offsets are... Checking the size of fpos_t... try.c: In function ‘main’: try.c:5:5: warning: implicit declaration of function ‘exit’ [-Wimplici +t-function-declaration] exit(0); ^~~~ try.c:5:5: warning: incompatible implicit declaration of built-in func +tion ‘exit’ try.c:5:5: note: include ‘<stdlib.h>’ or provide a declaration of ‘exi +t’ Try to understand large files, if available? [y] Try to use maximal 64-bit support, if available? [y] Checking for GNU C Library... gnulibc.c: In function ‘main’: gnulibc.c:5:5: warning: implicit declaration of function ‘exit’ [-Wimp +licit-function-declaration] exit(0); ^~~~ gnulibc.c:5:5: warning: incompatible implicit declaration of built-in +function ‘exit’ gnulibc.c:5:5: note: include ‘<stdlib.h>’ or provide a declaration of +‘exit’ Shall I use /usr/bin/nm to extract C symbols from the libraries? [n] sqrtl() NOT found. Try to use long doubles if available? [n] Checking to see if you have long double... What is your architecture name [x86_64-linux] This architecture is naturally 64-bit, not changing architecture name. Installation prefix to use? (~name ok) [/home/sisyphus/perl-5.6.2-d] Directory /home/sisyphus/perl-5.6.2-d doesn't exist. Use that name an +yway? [y] AFS does not seem to be running... What installation prefix should I use for installing files? (~name ok) [/home/sisyphus/perl-5.6.2-d] Directory /home/sisyphus/perl-5.6.2-d doesn't exist. Use that name an +yway? [y] Getting the current patchlevel... Pathname where the private library files will reside? (~name ok) [/home/sisyphus/perl-5.6.2-d/lib/5.6.2] Where do you want to put the public architecture-dependent libraries? +(~name ok) [/home/sisyphus/perl-5.6.2-d/lib/5.6.2/x86_64-linux] Binary compatibility with Perl 5.005? [y] Other username to test security of setuid scripts with? [none] Well, the previous value is *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 +) [/home/sisyphus/perl-5.6.2-d] Pathname for the site-specific library files? (~name ok) [/home/sisyphus/perl-5.6.2-d/lib/site_perl/5.6.2] Pathname for the site-specific architecture-dependent library files? ( +~name ok) [/home/sisyphus/perl-5.6.2-d/lib/site_perl/5.6.2/x86_64-linux] Do you want to configure vendor-specific add-on directories? [n] Colon-separated list of additional directories for perl to search? [no +ne] Checking out function prototypes... Pathname where the public executables will reside? (~name ok) [/home/sisyphus/perl-5.6.2-d/bin] Directory /home/sisyphus/perl-5.6.2-d/bin doesn't exist. Use that nam +e anyway? [y] 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() NOT found. Do you wish to use dynamic loading? [n] System manual is in /usr/share/man/man1. Where do the main Perl5 manual pages (source) go? (~name ok) [/home/sisyphus/perl-5.6.2-d/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) [/home/sisyphus/perl-5.6.2-d/man/man3] What suffix should be used for the perl5 library man pages? [3] Figuring out host name... Your host name appears to be "sisyphus5-desktop". Right? [y] What is your domain name? [.home] What is your e-mail address? [sisyphus@sisyphus5-desktop.home] Perl administrator e-mail address [sisyphus@sisyphus5-desktop.home] Do you want to install only the version-specific parts of perl? [n] Where do you keep publicly executable scripts? (~name ok) [/home/sisyphus/perl-5.6.2-d/bin] Directory /home/sisyphus/perl-5.6.2-d/bin doesn't exist. Use that nam +e anyway? [y] Pathname where the add-on public executables should be installed? (~na +me ok) [/home/sisyphus/perl-5.6.2-d/bin] Directory /home/sisyphus/perl-5.6.2-d/bin doesn't exist. Use that nam +e anyway? [y] Use the experimental PerlIO abstraction layer? [n] qgcvt() found. Checking how to print long doubles... gcvt() found. I'll use gcvt to convert floats into a string. fwalk() NOT 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() instead of setpgrp(pid,pgrp). bzero() found. You have void (*signal())(). Checking whether your C compiler can cast large floats to int32. try.c: In function ‘blech’: try.c:4:24: warning: implicit declaration of function ‘exit’ [-Wimplic +it-function-declaration] void blech(s) int s; { exit(3); } ^~~~ try.c:4:24: warning: incompatible implicit declaration of built-in fun +ction ‘exit’ try.c:4:24: note: include ‘<stdlib.h>’ or provide a declaration of ‘ex +it’ try.c: In function ‘main’: try.c:28:2: warning: incompatible implicit declaration of built-in fun +ction ‘exit’ exit(result); ^~~~ try.c:28:2: note: include ‘<stdlib.h>’ or provide a declaration of ‘ex +it’ Checking whether your C compiler can cast negative float to unsigned. try.c: In function ‘blech’: try.c:4:24: warning: implicit declaration of function ‘exit’ [-Wimplic +it-function-declaration] void blech(s) int s; { exit(7); } ^~~~ try.c:4:24: warning: incompatible implicit declaration of built-in fun +ction ‘exit’ try.c:4:24: note: include ‘<stdlib.h>’ or provide a declaration of ‘ex +it’ try.c: In function ‘blech_in_list’: try.c:5:32: warning: incompatible implicit declaration of built-in fun +ction ‘exit’ void blech_in_list(s) int s; { exit(4); } ^~~~ try.c:5:32: note: include ‘<stdlib.h>’ or provide a declaration of ‘ex +it’ try.c: In function ‘main’: try.c:56:3: warning: incompatible implicit declaration of built-in fun +ction ‘exit’ exit(result); ^~~~ try.c:56:3: note: include ‘<stdlib.h>’ or provide a declaration of ‘ex +it’ try.c:69:2: warning: incompatible implicit declaration of built-in fun +ction ‘exit’ exit(result); ^~~~ try.c:69:2: note: include ‘<stdlib.h>’ or provide a declaration of ‘ex +it’ vprintf() found. Your vsprintf() returns (char*). chown() found. chroot() found. chsize() NOT found. Checking to see if your C compiler knows about "const"... crypt() NOT found. cuserid() found. <limits.h> found. <float.h> found. DBL_DIG found. difftime() found. <dirent.h> found. Your directory entries are struct dirent. Your directory entry does not know about the d_namlen field. dlerror() NOT found. <dlfcn.h> found. dup2() found. eaccess() 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. Well, your system has some sort of fd_set available... and you have the normal fd_set macros. fgetpos() found. flock() found. fork() found. pathconf() found. fpathconf() found. Checking to see if you have fpos64_t... frexpl() 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() found. fstatvfs() found. fsync() found. ftello() found. getcwd() found. getespwnam() NOT found. getfsstat() NOT found. getgrent() found. gethostbyaddr() found. gethostbyname() found. gethostent() found. gethostname() found. uname() found. Shall I ignore gethostname() from now on? [n] <netdb.h> found. getlogin() found. getmnt() NOT found. getmntent() 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() found. gettimeofday() found. <grp.h> found. hasmntopt() found. <netinet/in.h> found. <arpa/inet.h> found. htonl() found. strchr() found. inet_aton() found. <inttypes.h> found. Checking to see if you have int64_t... isascii() found. isnan() found. isnanl() found. killpg() found. lchown() found. LDBL_DIG found. link() found. localeconv() found. lockf() found. Checking to see if you have long long... 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() found. mktime() found. <sys/mman.h> found. mmap() found. and it returns (void *). modfl() 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 will use 'long' for 64-bit integers. 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() NOT found. setpwent() found. setregid() found. setresgid() found. setreuid() found. setresuid() found. setrgid() NOT found. setruid() NOT found. setservent() found. setsid() found. setvbuf() found. <sfio.h> NOT found. libs = shmctl() found. shmget() found. shmat() found. and it returns (void *). shmdt() found. You have the full shm*(2) library. sigaction() found. try.c: In function ‘main’: try.c:10:5: warning: implicit declaration of function ‘exit’ [-Wimplic +it-function-declaration] exit(act.sa_flags == 0 && oact.sa_handler == 0); ^~~~ try.c:10:5: warning: incompatible implicit declaration of built-in fun +ction ‘exit’ try.c:10:5: note: include ‘<stdlib.h>’ or provide a declaration of ‘ex +it’ 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> found. <sys/statfs.h> 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 how to access stdio streams by file descriptor number... I can't figure out how to access stdio streams by file descriptor numb +er. strcoll() found. Checking to see if your C compiler can copy structs... strtod() found. strtol() found. strtold() 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. truncate() found. tzname[] found. umask() found. ustat() found. vfork() found. Do you still want to use vfork()? [n] <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. Doubles must be aligned on a how-many-byte boundary? [8] Checking to see how your cpp does stuff like catenate tokens... Oh! Smells like ANSI's been here. <db.h> NOT found. Checking to see how well your C compiler groks the void type... Looking for a random number function... 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... Checking the size of gid_t... try.c: In function ‘main’: try.c:5:5: warning: implicit declaration of function ‘exit’ [-Wimplici +t-function-declaration] exit(0); ^~~~ try.c:5:5: warning: incompatible implicit declaration of built-in func +tion ‘exit’ try.c:5:5: note: include ‘<stdlib.h>’ or provide a declaration of ‘exi +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)... What pager is used on your system? [/usr/bin/less] Checking how to generate random libraries on your machine... Generating a list of signal names and numbers... signal.c: In function ‘main’: signal.c:208:1: warning: implicit declaration of function ‘exit’ [-Wim +plicit-function-declaration] exit(0); ^~~~ signal.c:208:1: warning: incompatible implicit declaration of built-in + function ‘exit’ signal.c:208:1: note: include ‘<stdlib.h>’ or provide a declaration of + ‘exit’ Checking the size of size_t... try.c: In function ‘main’: try.c:5:5: warning: implicit declaration of function ‘exit’ [-Wimplici +t-function-declaration] exit(0); ^~~~ try.c:5:5: warning: incompatible implicit declaration of built-in func +tion ‘exit’ try.c:5:5: note: include ‘<stdlib.h>’ or provide a declaration of ‘exi +t’ Checking to see if you have socklen_t... <socks.h> NOT found. ssize.c: In function ‘main’: ssize.c:13:2: warning: implicit declaration of function ‘exit’ [-Wimpl +icit-function-declaration] exit(0); ^~~~ ssize.c:13:2: warning: incompatible implicit declaration of built-in f +unction ‘exit’ ssize.c:13:2: note: include ‘<stdlib.h>’ or provide a declaration of ‘ +exit’ I'll be using ssize_t for functions returning a byte count. Your stdio uses signed chars. Checking the size of uid_t... try.c: In function ‘main’: try.c:5:5: warning: implicit declaration of function ‘exit’ [-Wimplici +t-function-declaration] exit(0); ^~~~ try.c:5:5: warning: incompatible implicit declaration of built-in func +tion ‘exit’ try.c:5:5: note: include ‘<stdlib.h>’ or provide a declaration of ‘exi +t’ Checking the sign of uid_t... Checking the format string to be used for uids... Which compiler compiler (yacc) 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>. <ieeefp.h> NOT found. <libutil.h> NOT found. <locale.h> found. <math.h> found. <mntent.h> found. <ndbm.h> NOT 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... try.c: In function ‘main’: try.c:915:19: warning: format ‘%ld’ expects argument of type ‘long int +’, but argument 2 has type ‘int’ [-Wformat=] printf("__amd64=%ld\n", __amd64); ~~^ %d try.c:922:21: warning: format ‘%ld’ expects argument of type ‘long int +’, but argument 2 has type ‘int’ [-Wformat=] printf("__amd64__=%ld\n", __amd64__); ~~^ %d try.c:3890:19: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("__ELF__=%ld\n", __ELF__); ~~^ %d try.c:4100:29: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("_FILE_OFFSET_BITS=%ld\n", _FILE_OFFSET_BITS); ~~^ %d try.c:4478:20: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("__GNUC__=%ld\n", __GNUC__); ~~^ %d try.c:4534:26: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("__GNUC_MINOR__=%ld\n", __GNUC_MINOR__); ~~^ %d try.c:7572:29: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("_LARGEFILE_SOURCE=%ld\n", _LARGEFILE_SOURCE); ~~^ %d try.c:7705:17: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("linux=%ld\n", linux); ~~^ %d try.c:7719:19: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("__linux=%ld\n", __linux); ~~^ %d try.c:7726:21: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("__linux__=%ld\n", __linux__); ~~^ %d try.c:8160:17: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("_LP64=%ld\n", _LP64); ~~^ %d try.c:8174:20: warning: format ‘%ld’ expects argument of type ‘long in +t’, but argument 2 has type ‘int’ [-Wformat=] printf("__LP64__=%ld\n", __LP64__); ~~^ %d try.c:13690:19: warning: format ‘%ld’ expects argument of type ‘long i +nt’, but argument 2 has type ‘int’ [-Wformat=] printf("__pic__=%ld\n", __pic__); ~~^ %d try.c:13718:19: warning: format ‘%ld’ expects argument of type ‘long i +nt’, but argument 2 has type ‘int’ [-Wformat=] printf("__PIC__=%ld\n", __PIC__); ~~^ %d try.c:14152:25: warning: format ‘%ld’ expects argument of type ‘long i +nt’, but argument 2 has type ‘int’ [-Wformat=] printf("_POSIX_SOURCE=%ld\n", _POSIX_SOURCE); ~~^ %d try.c:16154:20: warning: format ‘%ld’ expects argument of type ‘long i +nt’, but argument 2 has type ‘int’ [-Wformat=] printf("__STDC__=%ld\n", __STDC__); ~~^ %d try.c:19269:16: warning: format ‘%ld’ expects argument of type ‘long i +nt’, but argument 2 has type ‘int’ [-Wformat=] printf("unix=%ld\n", unix); ~~^ %d try.c:19283:18: warning: format ‘%ld’ expects argument of type ‘long i +nt’, but argument 2 has type ‘int’ [-Wformat=] printf("__unix=%ld\n", __unix); ~~^ %d try.c:19290:20: warning: format ‘%ld’ expects argument of type ‘long i +nt’, but argument 2 has type ‘int’ [-Wformat=] printf("__unix__=%ld\n", __unix__); ~~^ %d /usr/bin/comm: file 1 is not in sorted order /usr/bin/comm: file 1 is not in sorted order /usr/bin/comm: file 1 is not in sorted order tcsetattr() found. You have POSIX termios.h... good! <shadow.h> 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> NOT 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> found. <sys/uio.h> found. <sys/un.h> found. <sys/utsname.h> found. <sys/wait.h> found. <ustat.h> found. <utime.h> found. <values.h> found. <gdbm.h> NOT found. Looking for extensions... What extensions do you wish to include? [B ByteLoader Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob IO IP +C/SysV Opcode POSIX SDBM_File Socket Sys/Hostname Sys/Syslog attrs re +] Stripping down executable paths... Creating config.sh... Doing variable substitutions on .SH files... Extracting cflags (with variable substitutions) Extracting config.h (with variable substitutions) Extracting makeaperl (with variable substitutions) Extracting makedepend (with variable substitutions) Extracting makedir (with variable substitutions) Extracting Makefile (with variable substitutions) Extracting myconfig (with variable substitutions) Extracting pod/Makefile (with variable substitutions) Extracting Policy.sh (with variable substitutions) Extracting writemain (with variable substitutions) Extracting x2p/cflags (with variable substitutions) Extracting x2p/Makefile (with variable substitutions) Run make depend now? [y] sh ./makedepend MAKE=make make[1]: Entering directory '/home/sisyphus/comp/perl-5.6.2' sh writemain lib/auto/DynaLoader/DynaLoader.a lib/auto/B/B.a lib/auto/ +ByteLoader/ByteLoader.a lib/auto/Data/Dumper/Dumper.a lib/auto/Devel/ +DProf/DProf.a lib/auto/Devel/Peek/Peek.a lib/auto/Fcntl/Fcntl.a lib/a +uto/File/Glob/Glob.a lib/auto/IO/IO.a lib/auto/IPC/SysV/SysV.a lib/au +to/Opcode/Opcode.a lib/auto/POSIX/POSIX.a lib/auto/SDBM_File/SDBM_Fil +e.a lib/auto/Socket/Socket.a lib/auto/Sys/Hostname/Hostname.a lib/aut +o/Sys/Syslog/Syslog.a lib/auto/attrs/attrs.a lib/auto/re/re.a > write +main.tmp sh mv-if-diff writemain.tmp perlmain.c File perlmain.c not changed. echo av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c perl.c perly.c +pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c gv.c sv.c +taint.c toke.c util.c deb.c run.c universal.c xsutils.c globals.c per +lio.c perlapi.c miniperlmain.c perlmain.c | tr ' ' '\n' >.clist make[1]: Leaving directory '/home/sisyphus/comp/perl-5.6.2' ./makedepend: 1: ./makedepend: Syntax error: Unterminated quoted strin +g Makefile:509: recipe for target 'depend' failed make: *** [depend] Error 2 If you compile perl5 on a different machine or from a different object directory, copy the Policy.sh file from this object directory to the new one before you run Configure -- this will help you with most of the policy defaults.

The error at the end looks ominous, and make fails early on:
$ make rm -f opmini.c cp op.c opmini.c `sh cflags libperl.a opmini.o` -DPERL_EXTERNAL_GLOB opmini.c CCCMD = cc -DPERL_CORE -c -fno-strict-aliasing -I/usr/local +/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 rm -f opmini.c cc -L/usr/local/lib -o miniperl \ miniperlmain.o opmini.o libperl.a libperl.a(pp.o): In function `Perl_pp_pow': pp.c:(.text+0x28a8): undefined reference to `pow' libperl.a(pp.o): In function `Perl_pp_modulo': pp.c:(.text+0x2f3f): undefined reference to `fmod' libperl.a(pp.o): In function `Perl_pp_atan2': pp.c:(.text+0x696d): undefined reference to `atan2' libperl.a(pp.o): In function `Perl_pp_sin': pp.c:(.text+0x6a65): undefined reference to `sin' libperl.a(pp.o): In function `Perl_pp_cos': pp.c:(.text+0x6bb5): undefined reference to `cos' libperl.a(pp.o): In function `Perl_pp_exp': pp.c:(.text+0x6ee5): undefined reference to `exp' libperl.a(pp.o): In function `Perl_pp_log': pp.c:(.text+0x7037): undefined reference to `log' libperl.a(pp.o): In function `Perl_pp_sqrt': pp.c:(.text+0x7311): undefined reference to `sqrt' collect2: error: ld returned 1 exit status makefile:211: recipe for target 'miniperl' failed make: *** [miniperl] Error 1
Has anyone here been able to build 5.6.2 recently on x86_64-Linux ?
Anyone have any insight on how to deal with the Syntax error: Unterminated quoted string at the end of the Configure process ?
Are there other obvious problems with which I need to contend ?

I'm trying to get a better understanding of this failure with Travis CI for perl-5.6.2.
Is there some way I can get a look at its perl -V output ? I'm thinking that it might be helpful to see what their config_args were.

Cheers,
Rob

Replies are listed 'Best First'.
Re: Obtaining perl-5.6.2 for modern Ubuntu
by tobyink (Canon) on Mar 20, 2020 at 10:00 UTC

    I used perlbrew and it installed pretty easily.

    $ perl -v This is perl, v5.6.2 built for x86_64-linux (with 1 registered patch, see perl -V for more detail) Copyright 1987-2003, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using `man perl' or `perldoc perl'. If you have access to + the Internet, point your browser at http://www.perl.com/, the Perl Home Pa +ge. $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 19.10 Release: 19.10 Codename: eoan

    I've had this perlbrew installation for a while though, so I guess 5.6.2 might have been built on Ubuntu 18.x.

    I don't have many problems getting 5.6.1 and 5.6.2 to build on Travis-CI with perlbrew either, though getting a recent version of Test::More to install properly on 5.6.1 can be a challenge.

      I used perlbrew and it installed pretty easily

      Ok ... so how do I install "perlbrew" on Ubuntu, and then coerce it into building perl-5.6.2 for me ? (Baby steps please.)

      I do have the 5.6.2 source tarball installed locally, and if perlbrew can build 5.6.2 on Ubuntu-18.x then I figure there's a good chance it can do the same on my Ubuntu-20.04.
      I just tried building 5.6.2 on Debian wheezy (which must be years old by now) and struck the same issue. And I tried 5.6.1 as well ... but it's no different.

      Don't we all just love people who want their stuff to build on ancient garbage that doesn't even build out of the box any more ?
      For those of you struggling to come up with the correct answer to that question, it's a definite "yes!!".

      (As in "yes ... we don't" ;-)
      Cheers,
      Rob

        from App::perlbrew:

        perlbrew install-patchperl; perlbrew install perl-5.6.2

        works for me (EDIT: Failed 3 test scripts out of 359, 99.16% okay.)

Re: Obtaining perl-5.6.2 for modern Ubuntu
by haukex (Archbishop) on Mar 20, 2020 at 06:32 UTC

    Just a quick thought for now: have you tried Devel::PatchPerl? If that doesn't work, you could also look at the bisect* scripts in the Porting directory of a modern Perl to see what patches it applies to get the old Perls to compile.

Re: Obtaining perl-5.6.2 for modern Ubuntu
by contra-sh (Acolyte) on Mar 22, 2020 at 17:30 UTC
    Hello, I managed to have perl 5.6 on Ubuntu 18.04.1. I'm doing 2 things :
    • Use patchperl (just mandatory when you want to build old perl on recent distributions)
    • Add the -lm to the cc -o miniperl ... (in the middle of the make step) - we add it through the configure script (-Alibs='-lm')
    wget https://www.cpan.org/src/5.0/perl-5.6.2.tar.gz tar xvzf perl-5.6.2.tar.gz sudo cpanm Devel::PatchPerl patchperl perl-5.6.2 cd perl-5.6.2 ./Configure -des -Dprefix=/opt/perl5.6 -Aldflags='-lm' make sudo make install
    Hope it will help you (if you don't want to use perlbrew).


    Rgds,

    Thibault
      I managed to have perl 5.6 on Ubuntu 18.04.1

      Thanks for this - just the sort of approach I needed to see !
      Nothing wrong with perlbrew's capability to build perl-5.6.2, but this approach makes the procedure clearer, and also saves me having to find out how to influence the Configure flags with perlbrew.
      Following those instructions, I built and installed a -Duselongdouble build of perl-5.6.2. (It failed only 2 tests of the test suite.)

      BTW, you missed out the tar zxvf perl-5.6.2.tar.gz step, which was enough to befuddle me for longer than I care to admit ;-)
      (I recommend that you correct that.)

      Cheers,
      Rob
Re: Obtaining perl-5.6.2 for modern Ubuntu
by salva (Canon) on Mar 20, 2020 at 10:05 UTC
    If everything else fails, you can always compile perl-5.6.2 statically in a virtual machine or container with an old Ubuntu version and then copy it to whatever Linux system you want to run it in.

    Linux kernel is quite good at backward compatibility, so it would probably work.

    On the other hand, I am not sure a statically compiled perl would be able to dynamically load modules or maybe you would need to fiddle with the linker flags to allow that.

Re: Obtaining perl-5.6.2 for modern Ubuntu
by bliako (Monsignor) on Mar 20, 2020 at 09:17 UTC

    Configure works fine in my fedora latest linux. But make complained

    make: *** No rule to make target '<command-line>', needed by 'miniperl +main.o'. Stop.
    which led me to https://www.nntp.perl.org/group/perl.perl5.porters/2008/02/msg133863.html . So it is possible because of gcc or other programs' output format to change over the years to get these kind of messages.

    I guess you need to follow sh ./makedepend MAKE=make and find out where that unterminated string is.

    Additionally, I remember some years ago a post here mentioning that make failed because of unquoted strings (some module not perl). I remember I found out that compiler defines -DXXX needed to be doubly quoted with escaped quotes. I tried to search but nothing comes up neither here nor with other search services.

    my .clist in root folder contains:

    BTW, I looked more carefully the build log and found this:

    ERROR: The installation "5.6.2" is unknown. $ perl --version This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-li +nux-gnu-thread-multi

    bw, bliako

    ps. Oh I get it, you tried to install 5.6.2 just because of the above. Sorry for the noise

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://11114503]
Approved by marto
Front-paged by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2024-04-19 04:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found