Hi,

while packaging strongSwan for Fedora I came across a build problem on Fedora 
13.

The default behaviour for ld allows users to 'indirectly' link to required
objects/libraries through intermediate objects/libraries. While this is
convenient, it can also be dangerous because it makes your program's
dependencies tied to the dependencies of other objects.

Beginning with Fedora 13 this will be changed and you need to explicitly
link all dependent libraries.

More details can be found here:
http://fedoraproject.org/wiki/UnderstandingDSOLinkChange

The attached patch fixes all such cases in strongSwan.

It would be nice if you could apply this patch to strongSwan upstream.

Kind regards,

Gerd
From 7b88a0937d29f2500e2590ededab74ea315b3955 Mon Sep 17 00:00:00 2001
From: Gerd von Egidy <[email protected]>
Date: Sun, 14 Mar 2010 22:01:17 +0100
Subject: [PATCH] Don't indirectly link dependent libraries.

The default behaviour for ld allows users to 'indirectly' link to required
objects/libraries through intermediate objects/libraries. While this is
convenient, it can also be dangerous because it makes your program's
dependencies tied to the dependencies of other objects.

Beginning with Fedora 13 this will be changed and you need to explicitly
link all dependent libraries.

More details can be found here:
http://fedoraproject.org/wiki/UnderstandingDSOLinkChange

This patch fixes all such cases in strongSwan.
---
 src/checksum/Makefile.am |    2 +-
 src/manager/Makefile.am  |    2 +-
 src/medsrv/Makefile.am   |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/checksum/Makefile.am b/src/checksum/Makefile.am
index d0413e6..214577e 100644
--- a/src/checksum/Makefile.am
+++ b/src/checksum/Makefile.am
@@ -5,7 +5,7 @@ nodist_libchecksum_la_SOURCES = checksum.c
 libchecksum_la_LDFLAGS = -module -avoid-version
 
 checksum_builder_SOURCES = checksum_builder.c
-checksum_builder_LDADD = $(top_builddir)/src/libstrongswan/libstrongswan.la
+checksum_builder_LDADD = $(top_builddir)/src/libstrongswan/libstrongswan.la $(DLLIB)
 
 BUILT_SOURCES = checksum.c
 CLEANFILES = checksum.c
diff --git a/src/manager/Makefile.am b/src/manager/Makefile.am
index e6c31e9..98e50d8 100644
--- a/src/manager/Makefile.am
+++ b/src/manager/Makefile.am
@@ -10,7 +10,7 @@ controller/control_controller.c controller/control_controller.h \
 controller/config_controller.c controller/config_controller.h \
 controller/gateway_controller.c controller/gateway_controller.h
 
-manager_fcgi_LDADD = $(top_builddir)/src/libfast/libfast.la ${xml_LIBS}
+manager_fcgi_LDADD = $(top_builddir)/src/libstrongswan/libstrongswan.la $(top_builddir)/src/libfast/libfast.la ${xml_LIBS}
 
 INCLUDES = -I$(top_srcdir)/src/libstrongswan -I$(top_srcdir)/src/libfast ${xml_CFLAGS}
 AM_CFLAGS = -rdynamic \
diff --git a/src/medsrv/Makefile.am b/src/medsrv/Makefile.am
index 9f5c9e2..0700c05 100644
--- a/src/medsrv/Makefile.am
+++ b/src/medsrv/Makefile.am
@@ -7,7 +7,7 @@ main.c filter/auth_filter.c filter/auth_filter.h \
 controller/user_controller.c controller/user_controller.h \
 controller/peer_controller.c controller/peer_controller.h
 
-medsrv_fcgi_LDADD = $(top_builddir)/src/libfast/libfast.la
+medsrv_fcgi_LDADD = $(top_srcdir)/src/libstrongswan/libstrongswan.la $(top_builddir)/src/libfast/libfast.la
 
 INCLUDES = -I$(top_srcdir)/src/libstrongswan -I$(top_srcdir)/src/libfast
 AM_CFLAGS = -rdynamic \
-- 
1.6.6.2

_______________________________________________
Dev mailing list
[email protected]
https://lists.strongswan.org/mailman/listinfo/dev

Reply via email to