diff --git a/src/interfaces/odbc/GNUmakefile b/src/interfaces/odbc/GNUmakefile
index a6aedb936ad7d8d8799677a99debd117e7266c01..7a1542f3d4178de2e1e7a75d934b3b6d76671442 100644
--- a/src/interfaces/odbc/GNUmakefile
+++ b/src/interfaces/odbc/GNUmakefile
@@ -2,7 +2,7 @@
 #
 # GNUMakefile for psqlodbc (Postgres ODBC driver)
 #
-# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/GNUmakefile,v 1.7 2000/10/28 15:10:36 petere Exp $
+# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/GNUmakefile,v 1.8 2000/12/16 18:14:25 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -30,6 +30,11 @@ all: all-lib
 # Shared library stuff
 include $(top_srcdir)/src/Makefile.shlib
 
+# Symbols must be resolved to the version in the shared library because
+# the driver manager (e.g., iodbc) provides some symbols with the same
+# names and we don't want those.  (This issue is probably ELF specific.)
+LINK.shared += $(shlib_symbolic)
+
 odbc_headers = isql.h isqlext.h iodbc.h
 odbc_includedir = $(includedir)/iodbc
 
diff --git a/src/makefiles/Makefile.bsdi b/src/makefiles/Makefile.bsdi
index a95fd312346da560577246de4cd88bcad9739dcb..943c179b70bf1e04f8889e1ab50e5456c50ad810 100644
--- a/src/makefiles/Makefile.bsdi
+++ b/src/makefiles/Makefile.bsdi
@@ -15,6 +15,7 @@ endif
 ifeq ($(DLSUFFIX), .so)
 CFLAGS_SL = -fpic
 export_dynamic = -export-dynamic
+shlib_symbolic = -Bsymbolic
 else
 CFLAGS_SL =
 endif
diff --git a/src/makefiles/Makefile.freebsd b/src/makefiles/Makefile.freebsd
index 91a45a63632074476e66873d3b5241bce35d4853..ef5613f98fa41aeafe8fe25163d78f6e9dfeed8b 100644
--- a/src/makefiles/Makefile.freebsd
+++ b/src/makefiles/Makefile.freebsd
@@ -3,6 +3,7 @@ AROPT = cr
 ifdef ELF_SYSTEM
 export_dynamic = -export-dynamic
 rpath = -R$(libdir)
+shlib_symbolic = -Bsymbolic
 endif
 
 DLSUFFIX = .so
diff --git a/src/makefiles/Makefile.irix5 b/src/makefiles/Makefile.irix5
index 956c4217c483ab0f9cf88810b01e13a71cc1c82c..d90fcd9a6ebf2068c49b72a3c5f7eeed66b7c33a 100644
--- a/src/makefiles/Makefile.irix5
+++ b/src/makefiles/Makefile.irix5
@@ -1,6 +1,7 @@
 MK_NO_LORDER= true
 AROPT = crs
 rpath = -Wl,-rpath,$(libdir)
+shlib_symbolic = -Wl,-B,symbolic
 
 DLSUFFIX = .so
 # PIC is default
diff --git a/src/makefiles/Makefile.linux b/src/makefiles/Makefile.linux
index 3834552ec38a21c0955cbbd78cad026c6504c8d9..11bef1572c6a608cc7534449b420a859c925a2c1 100644
--- a/src/makefiles/Makefile.linux
+++ b/src/makefiles/Makefile.linux
@@ -1,6 +1,7 @@
 AROPT = crs
 export_dynamic = -export-dynamic
 rpath = -Wl,-rpath,$(libdir)
+shlib_symbolic = -Wl,-Bsymbolic
 DLSUFFIX = .so
 CFLAGS_SL = -fpic
 
diff --git a/src/makefiles/Makefile.netbsd b/src/makefiles/Makefile.netbsd
index a9fd5a43b401f820386b6e7ac1c7ad5accdbd813..5cb8085058782b4f8c68704308c8b8d63b7622fb 100644
--- a/src/makefiles/Makefile.netbsd
+++ b/src/makefiles/Makefile.netbsd
@@ -3,6 +3,7 @@ AROPT = cr
 ifdef ELF_SYSTEM
 export_dynamic = -Wl,-E
 rpath = -Wl,-R$(libdir)
+shlib_symbolic = -Wl,-Bsymbolic
 endif
 
 DLSUFFIX = .so
diff --git a/src/makefiles/Makefile.openbsd b/src/makefiles/Makefile.openbsd
index eeaa40743f4b609d31f30feb8a73b840ac9435a0..2ce2ca8ba1cb8647584f85df32dc00d4f28fee7e 100644
--- a/src/makefiles/Makefile.openbsd
+++ b/src/makefiles/Makefile.openbsd
@@ -3,6 +3,7 @@ AROPT = cr
 ifdef ELF_SYSTEM
 export_dynamic = -Wl,-E
 rpath = -R$(libdir)
+shlib_symbolic = -Bsymbolic
 endif
 
 DLSUFFIX = .so
diff --git a/src/makefiles/Makefile.solaris b/src/makefiles/Makefile.solaris
index e8d23c948f208b64b2edb694c1211078da6e7258..56fb5c5f0582c998165a1a5f25db816bd97cc116 100644
--- a/src/makefiles/Makefile.solaris
+++ b/src/makefiles/Makefile.solaris
@@ -1,4 +1,4 @@
-# $Header: /cvsroot/pgsql/src/makefiles/Makefile.solaris,v 1.5 2000/11/04 16:35:55 petere Exp $
+# $Header: /cvsroot/pgsql/src/makefiles/Makefile.solaris,v 1.6 2000/12/16 18:14:25 petere Exp $
 
 AROPT = crs
 
@@ -8,7 +8,7 @@ rpath = -Wl,-rpath,$(libdir)
 else
 rpath = -Wl,-R$(libdir)
 endif
-
+shlib_symbolic = -Wl,-Bsymbolic
 
 DLSUFFIX = .so
 ifeq ($(GCC), yes)
diff --git a/src/makefiles/Makefile.unixware b/src/makefiles/Makefile.unixware
index 698ea98118e1f0212ffa8ecc1663f5bd9ebec940..bc2ddcad36d9b88e9a653fb13459615665ea33b7 100644
--- a/src/makefiles/Makefile.unixware
+++ b/src/makefiles/Makefile.unixware
@@ -3,6 +3,8 @@ export_dynamic = -Wl,-Bexport
 ifeq ($(ld_R_works), yes)
 rpath = -Wl,-R$(libdir)
 endif
+shlib_symbolic = -Wl,-Bsymbolic
+
 DLSUFFIX = .so
 ifeq ($(GCC), yes)
 CFLAGS_SL = -fpic