about summary refs log tree commit diff
path: root/zshconfig.ac
diff options
context:
space:
mode:
authorBart Schaefer <barts@users.sourceforge.net>2001-09-09 16:37:03 +0000
committerBart Schaefer <barts@users.sourceforge.net>2001-09-09 16:37:03 +0000
commit7670eee717467ec7c78ce640d911a58bc5145d66 (patch)
tree5ee4edd31d06182976a50e2d71d4a45f04805708 /zshconfig.ac
parentb000083cf4b533f65740783b169203fb1605aa69 (diff)
downloadzsh-7670eee717467ec7c78ce640d911a58bc5145d66.tar.gz
zsh-7670eee717467ec7c78ce640d911a58bc5145d66.tar.xz
zsh-7670eee717467ec7c78ce640d911a58bc5145d66.zip
David Lebel: Shared object linkage on OpenBSD.
Diffstat (limited to 'zshconfig.ac')
-rw-r--r--zshconfig.ac29
1 files changed, 27 insertions, 2 deletions
diff --git a/zshconfig.ac b/zshconfig.ac
index a2f2c45d5..e70099a38 100644
--- a/zshconfig.ac
+++ b/zshconfig.ac
@@ -1602,7 +1602,14 @@ char *argv[];
   else
     case "$host" in
       *openbsd*)
-	DLLD="${DLLD=$CC}"
+	case "$host_os" in
+	  openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	    DLLD="${DLLD=ld}"
+	  ;;
+	  *)
+	    DLLD="${DLLD=$CC}"
+	  ;;
+	esac
 	DLLDARG="${LDARG}"
       ;;
       * )
@@ -1628,11 +1635,29 @@ char *argv[];
     netbsd*)      DLLDFLAGS="${DLLDFLAGS=${DLLDARG}-x -shared --whole-archive}" ;;
     aix*)         DLLDFLAGS="${DLLDFLAGS=-G -bexpall -lc}" ;;
     solaris*|sysv4*|esix*) DLLDFLAGS="${DLLDFLAGS=-G}" ;;
-    openbsd*)     DLLDFLAGS="${DLLDFLAGS=-shared -fPIC}" ;;
+    openbsd*)
+      if test $zsh_cv_sys_elf = yes; then
+	DLLDFLAGS="${DLLDFLAGS=-shared -fPIC}"
+      else
+	case "$host_os" in
+	  openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   DLLDFLAGS="${DLLDFLAGS=-Bshareable}"
+	  ;;
+	  *)
+	    DLLDFLAGS="${DLLDFLAGS=-shared -fPIC}"
+	  ;;
+	esac
+      fi
+    ;;
   esac
   case "$host" in
     *-hpux*)  EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-Wl,-E}" ;;
     *-freebsd[3-9]*|*-linux*) EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-rdynamic}" ;;
+    *openbsd*)
+       if test $zsh_cv_sys_elf = yes; then
+	 EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-Wl,-E}"
+       fi
+    ;;
     mips-sni-sysv4)
       #
       # unfortunately, we have different compilers