Relationship Graph
View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001616 | SOGo | Backend General | public | 2012-02-06 20:48 | 2012-10-25 18:17 |
Reporter | dekkers | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 1.3.11 | ||||
Fixed in Version | 2.0.2 | ||||
Summary | 0001616: Correctly link libraries that are used and don't link unused libraries | ||||
Description | SOPE and SOGo doesn't link libraries correctly: Libraries that are used aren't linked and some unused libraries are linked. This results in that the shared objects don't have the correct dependencies and that can give a lot of problems. An example is that SOGo doesn't build anymore when SOPE is changed to use GnuTLS: SOGo uses OpenSSL but doesn't link to it directly, the only reason it works is because another dependency (SOPE) does link to OpenSSL. When applying the linking patches to SOGo and SOPE my GnuTLS can also be applied without any problem. Something else that I found out is that xmlrpc was actually linked but not used by any code at all, so that doesn't have to build anymore/can be removed from SOPE if we only want code used by SOGo. This also gets rid of lots of dpkg-shlibdeps warnings when building debian packages. | ||||
Tags | No tags attached. | ||||
related to | 0001615 | resolved | Correctly link libraries that are used and don't link unused libraries |
2012-02-06 20:48
|
0003-link-everything-correctly.patch (3,812 bytes)
From: Jeroen Dekkers <jeroen@dekkers.ch> Date: Wed, 7 Dec 2011 21:11:45 +0100 Subject: link-everything-correctly --- Main/GNUmakefile.preamble | 2 +- OGoContentStore/GNUmakefile.preamble | 4 +++- SOPE/GDLContentStore/GNUmakefile.preamble | 3 +-- SOPE/NGCards/GNUmakefile.preamble | 3 +-- SoObjects/SOGo/GNUmakefile.preamble | 4 ++-- SoObjects/common.make | 2 +- UI/SOGoUI/GNUmakefile.preamble | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Main/GNUmakefile.preamble b/Main/GNUmakefile.preamble index 7614f20..675b591 100644 --- a/Main/GNUmakefile.preamble +++ b/Main/GNUmakefile.preamble @@ -25,4 +25,4 @@ $(SOGOD)_TOOL_LIBS += \ -lNGObjWeb \ -lNGMime -lNGLdap \ -lNGStreams -lNGExtensions -lEOControl \ - -lDOM -lXmlRpc -lSaxObjC + -lDOM -lSaxObjC diff --git a/OGoContentStore/GNUmakefile.preamble b/OGoContentStore/GNUmakefile.preamble index 7a9042c..b2d9374 100644 --- a/OGoContentStore/GNUmakefile.preamble +++ b/OGoContentStore/GNUmakefile.preamble @@ -6,7 +6,9 @@ libOGoContentStore_LIBRARIES_DEPEND_UPON += \ -lNGCards \ -lNGExtensions \ -lEOControl \ - -lSaxObjC + -lSaxObjC \ + -lgnustep-base \ + -lobjc ADDITIONAL_INCLUDE_DIRS += -I. -I.. -I../SOPE -I../SoObjects diff --git a/SOPE/GDLContentStore/GNUmakefile.preamble b/SOPE/GDLContentStore/GNUmakefile.preamble index 58c1401..6c900d3 100644 --- a/SOPE/GDLContentStore/GNUmakefile.preamble +++ b/SOPE/GDLContentStore/GNUmakefile.preamble @@ -12,8 +12,7 @@ ADDITIONAL_INCLUDE_DIRS += -I. -I.. libGDLContentStore_LIBRARIES_DEPEND_UPON += \ -lGDLAccess \ -lNGExtensions -lEOControl \ - -lDOM -lSaxObjC \ - -lgnustep-base + -lgnustep-base -lobjc GDLContentStore_LIBRARIES_DEPEND_UPON += \ -framework GDLAccess \ diff --git a/SOPE/NGCards/GNUmakefile.preamble b/SOPE/NGCards/GNUmakefile.preamble index e178ea5..6fc0b52 100644 --- a/SOPE/NGCards/GNUmakefile.preamble +++ b/SOPE/NGCards/GNUmakefile.preamble @@ -20,9 +20,8 @@ ADDITIONAL_INCLUDE_DIRS += \ libNGCards_LIBRARIES_DEPEND_UPON += \ -lNGExtensions \ -lEOControl \ - -lDOM \ -lSaxObjC \ - -lgnustep-base + -lgnustep-base -lobjc -lm NGCards_LIBRARIES_DEPEND_UPON += \ -framework NGExtensions -framework EOControl \ diff --git a/SoObjects/SOGo/GNUmakefile.preamble b/SoObjects/SOGo/GNUmakefile.preamble index ee71f35..55dd2be 100644 --- a/SoObjects/SOGo/GNUmakefile.preamble +++ b/SoObjects/SOGo/GNUmakefile.preamble @@ -21,9 +21,9 @@ SOGo_LIBRARIES_DEPEND_UPON += \ -lNGCards \ -lNGMime \ -lNGStreams -lNGExtensions -lEOControl \ - -lXmlRpc -lDOM -lSaxObjC \ + -lDOM -lSaxObjC \ -lNGLdap -lSBJson \ - -lGDLContentStore + -lGDLContentStore -lcrypto -lgnustep-base -lobjc -ldl ifeq ($(findstring openbsd, $(GNUSTEP_HOST_OS)), openbsd) SOGo_LIBRARIES_DEPEND_UPON += -lcrypto diff --git a/SoObjects/common.make b/SoObjects/common.make index f28886d..8dc2d8c 100644 --- a/SoObjects/common.make +++ b/SoObjects/common.make @@ -31,6 +31,6 @@ BUNDLE_LIBS += \ -lNGObjWeb \ -lNGCards -lNGMime -lNGLdap \ -lNGStreams -lNGExtensions -lEOControl \ - -lXmlRpc -lDOM -lSaxObjC -lSBJson + -lDOM -lSaxObjC -lSBJson ADDITIONAL_BUNDLE_LIBS += $(BUNDLE_LIBS) diff --git a/UI/SOGoUI/GNUmakefile.preamble b/UI/SOGoUI/GNUmakefile.preamble index d54766e..9288140 100644 --- a/UI/SOGoUI/GNUmakefile.preamble +++ b/UI/SOGoUI/GNUmakefile.preamble @@ -9,8 +9,8 @@ endif libSOGoUI_LIBRARIES_DEPEND_UPON += \ -lNGObjWeb \ -lNGMime \ - -lNGStreams -lNGExtensions -lEOControl \ - -lXmlRpc -lDOM -lSaxObjC -lWOExtensions + -lNGExtensions -lEOControl \ + -lSaxObjC -lgnustep-base -lSOGo -lobjc SYSTEM_LIB_DIR += -L/usr/local/lib -L/usr/lib ADDITIONAL_INCLUDE_DIRS += -I../../SoObjects -- |
See also Bug 0001615 |
|
I am a bit surprised that you had to add an explicit link to libgnustep-base and libobjc, as I would expect the GNUstep makefiles to take care of this... |
|
Regarding the last comment: it makes sense since the idea is to link against gnustep when libraries are making use of GNUstep symbols, bot not specifically when they provide their own set of symbols. However, in general, it's very unlikely since most classes in most libraries will be child classes of NSObject. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2012-02-06 20:48 | dekkers | New Issue | |
2012-02-06 20:48 | dekkers | File Added: 0003-link-everything-correctly.patch | |
2012-02-07 10:28 | Christian Mack | Note Added: 0003377 | |
2012-02-07 13:53 |
|
Note Added: 0003380 | |
2012-02-09 08:04 | Christian Mack | Relationship added | related to 0001615 |
2012-10-25 18:16 |
|
Note Added: 0004709 | |
2012-10-25 18:17 |
|
Status | new => resolved |
2012-10-25 18:17 |
|
Fixed in Version | => 2.0.2 |
2012-10-25 18:17 |
|
Resolution | open => fixed |
2012-10-25 18:17 |
|
Assigned To | => wsourdeau |