# Author: Damyan Ivanov <dmn@debian.org>
# Description: avoid linking with libraries whose symbols are not used
# Forwarded: no
--- a/builds/posix/make.defaults
+++ b/builds/posix/make.defaults
@@ -153,7 +153,7 @@ EXE_LINK:= @CXX@ $(GLOB_OPTIONS)
STATICEXE_LINK:= @CXX@ $(GLOB_OPTIONS)
LINK_LIBS = @LIBS@
-ICU_LIBS = -licuuc -licudata -licui18n
+ICU_LIBS = -licuuc
STATICLINK_LIBS = @LIBS@
SO_LINK_LIBS = @LIBS@
@@ -264,8 +264,8 @@ LIB_LINK_SONAME= -Wl,-soname,$(1)
LIB_LINK_MAPFILE= -Wl,--version-script,
FBEMBED_LINK= -L$(LIB) -lfbembed
-LINK_OPTS= $(LDFLAGS) $(THR_FLAGS) $(UNDEF_FLAGS) $(LIB_PATH_OPTS)
-LIB_LINK_OPTIONS= $(LDFLAGS) $(THR_FLAGS) -shared
+LINK_OPTS= $(LDFLAGS) $(UNDEF_FLAGS) $(LIB_PATH_OPTS)
+LIB_LINK_OPTIONS= $(LDFLAGS) -shared
FB_SUPER_SERVER = $(BIN)/fbserver$(EXEC_EXT)
FB_CLASSIC_SERVER = $(BIN)/fb_inet_server$(EXEC_EXT)
@@ -278,26 +278,26 @@ LIB_GUI =
# Per-library link rules
LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT))\
$(call LIB_LINK_RPATH,lib) -lm
-LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -lib_util
+LINK_UDF_LIBS = -L$(LIB) -lib_util
LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS)\
$(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib)
-LINK_IB_UTIL_LIBS = $(THR_LIBS)
+LINK_IB_UTIL_LIBS =
LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS)\
$(call LIB_LINK_SONAME,libintl.$(SHRLIB_EXT).1) $(call LIB_LINK_RPATH,lib)
-LINK_INTL_LIBS = -L$(LIB) $(ICU_LIBS) $(SO_LINK_LIBS)
+LINK_INTL_LIBS = -L$(LIB) $(ICU_LIBS) $(SO_LINK_LIBS) $(THR_LIBS) $(THR_FLAGS)
LINK_TRACE = $(LIB_LINK) $(LINK_TRACE_SYMBOLS) $(LIB_LINK_OPTIONS)\
$(call LIB_LINK_SONAME,$(LIB_PREFIX)fbtrace.$(SHRLIB_EXT).0) $(call LIB_LINK_RPATH,lib)
LINK_TRACE_LIBS = -L$(LIB) $(SO_LINK_LIBS)
LINK_CLIENT = $(CLIENTLIB_LINK) $(LINK_FIREBIRD_CLIENT_SYMBOLS) $(LIB_LINK_OPTIONS)\
- $(LIB_LINK_IMPLIB) $(call LIB_LINK_SONAME,$(ClientLibrarySoName)) $(call LIB_LINK_RPATH,lib)
+ $(LIB_LINK_IMPLIB) $(call LIB_LINK_SONAME,$(ClientLibrarySoName)) $(call LIB_LINK_RPATH,lib) $(THR_LIBS) $(THR_FLAGS)
LINK_CLIENT_LIBS = $(SO_LINK_LIBS) $(STATIC_CXXSUPPORT_LIB)
LINK_EMBED = $(LIB_LINK) $(LINK_FIREBIRD_EMBED_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_EMBED_LINK_OPTIONS)\
- $(call LIB_LINK_SONAME,$(SharedLibrarySoName)) $(call LIB_LINK_RPATH,lib)
+ $(call LIB_LINK_SONAME,$(SharedLibrarySoName)) $(call LIB_LINK_RPATH,lib) $(THR_LIBS) $(THR_FLAGS)
LINK_EMBED_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(ICU_LIBS)
# From utilities
--- a/configure.in
+++ b/configure.in
@@ -655,7 +655,6 @@ if test "$EDITLINE_FLG" = "Y"; then
AC_CHECK_LIB(tinfo, tgetent, TERMLIB=tinfo, \
AC_MSG_ERROR(termcap support not found)))))
AC_SUBST(TERMLIB)
- XE_APPEND(-l$TERMLIB, LIBS)
fi
AC_SEARCH_LIBS(inet_aton, resolv)
@@ -772,6 +771,10 @@ AC_CHECK_FUNCS(pthread_mutex_consistent_
dnl Semaphores
if test "$ac_cv_header_semaphore_h" = "yes"; then
+ save_sem_libs=$LIBS
+ save_sem_cflags=$CFLAGS
+ LIBS="$LIBS $PTHREAD_LIBS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
AC_SEARCH_LIBS(sem_init, rt)
AC_CHECK_FUNCS(sem_timedwait)
AC_CHECK_FUNCS(sem_init)
@@ -788,6 +791,8 @@ AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)
AC_SEARCH_LIBS(sem_open, rt)])
fi
+LIBS=$save_sem_libs
+CFLAGS=$save_sem_cflags
fi
dnl HPUX has a bug in .h files. To detect it we need C++ here.
--- a/builds/posix/Makefile.in.client.util
+++ b/builds/posix/Makefile.in.client.util
@@ -184,13 +184,13 @@ $(FBSVCMGR): $(FBSVCMGR_Objects) $(LIBFB
fbtracemgr: $(FBTRACEMGR)
$(FBTRACEMGR): $(FBTRACEMGR_Objects) $(LIBFBCLIENT_SO)
- $(EXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
+ $(EXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB)
fbguard: $(LIBFBCLIENT_SO) $(FBGUARD)
$(FBGUARD): $(FBGUARD_Objects) $(FBCOMMON_Objects) $(FBCLASSES_Objects)
- $(EXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) -lfbclient $(LIB_GUI) $(LINK_LIBS)
+ $(EXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) -lfbclient $(LIB_GUI)
ibguard: $(LIBFBCLIENT_SO) $(IBGUARD)
--- a/builds/posix/Makefile.in.embed.util
+++ b/builds/posix/Makefile.in.embed.util
@@ -149,7 +149,7 @@ all: $(EMBED_UTIL_TARGETS)
create_db: $(CREATE_DB)
$(CREATE_DB): $(CREATEDB_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
+ $(STATICEXE_LINK) $(LINK_OPTS) $(THR_FLAGS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
nbackup: $(LIBFBEMBED_SO) $(NBACKUP)
@@ -185,7 +185,7 @@ $(FBSVCMGR): $(FBSVCMGR_Objects) $(LIBFB
fbtracemgr: $(FBTRACEMGR)
$(FBTRACEMGR): $(FBTRACEMGR_Objects) $(LIBFBEMBED_SO)
- $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LINK_LIBS)
+ $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK)
gds_relay: $(GDS_RELAY)
@@ -203,7 +203,7 @@ $(GSEC): $(GSEC_Objects) $(CLUMPLETS_Obj
fbguard: $(LIBFBCLIENT_SO) $(FBGUARD)
$(FBGUARD): $(FBGUARD_Objects) $(FBCOMMON_Objects) $(FBCLASSES_Objects)
- $(EXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) -lfbclient $(LIB_GUI) $(LINK_LIBS)
+ $(EXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) -lfbclient $(LIB_GUI)
ibmgr_bin: $(IBMGR_BIN)
--- a/builds/posix/Makefile.in.inet_server
+++ b/builds/posix/Makefile.in.inet_server
@@ -52,7 +52,7 @@ Dependencies = $(AllObjects:.o=.d)
fb_inet_server : $(LIBFBEMBED_SO) $(FB_CLASSIC_SERVER)
$(FB_CLASSIC_SERVER): $(SERVER_Objects)
- $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LIB_GUI) $(LINK_LIBS)
+ $(EXE_LINK) $(LINK_OPTS) $^ -o $@ $(FBEMBED_LINK) $(LIB_GUI)
include $(ROOT)/gen/make.shared.targets
--- a/builds/posix/Makefile.in.boot.gpre
+++ b/builds/posix/Makefile.in.boot.gpre
@@ -76,7 +76,7 @@ Dependencies = $(AllObjects:.o=.d)
gpre_boot : $(GPRE_BOOT)
$(GPRE_BOOT): $(GPREBOOT_Objects)
- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
+ $(STATICEXE_LINK) $(LINK_OPTS) $(THR_FLAGS) $^ -o $@ -L$(LIB) $(LINK_LIBS)
-$(RM) $(GPRE_CURRENT)
(cd $(@D); $(LN) $(@F) $(notdir $(GPRE_CURRENT)))
--- a/builds/posix/Makefile.in.static.gpre
+++ b/builds/posix/Makefile.in.static.gpre
@@ -59,7 +59,7 @@ all : gpre_static
gpre_static : $(GPRE_STATIC)
$(GPRE_STATIC): $(GPRESTATIC_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
+ $(STATICEXE_LINK) $(LINK_OPTS) $(THR_FLAGS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
-$(RM) $(GPRE_CURRENT)
(cd $(@D); $(LN) $(@F) $(notdir $(GPRE_CURRENT)))
--- a/builds/posix/Makefile.in.static.gbak
+++ b/builds/posix/Makefile.in.static.gbak
@@ -59,7 +59,7 @@ Dependencies = $(AllObjects:.o=.d)
gbak_static : $(GBAK_STATIC)
$(GBAK_STATIC) : $(AllObjects) $(LIBFBSTATIC_A)
- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
+ $(STATICEXE_LINK) $(LINK_OPTS) $(THR_FLAGS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
include $(ROOT)/gen/make.shared.targets
--- a/builds/posix/Makefile.in.static.isql
+++ b/builds/posix/Makefile.in.static.isql
@@ -59,7 +59,7 @@ Dependencies = $(AllObjects:.o=.d)
isql_static : $(ISQL_STATIC)
$(ISQL_STATIC): $(ISQL_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
- $(STATICEXE_LINK) $(LINK_OPTS) $(ISQL_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LIBEDITLINE) $(LINK_LIBS) $(ICU_LIBS)
+ $(STATICEXE_LINK) $(LINK_OPTS) $(THR_FLAGS) $(ISQL_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LIBEDITLINE) $(LINK_LIBS) $(ICU_LIBS)
include $(ROOT)/gen/make.shared.targets
--- a/builds/posix/Makefile.in.msgs
+++ b/builds/posix/Makefile.in.msgs
@@ -104,7 +104,7 @@ $(CHECK_MESSAGES): $(CHECK_Objects) $(CO
build_file : $(BUILD_FILE)
$(BUILD_FILE): $(BUILD_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
- $(STATICEXE_LINK) $(LINK_OPTS) $(BUILD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
+ $(STATICEXE_LINK) $(LINK_OPTS) $(THR_FLAGS) $(BUILD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
$(CHMOD_7) $@
--- a/builds/posix/Makefile.in.codes
+++ b/builds/posix/Makefile.in.codes
@@ -61,7 +61,7 @@ $(SRC_ROOT)/misc/codes.cpp: $(SRC_ROOT)/
$(GPRE_CURRENT) $(GPRE_FLAGS) $< $@
$(BIN)/codes$(EXEC_EXT): $(CODES_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
- $(STATICEXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
+ $(STATICEXE_LINK) $(LINK_OPTS) $(THR_FLAGS) $^ -o $@ -L$(LIB) $(LINK_LIBS) $(ICU_LIBS)
# Rebuild ids.h
--- a/builds/posix/Makefile.in.examples
+++ b/builds/posix/Makefile.in.examples
@@ -127,7 +127,7 @@ $(EXAMPLES_DEST)/isql$(EXEC_EXT):
-$(LN) $(ISQL_STATIC) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
$(EXAMPLES_DEST)/empbuild$(EXEC_EXT): $(EMPBLD_Objects) $(COMMON_Objects) $(LIBFBSTATIC_A)
- $(EXE_LINK) $(LINK_OPTS) $(EMPBLD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
+ $(EXE_LINK) $(LINK_OPTS) $(THR_FLAGS) $(EMPBLD_Objects) $(COMMON_Objects) -o $@ -L$(LIB) -lfbstatic $(LINK_LIBS) $(ICU_LIBS)
$(EXAMPLES_DEST)/empbuild.c: $(EXAMPLES_DEST)/empbuild.fdb $(EXAMPLES_DEST)/empbuild.e
--- a/builds/posix/Makefile.in.fbserver
+++ b/builds/posix/Makefile.in.fbserver
@@ -49,7 +49,7 @@ SERVER_Objects = $(addprefix $(OBJ)/, $(
fbserver : $(FB_SUPER_SERVER)
$(FB_SUPER_SERVER): $(SERVER_Objects)
- $(EXE_LINK) $(LINK_OPTS) $^ -o $@ -L$(LIB) $(LIB_GUI) $(LINK_LIBS) $(ICU_LIBS)
+ $(EXE_LINK) $(LINK_OPTS) $(THR_FLAGS) $^ -o $@ -L$(LIB) $(LIB_GUI) $(LINK_LIBS) $(ICU_LIBS)
AllObjects = $(SERVER_Objects)