From f7bfb5518d9851b99f8982e94ea833da8317c412 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Mon, 7 May 2001 20:43:28 +0000
Subject: [PATCH] Shared library and GCC support for SCO OpenServer.

---
 src/Makefile.shlib         | 20 +++++++++++++++++++-
 src/makefiles/Makefile.sco | 13 +++++++++++--
 src/template/sco           |  8 ++++++--
 3 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index a2613ebfc16..732d7415686 100644
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
@@ -6,7 +6,7 @@
 # Copyright (c) 1998, Regents of the University of California
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.50 2001/04/15 03:25:07 tgl Exp $
+#    $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.51 2001/05/07 20:43:28 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -194,6 +194,24 @@ ifeq ($(PORTNAME), osf)
   LINK.shared		= $(LD) -shared -expect_unresolved '*'
 endif
 
+ifeq ($(PORTNAME), sco)
+  shlib			:= lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
+  ifndef cplusplus
+    ifeq ($(GCC), yes)
+      LINK.shared	= $(CC) -shared
+    else
+      LINK.shared	= $(CC) -G
+    endif
+  else
+    ifeq ($(GXX), yes)
+      LINK.shared	= $(CXX) -shared
+    else
+      LINK.shared	= $(CXX) -G
+    endif
+  endif
+  LINK.shared		+= -Wl,-z,text -Wl,-h,$(soname)
+endif
+
 ifeq ($(PORTNAME), svr4)
   shlib			:= lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
   LINK.shared		= $(LD) -G
diff --git a/src/makefiles/Makefile.sco b/src/makefiles/Makefile.sco
index 810f75947e2..a2fedb22f0d 100644
--- a/src/makefiles/Makefile.sco
+++ b/src/makefiles/Makefile.sco
@@ -1,9 +1,18 @@
-override CFLAGS += -dy
-export_dynamic = -W l,-Bexport
 AROPT = cr
+export_dynamic = -Wl,-Bexport
+shlib_symbolic = -Wl,-Bsymbolic
 
 DLSUFFIX = .so
+ifeq ($(GCC), yes)
+CFLAGS_SL = -fpic
+else
 CFLAGS_SL = -K PIC
+endif
+ifeq ($(GXX), yes)
+CXXFLAGS_SL = -fpic
+else
+CXXFLAGS_SL = -K PIC
+endif
 
 %.so: %.o
 	$(LD) -G -Bdynamic -o $@ $<
diff --git a/src/template/sco b/src/template/sco
index 8b3a7bf0b72..ce38e57d59b 100644
--- a/src/template/sco
+++ b/src/template/sco
@@ -1,2 +1,6 @@
-CFLAGS=
-CC="$CC -b elf"
+if test "$GCC" = yes; then
+  CFLAGS=-02
+else
+  CFLAGS=-O
+  CC="$CC -b elf"
+fi
-- 
GitLab