Disable ld --version-script flag if not supported

See https://github.com/brianb/mdbtools/issues/17
Thanks libjpeg-turbo for the script (BSD license)
This commit is contained in:
Nirgal Vourgère 2012-10-04 14:31:14 +02:00
parent 23cab28913
commit 6b6e54bd14
4 changed files with 46 additions and 3 deletions

View File

@ -69,6 +69,40 @@ AC_SUBST(LFLAGS)
CFLAGS="$CFLAGS -Wall"
LDFLAGS="$LDFLAGS -Wl,--as-needed"
dnl check whether ld supports --version-script
VERSION_SCRIPT=yes
AC_ARG_ENABLE([ld-version-script],
AS_HELP_STRING([--disable-ld-version-script],
[Disable linker version script for libraries (default is to use linker version script if the linker supports it)]),
[VERSION_SCRIPT=$enableval], [])
AC_MSG_CHECKING([whether the linker supports version scripts])
SAVED_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -Wl,--version-script,conftest.map"
cat > conftest.map <<EOF
VERS_1 {
global: *;
};
EOF
AC_LINK_IFELSE(AC_LANG_PROGRAM([], []),
[VERSION_SCRIPT_FLAG=-Wl,--version-script,; AC_MSG_RESULT([yes (GNU style)])], [])
if test "x$VERSION_SCRIPT_FLAG" = "x"; then
LDFLAGS="$SAVED_LDFLAGS -Wl,-M,conftest.map"
AC_LINK_IFELSE(AC_LANG_PROGRAM([], []),
[VERSION_SCRIPT_FLAG=-Wl,-M,; AC_MSG_RESULT([yes (Sun style)])], [])
fi
if test "x$VERSION_SCRIPT_FLAG" = "x"; then
VERSION_SCRIPT=no
AC_MSG_RESULT(no)
fi
LDFLAGS="$SAVED_LDFLAGS"
AC_MSG_CHECKING([whether to use version script when building libraries])
AC_MSG_RESULT($VERSION_SCRIPT)
AM_CONDITIONAL(VERSION_SCRIPT, test "x$VERSION_SCRIPT" = "xyes")
AC_SUBST(VERSION_SCRIPT_FLAG)
dnl check for iODBC
AC_ARG_WITH(iodbc,

View File

@ -1,5 +1,8 @@
lib_LTLIBRARIES = libmdb.la
libmdb_la_SOURCES= catalog.c mem.c file.c table.c data.c dump.c backend.c money.c sargs.c index.c like.c write.c stats.c map.c props.c worktable.c options.c iconv.c
libmdb_la_LDFLAGS = -version-info 2:1:0 -Wl,--version-script=$(srcdir)/libmdb.map
libmdb_la_LDFLAGS = -version-info 2:1:0
AM_CPPFLAGS = -I$(top_srcdir)/include $(GLIB_CFLAGS)
LIBS = $(GLIB_LIBS) @LIBS@
if VERSION_SCRIPT
libmdb_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libmdb.map
endif

View File

@ -4,6 +4,9 @@ lib_LTLIBRARIES = libmdbodbc.la
AM_CPPFLAGS = -I$(top_srcdir)/include $(GLIB_CFLAGS) $(ODBC_CFLAGS)
libmdbodbc_la_SOURCES= odbc.c connectparams.c
libmdbodbc_la_LIBADD= ../libmdb/libmdb.la ../sql/libmdbsql.la
libmdbodbc_la_LDFLAGS = -version-info 1:1:0 -Wl,--version-script=$(srcdir)/libmdbodbc.map
libmdbodbc_la_LDFLAGS = -version-info 1:1:0
LIBS = @LEXLIB@ $(GLIB_LIBS) $(ODBC_LIBS)
unittest_LDADD = libmdbodbc.la ../libmdb/libmdb.la ../sql/libmdbsql.la
if VERSION_SCRIPT
libmdbodbc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libmdbodbc.map
endif

View File

@ -1,8 +1,11 @@
lib_LTLIBRARIES = libmdbsql.la
libmdbsql_la_SOURCES= mdbsql.c parser.y lexer.l
libmdbsql_la_LDFLAGS = -version-info 2:0:0 -Wl,--version-script=$(srcdir)/libmdbsql.map
libmdbsql_la_LDFLAGS = -version-info 2:0:0
CLEANFILES = parser.c parser.h lexer.c
AM_CPPFLAGS = -I$(top_srcdir)/include $(GLIB_CFLAGS)
LIBS = $(GLIB_LIBS)
libmdbsql_la_LIBADD = ../libmdb/libmdb.la
YACC = @YACC@ -d
if VERSION_SCRIPT
libmdbsql_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libmdbsql.map
endif