*BSD News Article 50988


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!news.kei.com!news.mathworks.com!tank.news.pipex.net!pipex!news.sprintlink.net!news.magicnet.net!rd.gencon.com!usenet
From: rd@tarpit.rd.gencon.com (Bob Thrush)
Newsgroups: comp.unix.bsd.bsdi.misc,comp.lang.perl.misc
Subject: Re: Perl Version
Date: 08 Sep 1995 18:08:51 GMT
Organization: Genesis Controls, Inc.
Lines: 122
Message-ID: <RD.95Sep8140852@tarpit.rd.gencon.com>
References: <429s4f$ot6@news.cais.com> <42ev3n$55r@news.ncu.edu.tw>
	<42o2l0$ni@gort.ucsd.edu>
NNTP-Posting-Host: localhost.rd.gencon.com
To: asinger@gort.ucsd.edu (Abe Singer)
In-reply-to: asinger@gort.ucsd.edu's message of 7 Sep 1995 17:27:12 -0700
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.bsdi.misc:858 comp.lang.perl.misc:2161

>>>>> "Abe" == Abe Singer <asinger@gort.ucsd.edu> writes:
Abe> Um, does anyone actually *have* perl5.00x working on BSDi 2.0?

  Here's what I use to build perl5.001m on bsdi 2.0 and 2.0.1:

o Unpack GNU dld-3.2.6 from prep.ai.mit.edu:/pub/gnu/jacal.
o Apply the attached patches and install libdld.a in /usr/local/lib
  and dld.h in /usr/local/include.  Thanks to Dr. Magnus V. Harlander
  for the key dld.c patch.
o Unpack perl5.001m and do the following:

    make -k clobber
    ./Configure -des -O -Dcc=shlicc2 -Dcccdlflags=none -Dlddlflags=-r \
    -Doptimize='-g -O2 -m486' -Dstatic_ext=POSIX \
    -Ddynamic_ext='DB_File Fcntl NDBM_File SDBM_File Socket' \
    -Ddlext=none
    make
    make test
    make install  # Assuming all tests passed.

  For some reason, I am not able to build the POSIX extension as a
dynamic extension.

----------- dld-3.2.6 patches for bsdi -----------

diff -wbur dld-3.2.6/Makefile dld/Makefile
--- dld-3.2.6/Makefile	Sun Mar 19 20:42:30 1995
+++ dld/Makefile	Sun Aug 27 15:13:45 1995
@@ -11,9 +11,10 @@
 infodir = $(prefix)info/
 includedir = $(prefix)include/
 
-CC= gcc
-CFLAGS = -O6 -I.
-CXXFLAGS = -O6 -I.
+CC= shlicc2
+CFLAGS = -g -O2 -I.
+CXX= shlicc++
+CXXFLAGS = -g -O2 -I.
 
 all:	${ARCHIVE}
 all++:	${ARCHIVE++}
diff -wbur dld-3.2.6/defs.h dld/defs.h
--- dld-3.2.6/defs.h	Fri Feb 10 08:10:44 1995
+++ dld/defs.h	Sun Aug 27 15:14:50 1995
@@ -34,6 +34,10 @@
 #include <unistd.h>
 #define N_COMM 16
 #endif
+#ifdef __bsdi__
+#include <stdlib.h>
+#include <unistd.h>
+#endif /* __bsdi__ */
 
 /* Each input file, and each library member ("subfile") being loaded,
    has a `file_entry' structure for it.
diff -wbur dld-3.2.6/dld.c dld/dld.c
--- dld-3.2.6/dld.c	Fri Feb 10 08:10:46 1995
+++ dld/dld.c	Mon Jun 19 12:02:35 1995
@@ -994,9 +994,10 @@
     symdef_base = (struct symdef *) (symdef_data + 1);
     length_of_strings = *(int *) (symdef_base + number_of_symdefs);
 
+    /* BSD/OS pads the odd numbers with \n */
     if (length_of_strings < 0
-	|| number_of_symdefs * sizeof (struct symdef) + length_of_strings
-	+ 2 * sizeof (int) != member_length)
+	|| (number_of_symdefs * sizeof (struct symdef) + length_of_strings
+	+ 2 * sizeof (int) +1)/2 != member_length/2)
 	fatal (DLD_EBADLIBRARY);
 
     sym_name_base = sizeof (int) + (char *) (symdef_base + number_of_symdefs);
diff -wbur dld-3.2.6/find_exec.c dld/find_exec.c
--- dld-3.2.6/find_exec.c	Fri Feb 10 08:10:46 1995
+++ dld/find_exec.c	Sun Aug 27 15:16:27 1995
@@ -31,6 +31,10 @@
 #include <sys/stat.h>
 #include <unistd.h>     /* for X_OK define */
 #endif
+#ifdef __bsdi__
+#include <stdlib.h>
+#include <unistd.h>
+#endif /* __bsdi__ */
 
 #define DEFAULT_PATH ".:~/bin::/usr/local/bin:/usr/new:/usr/ucb:/usr/bin:/bin:/usr/hosts"
 
@@ -66,13 +70,11 @@
     if (ABSOLUTE_FILENAME_P(file))
 	return copy_of (file);
 
-#ifdef linux
     if ((file[0] == '.') && (file[1] == '/')) {
 	getcwd (name, MAXPATHLEN);
 	strcat (name, file+1);
 	return copy_of (name);
     }
-#endif
 
     if (((search = (char *) getenv("DLDPATH")) == 0) &&
 	((search = (char *) getenv("PATH")) == 0))
diff -wbur dld-3.2.6/test/Makefile dld/test/Makefile
--- dld-3.2.6/test/Makefile	Sun Mar 19 20:43:04 1995
+++ dld/test/Makefile	Sun Aug 27 15:14:11 1995
@@ -5,11 +5,11 @@
 
 LIB = ../libdld.a
 INCLUDE = ../dld.h
-CC= gcc
-CXX= g++
+CC= shlicc2
+CXX= shlicc++
 #	add -static to CFLAGS for Sparc Sun4.
-CFLAGS = -O6 -I..
-CXXFLAGS = -O6 -I..
+CFLAGS = -g -O2 -I..
+CXXFLAGS = -g -O2 -I..
 SPECIAL = -DLIBGCC=\"`gcc --print-lib`\"
 
 check:	all

-- 
Bob Thrush rd@rd.gencon.com    407 425-4845/ FAX 841-8004