[syslog-ng] [Bug 155] Compilation failure in 3.3.3: the Darwin linker does not accept " --whole-archive"

bugzilla at bugzilla.balabit.com bugzilla at bugzilla.balabit.com
Thu Jan 5 10:26:28 CET 2012


https://bugzilla.balabit.com/show_bug.cgi?id=155


Tamás Pál <folti at balabit.hu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |folti at balabit.hu




--- Comment #3 from Tamás Pál <folti at balabit.hu>  2012-01-05 10:26:28 ---
(In reply to comment #1)
> can you check if --enable-dynamic-linking solves this issue?
> 

In OSE, this options are hardcoded into the SYSLOGNG_DEPS_LIBS variable when dynamic linking is disabled, but hardcoded into ivykis' options when dynamic
linking enabled and the internal ivykis source used.
Either he has to use a separate ivykis or we have to make optional the --whole-archive options, like with this patch:

diff --git a/configure.in b/configure.in
index ed12a8e..71a8f06 100644
--- a/configure.in
+++ b/configure.in
@@ -220,6 +220,15 @@ AC_PROG_MAKE_SET
 PKG_PROG_PKG_CONFIG
 LT_INIT([dlopen disable-static])

+WHOLE_ARCHIVE="-Wl,--whole-archive"
+NO_WHOLE_ARCHIVE="-Wl,--no-whole-archive"
+case "$ostype" in
+       Darwin) 
+               WHOLE_ARCHIVE=
+               NO_WHOLE_ARCHIVE=
+               ;;
+esac
+
 dnl ***************************************************************************
 dnl Validate yacc

@@ -737,12 +746,12 @@ if test "x$with_ivykis" = "xinternal"; then
                # these can only be used in lib as it assumes
                # the current directory just one below ivykis

-               IVYKIS_LIBS="-Wl,--whole-archive -L\$(top_builddir)/lib/ivykis/lib -livykis -L\$(top_builddir)/lib/ivykis/modules -livykis-modules
-Wl,--no-whole-archive"
+               IVYKIS_LIBS="$WHOLE_ARCHIVE -L\$(top_builddir)/lib/ivykis/lib -livykis -L\$(top_builddir)/lib/ivykis/modules -livykis-modules
$NO_WHOLE_ARCHIVE"
                IVYKIS_CFLAGS="-I\$(top_srcdir)/lib/ivykis/lib/include -I\$(top_builddir)/lib/ivykis/lib/include -I\$(top_srcdir)/lib/ivykis/modules/include"
                IVYKIS_SUBDIRS=ivykis

                # LIBS to use when libtool is not applicable (when linking the main syslog-ng executable in mixed linking mode)
-               IVYKIS_NO_LIBTOOL_LIBS="-Wl,--whole-archive -L\$(top_builddir)/lib/ivykis/lib/.libs -livykis -L\$(top_builddir)/lib/ivykis/modules/.libs
-livykis-modules -Wl,--no-whole-archive"
+               IVYKIS_NO_LIBTOOL_LIBS="$WHOLE_ARCHIVE -L\$(top_builddir)/lib/ivykis/lib/.libs -livykis -L\$(top_builddir)/lib/ivykis/modules/.libs
-livykis-modules $NO_WHOLE_ARCHIVE"
        else
                AC_MSG_ERROR([Internal ivykis sources not found in lib/ivykis. This is a hard dependency, unable to build syslog-ng without them.])
        fi
@@ -1004,7 +1013,7 @@ if test "x$linking_mode" = "xdynamic"; then
        # syslog-ng binary is linked with the default link command (e.g. libtool)
        SYSLOGNG_LINK='$(LINK)'
 else
-       SYSLOGNG_DEPS_LIBS="$LIBS $BASE_LIBS $RESOLV_LIBS $LD_START_STATIC -Wl,--whole-archive $GLIB_LIBS $EVTLOG_LIBS $PCRE_LIBS $REGEX_LIBS
-Wl,--no-whole-archive $IVYKIS_NO_LIBTOOL_LIBS $LD_END_STATIC $LIB
+       SYSLOGNG_DEPS_LIBS="$LIBS $BASE_LIBS $RESOLV_LIBS $LD_START_STATIC $WHOLE_ARCHIVE $GLIB_LIBS $EVTLOG_LIBS $PCRE_LIBS $REGEX_LIBS $NO_WHOLE_ARCHIVE
$IVYKIS_NO_LIBTOOL_LIBS $LD_END_STATIC $LIBCAP_LIBS $
        TOOL_DEPS_LIBS="$LIBS $BASE_LIBS $GLIB_LIBS $EVTLOG_LIBS $RESOLV_LIBS $LIBCAP_LIBS $PCRE_LIBS $REGEX_LIBS $IVYKIS_LIBS $DL_LIBS"
        CORE_DEPS_LIBS=""



-- 
Configure bugmail: https://bugzilla.balabit.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the syslog-ng mailing list