diff --git a/src/Makefile.shlib b/src/Makefile.shlib index 1f06d19388..467cfc18d7 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.21 2000/06/28 18:29:13 petere Exp $ +# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.22 2000/07/07 01:23:43 momjian Exp $ # #------------------------------------------------------------------------- @@ -143,9 +143,9 @@ endif ifeq ($(PORTNAME), linux) shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION) - LDFLAGS_SL := -Bdynamic -shared -soname $(shlib) - LDFLAGS_ODBC := -Bsymbolic -lc -lm - SHLIB_LINK += -lc + LD := $(CC) + LDFLAGS_SL := -shared -Wl,-soname,$(shlib) + LDFLAGS_ODBC := -lm CFLAGS += $(CFLAGS_SL) endif diff --git a/src/interfaces/odbc/psqlodbc.c b/src/interfaces/odbc/psqlodbc.c index 0df56ee1e7..a4598383fc 100644 --- a/src/interfaces/odbc/psqlodbc.c +++ b/src/interfaces/odbc/psqlodbc.c @@ -33,8 +33,6 @@ GLOBAL_VALUES globals; -BOOL _init(void); -BOOL _fini(void); RETCODE SQL_API SQLDummyOrdinal(void); #ifdef WIN32 @@ -97,6 +95,20 @@ WSADATA wsaData; #define FALSE (BOOL)0 #endif +#ifdef __GNUC__ + +/* This function is called at library initialization time. */ + +static BOOL +__attribute__((constructor)) +init(void) +{ + getGlobalDefaults(DBMS_NAME, ODBCINST_INI, FALSE); + return TRUE; +} + +#else + /* These two functions do shared library initialziation on UNIX, well at least * on Linux. I don't know about other systems. */