]> granicus.if.org Git - postgresql/commitdiff
Use -Bsymbolic for shared libraries on HP-UX and Solaris.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 11 Sep 2018 02:22:12 +0000 (22:22 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 11 Sep 2018 02:22:12 +0000 (22:22 -0400)
These platforms are also subject to the mis-linking problem addressed
in commit e3d77ea6b.  It's not clear whether we could solve it with
a solution equivalent to GNU ld's version scripts, but -Bsymbolic
appears to fix it, so let's use that.

Like the previous commit, back-patch as far as v10.

Discussion: https://postgr.es/m/153626613985.23143.4743626885618266803@wrigleys.postgresql.org

src/Makefile.shlib

index 9cfe49749eb9b158225edd8af7af1e9fb240d71a..63d5d9e8ee47d8066b30c3a76a2e8886c2f1c445 100644 (file)
@@ -198,12 +198,12 @@ ifeq ($(PORTNAME), hpux)
     shlib                      = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
   endif
   ifeq ($(with_gnu_ld), yes)
-    LINK.shared                = $(CC) -shared
+    LINK.shared                = $(CC) -shared -Wl,-Bsymbolic
     ifdef soname
       LINK.shared      += -Wl,-h -Wl,$(soname)
     endif
   else
-    LINK.shared                = $(LD) -b
+    LINK.shared                = $(LD) -b -Bsymbolic
     ifdef soname
       LINK.shared      += +h $(soname)
     endif
@@ -240,9 +240,9 @@ endif
 
 ifeq ($(PORTNAME), solaris)
   ifeq ($(GCC), yes)
-    LINK.shared                = $(COMPILER) -shared
+    LINK.shared                = $(COMPILER) -shared -Wl,-Bsymbolic
   else
-    LINK.shared                = $(COMPILER) -G
+    LINK.shared                = $(COMPILER) -G -Bsymbolic
   endif
   ifdef soname
     ifeq ($(with_gnu_ld), yes)