From: Jarkko Hietaniemi Date: Mon, 10 May 1999 18:21:43 +0000 (+0000) Subject: Circumnavigate Digital UNIX 4.0D miniperl core dump X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=e3159d07eae19a2ad4bc7e5f2e54e307a931528b;p=p5sagit%2Fp5-mst-13.2.git Circumnavigate Digital UNIX 4.0D miniperl core dump (due to QAR 56761) (the bug has been fixed in 4.0E or better) p4raw-id: //depot/cfgperl@3384 --- diff --git a/INSTALL b/INSTALL index 6ba5b37..af34147 100644 --- a/INSTALL +++ b/INSTALL @@ -1293,14 +1293,6 @@ ones (which ones these are depends on your system and applications) with "ipcrm -s SEMAPHORE_ID_HERE" or configure more semaphores to your system. -=item miniperl coredumps in Digital UNIX 4.0D - -In Digital UNIX 4.0D /bin/ld has a bug that may cause the resulting -executable (here, miniperl) dump core if shared libraries are being -used (here, libperl.so). A workaround is to change the -O4 in the -ld flags to be -O0. The solution is either to ask for a patch to -"QAR 56761", or to upgrade to 4.0E or better. - =item Miscellaneous Some additional things that have been reported for either perl4 or perl5: diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh index 4ab535d..fd7f479 100644 --- a/hints/dec_osf.sh +++ b/hints/dec_osf.sh @@ -149,10 +149,19 @@ case "`uname -r`" in *) if $test "X$optimize" = "X$undef"; then lddlflags="$lddlflags -msym" else - lddlflags="$lddlflags $optimize -msym" + case "`sizer -v`" in + *4.0D*) + # QAR 56761: -O4 + .so may produce broken code, + # fixed in 4.0E or better. + ;; + *) + lddlflags="$lddlflags $optimize" + ;; + esac + # -msym: If using a sufficiently recent /sbin/loader, + # keep the module symbols with the modules. + lddlflags="$lddlflags -msym" fi - # -msym: If using a sufficiently recent /sbin/loader, - # keep the module symbols with the modules. ;; esac # Yes, the above loses if gcc does not use the system linker.