*BSD News Article 66762


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.cs.su.oz.au!inferno.mpx.com.au!news.unimelb.EDU.AU!munnari.OZ.AU!news.ecn.uoknor.edu!solace!nntp.uio.no!news.cais.net!news.ac.net!imci4!newsfeed.internetmci.com!news.kei.com!usenet
From: ckd@loiosh.kei.com (Christopher Davis)
Newsgroups: comp.unix.bsd.bsdi.misc
Subject: Re: Perl5
Date: 22 Apr 1996 15:00:45 GMT
Organization: Yoyodyne Propulsion Systems
Lines: 121
Sender: ckd@loiosh.kei.com
Message-ID: <w4viisnw39.fsf@loiosh.kei.com>
References: <4lejd6$gl8@oznet11.ozemail.com.au>
	<1996Apr22.020005.1@spcvxb.spc.edu>
NNTP-Posting-Host: loiosh.kei.com
In-reply-to: terry@spcvxb.spc.edu's message of Mon, 22 Apr 1996 06:00:05 GMT
X-Attribution: ckd

DB> == dbernard@shell02.ozemail.com.au (David Bernard)
TK> == Terry Kennedy, Operations Mgr <terry@spcvxb.spc.edu>

 DB> Has anyone got perl5 to build on BSD/OS 2.1 ?

 DB> Got latest from ftp.uu.net but build bombs in DB_File.c?

 TK> Anyway, perl5 ships with BSD/OS 2.1 ("perl version 5.001 unofficial
 TK> patchlevel 1m" according to "perl5 -v"). I believe BSDI ships the
 TK> sources to the /usr/contrib tree on binary-only kits (I'm not sure as
 TK> I have a source kit) in case you want to make changes, apply patches,
 TK> or just see how they got it to build.

Apparently the changes that BSDI made to 5.001m in order to get it to
build on 2.1 didn't make it back to the perl porters and therefore didn't
wind up in 5.002.  I used the hints file from 5.001m-BSDI with the 5.002
distribution, and it built fine.

Diff follows.

--- perl5.002/hints/bsdos.sh.orig	Mon Jan 22 20:42:32 1996
+++ perl5.002/hints/bsdos.sh	Tue Mar 19 10:49:12 1996
@@ -1,53 +1,82 @@
-# hints/bsdi_bsdos.sh
+# hints/bsdos.sh
 #
 # hints file for BSD/OS 2.x (adapted from bsd386.sh)
 # Original by Neil Bowers <neilb@khoros.unm.edu>
 #     Tue Oct  4 12:01:34 EDT 1994
 # Updated by Tony Sanders <sanders@bsdi.com>
-#     Mon Mar 13 12:17:24 CST 1995
+#     Mon Nov 27 17:25:51 CST 1995
 #
 # You can override the compiler and loader on the Configure command line:
-#     ./Configure -Dcc=gcc -Dld=ld
+#     ./Configure -Dcc=shlicc2 -Dld=shlicc2
 
 # filename extension for shared library objects
 so='o'
 
-d_voidsig='define'
+sig_name='ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 '
 signal_t='void'
-
-# If Configure's signal detection fails, uncomment this line.
-# sig_name='ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 '
-
+d_voidsig='define'
 d_dosuid='define'
 
-# we don't want to use -lnm, since exp() is busted in there (in 1.1 anyway)
+# we don't want to use -lnm, since exp() is busted (in 1.1 anyway)
 set `echo X "$libswanted "| sed -e 's/ nm / /'`
 shift
 libswanted="$*"
 
-# Avoid telldir prototype conflict in pp_sys.c  (BSD/386 uses const DIR *)
+# BSD/OS X libraries are in their own tree
+glibpth="$glibpth /usr/X11/lib"
+ldflags="$ldflags -L/usr/X11/lib"
+
+# Avoid telldir prototype conflict in pp_sys.c
 pp_sys_cflags='ccflags="$ccflags -DHAS_TELLDIR_PROTOTYPE"'
 
+case "$bsdos_distribution" in
+defined)
+	d_portable='no'
+	prefix='/usr/contrib'
+	man3dir='/usr/contrib/man/man3'
+	;;
+esac
+
 case "$osvers" in
 1.0*)
 	# Avoid problems with HUGE_VAL in POSIX in 1.0's cc.
 	POSIX_cflags='ccflags="$ccflags -UHUGE_VAL"' 
 	;;
 1.1*)
-	# Use gcc2 (2.5.8) if available in 1.1.
+	# Use gcc2
 	case "$cc" in
-	'')	cc=gcc2 ;;
+	'')	cc='gcc2' ;;
 	esac
 	;;
 2.*)
-	# Use 2.X's gcc2
+	case "$osvers" in
+	2.1*)	# dlopen() is supported in 2.1
+		usedl='true'
+		d_dlopen='define'
+		cccdlflags='none'
+		# pre-link against the shared C library
+		lddlflags='-r -lc_s.2.1.0'
+
+		# BSD/OS 2.1 doesn't (yet) support `true' dynamic linking
+		# so we `preload' the shared libraries by linking
+		# against them; even though we don't pull in any symbols.
+		libswanted="Xpm Xaw Xmu Xt SM ICE Xext X11 $libswanted"
+		libswanted="rpc curses termcap $libswanted"
+
+		# Use the system malloc or else you'll have dualing mallocs!
+		d_mymalloc='undef'
+		usemymalloc='n'
+		;;
+	esac
+
+	# default to GCC 2.X w/shared libraries
 	case "$cc" in
-	'')	cc=gcc2 ;;
+	'')	cc='shlicc2' ;;
 	esac
 
-	# Link with shared libraries in 2.X
+	# default ld to shared library linker
 	case "$ld" in
-	'')	ld='shlicc' ;;
+	'')	ld='shlicc2' ;;
 	esac
 
 	# setre?[ug]id() have been replaced by the _POSIX_SAVED_IDS stuff