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.
|