Print

Print


On Mar 13, 2011, at 1:01 AM, Yang, Wei wrote:

> Hi Brian,
> 
> If I use configure.classic, I only get libXrdFfs.a. Also, libXrdFfs doesn't depend on fuse. Only the final xrootdfsd binary depends on fuse.
> 

If FUSE is only for xrootdfsd, then we ought to apply the below patch.  (Also fixed the ordering of XrdPss deps while I was at it; it may look trivial, but it's necessary to be able to visually compare to the configure.classic Makefile)

Regarding the linking of libXrdFfs: this has been discussed previously.  libtool simply doesn't support this approach: shared library targets can't statically include other library targets.  We hit up against this right before the 3.0.0 release and haven't resolved it.

I would really like to draw all the interdependencies into a picture - I wonder where other gremlins are.

Brian

diff --git a/src/XrdFfs/Makefile.am b/src/XrdFfs/Makefile.am
index 97e06aa..57369b2 100644
--- a/src/XrdFfs/Makefile.am
+++ b/src/XrdFfs/Makefile.am
@@ -42,15 +42,14 @@ libXrdFfs_la_SOURCES = \
         XrdFfsQueue.cc \
         XrdFfsWcache.cc
 
-libXrdFfs_la_LIBADD = ../XrdPosix/libXrdPosix.la \
-                      ../XrdClient/libXrdClient.la \
-                      ../XrdSec/libXrdSec.la \
-                      ../XrdSecsss/libXrdSecsss.la \
-                      ../XrdNet/libXrdNet.la \
-                      ../XrdNet/libXrdNetUtil.la \
-                      ../XrdOuc/libXrdOuc.la \
-                      ../XrdSys/libXrdSys.la \
-                      $(FUSELIB)
-
 xrootdfs_SOURCES = XrdFfsXrootdfs.cc
-xrootdfs_LDADD = libXrdFfs.la
+xrootdfs_LDADD = libXrdFfs.la $(FUSELIB) \
+                 ../XrdPosix/libXrdPosix.la \
+                 ../XrdClient/libXrdClient.la \
+                 ../XrdSec/libXrdSec.la \
+                 ../XrdSecsss/libXrdSecsss.la \
+                 ../XrdNet/libXrdNet.la \
+                 ../XrdNet/libXrdNetUtil.la \
+                 ../XrdOuc/libXrdOuc.la \
+                 ../XrdSys/libXrdSys.la
+
diff --git a/src/XrdPss/Makefile.am b/src/XrdPss/Makefile.am
index 324facc..7edb84b 100644
--- a/src/XrdPss/Makefile.am
+++ b/src/XrdPss/Makefile.am
@@ -20,11 +20,11 @@ libXrdPss_la_SOURCES = \
         XrdPssAio.cc \
         XrdPssConfig.cc
 
-libXrdPss_la_LIBADD =   ../XrdFfs/libXrdFfs.la  \
-                        ../XrdClient/libXrdClient.la \
-                        ../XrdSecsss//libXrdSecsss.la \
-                        ../XrdSec//libXrdSec.la \
+libXrdPss_la_LIBADD =   ../XrdClient/libXrdClient.la  \
+                        ../XrdFfs/libXrdFfs.la \
                         ../XrdNet/libXrdNet.la \
                         ../XrdNet/libXrdNetUtil.la \
                         ../XrdOuc/libXrdOuc.la \
+                        ../XrdSec/libXrdSec.la \
+                        ../XrdSecsss/libXrdSecsss.la \
                         ../XrdSys/libXrdSys.la


> regards,
> Wei Yang  |  [log in to unmask]  |  650-926-3338(O)
> 
> 
> 
> 
> On Mar 12, 2011, at 7:13 PM, Andrew Hanushevsky wrote:
> 
>> Some comments below.
>> 
>> On Sat, 12 Mar 2011, Brian Bockelman wrote:
>> 
>>> Hi,
>>> 
>>> Took the chance to review Lukasz's new RPMs.  Here are my items of concern:
>>> - libXrdPss.so is in the server, but depends on libXrdFfs.so.  Hence, xrootd-server is dependent on xrootd-fuse is dependent on fuse.
>>> - In general, we probably want to remove the dependency on libfuse from libXrdPss.
>> This then was improperly built. No individual shared libary or 
>> executable should directly depend on another xrootd-generated shared 
>> library. This is to make it easy to move things around and greatly aids 
>> in debugging.