mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-12-21 19:10:05 +08:00
Try fixing unixODBC deadlock with -Bsymbolic-functions
This flag compels the dynamic library to prefer its own function symbols to those in the global symbol table. This behavior should let us directly call SQL* functions from inside other SQL* functions without fear of interference by the host program.
This commit is contained in:
@@ -70,9 +70,7 @@ AC_SUBST(LFLAGS)
|
|||||||
|
|
||||||
CFLAGS="$CFLAGS -Wall -Werror"
|
CFLAGS="$CFLAGS -Wall -Werror"
|
||||||
AS_CASE([$host],
|
AS_CASE([$host],
|
||||||
[*mingw*|*cygwin*], [LDFLAGS="$LDFLAGS -no-undefined"],
|
[*mingw*|*cygwin*], [LDFLAGS="$LDFLAGS -no-undefined"], [])
|
||||||
[*darwin*], [],
|
|
||||||
[LDFLAGS="$LDFLAGS -Wl,--no-undefined"])
|
|
||||||
AS_CASE([$host],
|
AS_CASE([$host],
|
||||||
[*mingw*], [LDFLAGS="$LDFLAGS -lWs2_32"], [])
|
[*mingw*], [LDFLAGS="$LDFLAGS -lWs2_32"], [])
|
||||||
dnl Enable -Wl,--as-needed by default to prevent overlinking
|
dnl Enable -Wl,--as-needed by default to prevent overlinking
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ lib_LTLIBRARIES = libmdbodbc.la
|
|||||||
AM_CFLAGS = -I$(top_srcdir)/include $(GLIB_CFLAGS) $(ODBC_CFLAGS)
|
AM_CFLAGS = -I$(top_srcdir)/include $(GLIB_CFLAGS) $(ODBC_CFLAGS)
|
||||||
libmdbodbc_la_SOURCES = odbc.c connectparams.c
|
libmdbodbc_la_SOURCES = odbc.c connectparams.c
|
||||||
libmdbodbc_la_LIBADD = ../libmdb/libmdb.la ../sql/libmdbsql.la $(ODBC_LIBS)
|
libmdbodbc_la_LIBADD = ../libmdb/libmdb.la ../sql/libmdbsql.la $(ODBC_LIBS)
|
||||||
libmdbodbc_la_LDFLAGS = -avoid-version -export-symbols-regex '^(SQL|ODBCINST)'
|
libmdbodbc_la_LDFLAGS = -avoid-version -export-symbols-regex '^(SQL|ODBCINST)' -Bsymbolic-functions
|
||||||
if FAKE_GLIB
|
if FAKE_GLIB
|
||||||
libmdbodbc_la_SOURCES += ../libmdb/fakeglib.c
|
libmdbodbc_la_SOURCES += ../libmdb/fakeglib.c
|
||||||
endif
|
endif
|
||||||
|
|||||||
Reference in New Issue
Block a user