The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
--- Configure.orig	Fri Aug  1 23:12:26 1997
+++ Configure	Fri Aug  1 23:20:24 1997
@@ -1489,7 +1489,7 @@
 	*)
 		echo "I don't know where '$file' is, and my life depends on it." >&4
 		echo "Go find a public domain implementation or fix your PATH setting!" >&4
-		exit 1
+		#exit 1
 		;;
 	esac
 done
@@ -1498,7 +1498,9 @@
 say=offhand
 for file in $trylist; do
 	xxx=`./loc $file $file $pth`
-	eval $file=$xxx
+	if test "X$file" != "X$xxx" ; then
+		eval $file=$xxx
+	fi
 	eval _$file=$xxx
 	case "$xxx" in
 	/*)
@@ -3198,7 +3200,7 @@
 	exit(0);
 }
 EOM
-if $cc -o gccvers gccvers.c >/dev/null 2>&1; then
+if $cc -o gccvers gccvers.c $ldflags  >/dev/null 2>&1; then
 	gccversion=`./gccvers`
 	case "$gccversion" in
 	'') echo "You are not using GNU cc." ;;
@@ -3401,6 +3403,12 @@
 		*"-l$thislib "*);;
 		*) dflt="$dflt -l$thislib";;
 		esac
+	elif xxx=`./loc $thislib.lib X $libpth`; $test -f "$xxx"; then
+		echo "Found -l$thislib."
+		case " $dflt " in
+		*"-l$thislib "*);;
+		*) dflt="$dflt -l$thislib";;
+		esac
 	else
 		echo "No -l$thislib."
 	fi
@@ -3950,7 +3958,7 @@
 	esac
 	;;
 esac
-libnames='';
+#libnames='';
 case "$libs" in
 '') ;;
 *)  for thislib in $libs; do
@@ -3972,6 +3980,8 @@
 			:
 		elif try=`./loc $thislib X $libpth`; $test -f "$try"; then
 			:
+		elif try=`./loc $thislib$lib_ext X $libpth`; $test -f "$try"; then
+			:
 		elif try=`./loc Slib$thislib$lib_ext X $xlibpth`; $test -f "$try"; then
 			:
 		else
@@ -4156,6 +4166,10 @@
 	eval $xscan;\
 	$contains '^fprintf$' libc.list >/dev/null 2>&1; then
 		eval $xrun
+elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\
+	eval $xscan;\
+	$contains '^fprintf$' libc.list >/dev/null 2>&1; then
+		eval $xrun
 else
 	nm -p $* 2>/dev/null >libc.tmp
 	$grep fprintf libc.tmp > libc.ptf
@@ -4166,23 +4180,33 @@
 		eval $xrun
 	else
 		echo " "
-		echo "nm didn't seem to work right. Trying ar instead..." >&4
+		echo "nm didn't seem to work right. Trying $ar instead..." >&4
 		com=''
-		if ar t $libc > libc.tmp; then
-			for thisname in $libnames; do
-				ar t $thisname >>libc.tmp
+		if test "X$osname" = "Xos2"; then ar_opt=tv ; else ar_opt=t ;fi
+		if $ar $ar_opt $libc > libc.tmp; then
+			echo \; > libc.tmp
+			for thisname in $libnames $libc; do
+  				$ar $ar_opt $thisname >>libc.tmp
+				if test "X$osname" = "Xos2"; then
+				    # Revision 50 of EMX has bug in $ar:
+				    emximp -o tmp.imp $thisname \
+					2>/dev/null && \
+					$sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \
+					< tmp.imp >>libc.tmp
+				    $rm tmp.imp
+				fi
 			done
-			$sed -e 's/\.o$//' < libc.tmp > libc.list
+			$sed -e 's/\.o$//' -e 's/^ \+//' < libc.tmp | grep -v "^IMPORT#" > libc.list
 			echo "Ok." >&4
 		else
-			echo "ar didn't seem to work right." >&4
+			echo "$ar didn't seem to work right." >&4
 			echo "Maybe this is a Cray...trying bld instead..." >&4
 			if bld t $libc | $sed -e 's/.*\///' -e 's/\.o:.*$//' > libc.list
 			then
 				for thisname in $libnames; do
 					bld t $libnames | \
 					$sed -e 's/.*\///' -e 's/\.o:.*$//' >>libc.list
-					ar t $thisname >>libc.tmp
+					$ar t $thisname >>libc.tmp
 				done
 				echo "Ok." >&4
 			else
@@ -5611,15 +5635,15 @@
 EOCP
 	: check sys/file.h first, no particular reason here
 	if $test `./findhdr sys/file.h` && \
-		$cc $cppflags -DI_SYS_FILE access.c -o access >/dev/null 2>&1 ; then
+		$cc $ldflags $cppflags -DI_SYS_FILE access.c -o access >/dev/null 2>&1 ; then
 		h_sysfile=true;
 		echo "<sys/file.h> defines the *_OK access constants." >&4
 	elif $test `./findhdr fcntl.h` && \
-		$cc $cppflags -DI_FCNTL access.c -o access >/dev/null 2>&1 ; then
+		$cc $ldflags $cppflags -DI_FCNTL access.c -o access >/dev/null 2>&1 ; then
 		h_fcntl=true;
 		echo "<fcntl.h> defines the *_OK access constants." >&4
 	elif $test `./findhdr unistd.h` && \
-		$cc $cppflags -DI_UNISTD access.c -o access >/dev/null 2>&1 ; then
+		$cc $ldflags $cppflags -DI_UNISTD access.c -o access >/dev/null 2>&1 ; then
 		echo "<unistd.h> defines the *_OK access constants." >&4
 	else
 		echo "I can't find the four *_OK access constants--I'll use mine." >&4
@@ -5913,7 +5937,7 @@
 	exit(result);
 }
 EOCP
-if $cc -o try $ccflags try.c >/dev/null 2>&1; then
+if $cc -o try $ccflags try.c $ldflags >/dev/null 2>&1; then
 	./try
 	yyy=$?
 else
@@ -5994,7 +6018,7 @@
 
 }
 EOCP
-if $cc -o try $ccflags try.c >/dev/null 2>&1; then
+if $cc -o try $ccflags try.c $ldflags >/dev/null 2>&1; then
 	./try
 	castflags=$?
 else
@@ -6033,7 +6057,7 @@
 	exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
 }
 EOF
-	if $cc $ccflags vprintf.c -o vprintf >/dev/null 2>&1 && ./vprintf; then
+	if $cc $ccflags vprintf.c $ldflags -o vprintf >/dev/null 2>&1 && ./vprintf; then
 		echo "Your vsprintf() returns (int)." >&4
 		val2="$undef"
 	else
@@ -6381,7 +6405,7 @@
 EOCP
 : check sys/file.h first to get FREAD on Sun
 if $test `./findhdr sys/file.h` && \
-        $cc $ccflags "-DI_SYS_FILE" -o open3 $ldflags open3.c $libs >/dev/null 2>&1 ; then
+        $cc $ldflags $ccflags "-DI_SYS_FILE" -o open3 $ldflags open3.c $libs >/dev/null 2>&1 ; then
 	h_sysfile=true;
 	echo "<sys/file.h> defines the O_* constants..." >&4
 	if ./open3; then
@@ -6392,7 +6416,7 @@
 		val="$undef"
 	fi
 elif $test `./findhdr fcntl.h` && \
-        $cc $ccflags "-DI_FCNTL" -o open3 $ldflags open3.c $libs >/dev/null 2>&1 ; then
+        $cc $ldflags $ccflags "-DI_FCNTL" -o open3 $ldflags open3.c $libs >/dev/null 2>&1 ; then
 	h_fcntl=true;
 	echo "<fcntl.h> defines the O_* constants..." >&4
 	if ./open3; then
@@ -6898,7 +6922,7 @@
 y*|true)
 	usemymalloc='y'
 	mallocsrc='malloc.c'
-	mallocobj='malloc.o'
+	mallocobj="malloc$obj_ext"
 	d_mymalloc="$define"
 	case "$libs" in
 	*-lmalloc*)
@@ -8156,7 +8180,7 @@
 	printf("%d\n", (char *)&try.bar - (char *)&try.foo);
 }
 EOCP
-	if $cc $ccflags try.c -o try >/dev/null 2>&1; then
+	if $cc $ccflags $ldflags try.c -o try >/dev/null 2>&1; then
 		dflt=`./try`
 	else
 		dflt='8'
@@ -8204,7 +8228,7 @@
 }
 EOCP
 	xxx_prompt=y
-	if $cc $ccflags try.c -o try >/dev/null 2>&1 && ./try > /dev/null; then
+	if $cc $ccflags $ldflags try.c -o try >/dev/null 2>&1 && ./try > /dev/null; then
 		dflt=`./try`
 		case "$dflt" in
 		[1-4][1-4][1-4][1-4]|12345678|87654321)
@@ -8711,18 +8735,18 @@
 $cc $ccflags -c bar1.c >/dev/null 2>&1
 $cc $ccflags -c bar2.c >/dev/null 2>&1
 $cc $ccflags -c foo.c >/dev/null 2>&1
-ar rc bar$lib_ext bar2.o bar1.o >/dev/null 2>&1
+$ar rc bar$lib_ext bar2.o bar1.o >/dev/null 2>&1
 if $cc $ccflags $ldflags -o foobar foo.o bar$lib_ext $libs > /dev/null 2>&1 &&
 	./foobar >/dev/null 2>&1; then
-	echo "ar appears to generate random libraries itself."
+	echo "$ar appears to generate random libraries itself."
 	orderlib=false
 	ranlib=":"
-elif ar ts bar$lib_ext >/dev/null 2>&1 &&
+elif $ar ts bar$lib_ext >/dev/null 2>&1 &&
 	$cc $ccflags $ldflags -o foobar foo.o bar$lib_ext $libs > /dev/null 2>&1 &&
 	./foobar >/dev/null 2>&1; then
-		echo "a table of contents needs to be added with 'ar ts'."
+		echo "a table of contents needs to be added with '$ar ts'."
 		orderlib=false
-		ranlib="ar ts"
+		ranlib="$ar ts"
 else
 	case "$ranlib" in
 	:) ranlib='';;
@@ -8794,7 +8818,7 @@
 	'') $echo $n ".$c"
 		if $cc $ccflags \
 		$i_time $i_systime $i_systimek $sysselect $s_timeval $s_timezone \
-		try.c -o try >/dev/null 2>&1 ; then
+		try.c -o try $ldflags >/dev/null 2>&1 ; then
 			set X $i_time $i_systime $i_systimek $sysselect $s_timeval
 			shift
 			flags="$*"
@@ -8863,7 +8887,7 @@
 #endif
 }
 EOCP
-if $cc $ccflags -DTRYBITS fd_set.c -o fd_set >fd_set.out 2>&1 ; then
+if $cc $ccflags $ldflags -DTRYBITS fd_set.c -o fd_set >fd_set.out 2>&1 ; then
 	d_fds_bits="$define"
 	d_fd_set="$define"
 	echo "Well, your system knows about the normal fd_set typedef..." >&4
@@ -8880,7 +8904,7 @@
 	$cat <<'EOM'
 Hmm, your compiler has some difficulty with fd_set.  Checking further...
 EOM
-	if $cc $ccflags fd_set.c -o fd_set >fd_set.out 2>&1 ; then
+	if $cc $ccflags $ldflags fd_set.c -o fd_set >fd_set.out 2>&1 ; then
 		d_fds_bits="$undef"
 		d_fd_set="$define"
 		echo "Well, your system has some sort of fd_set available..." >&4
@@ -9627,7 +9651,7 @@
 else
 	echo "false"
 fi
-$rm -f varargs.o
+$rm -f varargs$obj_ext
 EOP
 chmod +x varargs
 
@@ -9954,7 +9978,7 @@
 	echo " "
 	echo "Stripping down executable paths..." >&4
 	for file in $loclist $trylist; do
-		eval $file="\$file"
+		if test X$file != Xln -o X$osname != Xos2; then eval $file="\$file"; fi
 	done
 	;;
 esac