Whamcloud - gitweb
LU-3382 build: clean unused link dependencies
[fs/lustre-release.git] / lustre / liblustre / genlib.sh
index 8635478..a80ebeb 100755 (executable)
@@ -11,10 +11,13 @@ set -e
 # FIXME: How to do this cleanly use makefile?
 #
 
-AR=/usr/bin/ar
 # see http://osdir.com/ml/gmane.comp.gnu.binutils.bugs/2006-01/msg00016.php
-LD=gcc
-RANLIB=/usr/bin/ranlib
+ppc64_CPU=`uname -p`
+if [ "x${ppc64_CPU}" = "xppc64" ]; then
+       LD="$CC -m64"
+else
+       LD=$CC
+fi
 
 CWD=`pwd`
 
@@ -22,8 +25,7 @@ SYSIO=$1
 LIBS=$2
 LND_LIBS=$3
 PTHREAD_LIBS=$4
-QUOTA_LIBS=$5
-CAP_LIBS=$6
+CAP_LIBS=$5
 
 if [ ! -f $SYSIO/lib/libsysio.a ]; then
   echo "ERROR: $SYSIO/lib/libsysio.a dosen't exist"
@@ -36,7 +38,7 @@ rm -f liblustre.so
 ALL_OBJS=
 
 build_obj_list() {
-  _objs=`$AR -t $1/$2`
+       _objs=`$AR -t $1/$2 | grep -v SYMDEF | grep -v SORTED`
   for _lib in $_objs; do
     ALL_OBJS=$ALL_OBJS"$1/$_lib ";
   done;
@@ -48,7 +50,7 @@ build_obj_list() {
 sysio_tmp=$CWD/sysio_tmp_`date +%s`
 rm -rf $sysio_tmp
 build_sysio_obj_list() {
-  _objs=`$AR -t $1`
+  _objs=`$AR -t $1 | grep -v SYMDEF | grep -v SORTED`
   mkdir -p $sysio_tmp
   cd $sysio_tmp
   $AR -x $1
@@ -70,23 +72,16 @@ build_obj_list ../fld libfld.a
 build_obj_list ../mgc libmgc.a
 build_obj_list ../ptlrpc libptlrpc.a
 build_obj_list ../obdclass liblustreclass.a
-build_obj_list ../lvfs liblvfs.a
 
 # lnet components libs
 build_obj_list ../../lnet/utils libuptlctl.a
-build_obj_list ../../lnet/libcfs libcfs.a
+build_obj_list ../../libcfs/libcfs libcfs.a
+build_obj_list ../../libcfs/libcfs libcfsutil.a
 if $(echo "$LND_LIBS" | grep "socklnd" >/dev/null) ; then
        build_obj_list ../../lnet/ulnds/socklnd libsocklnd.a
 fi
-if $(echo "$LND_LIBS" | grep "ptllnd" >/dev/null) ; then
-       build_obj_list ../../lnet/ulnds/ptllnd libptllnd.a
-fi
 build_obj_list ../../lnet/lnet liblnet.a
 
-if [ "x$QUOTA_LIBS" != "x" ]; then
-  build_obj_list ../quota libquota.a
-fi
-
 # create static lib lsupport
 rm -f $CWD/liblsupport.a
 $AR -cru $CWD/liblsupport.a $ALL_OBJS
@@ -94,7 +89,7 @@ $RANLIB $CWD/liblsupport.a
 
 # if libsysio is already in our LIBS we don't need to link against it here
 if $(echo "$LIBS" | grep -v -- "-lsysio" >/dev/null) ; then
-  build_sysio_obj_list $SYSIO/lib/libsysio.a
+       build_sysio_obj_list $SYSIO/lib/libsysio.a
 fi
 
 # create static lib lustre
@@ -106,9 +101,14 @@ $RANLIB $CWD/liblustre.a
 rm -f $CWD/liblustre.so
 OS=`uname`
 if test x$OS = xAIX; then
-$LD -shared -o $CWD/liblustre.so $ALL_OBJS -lpthread -Xlinker -bnoipath ../../libsyscall.so
+       $LD $LDFLAGS -shared -o $CWD/liblustre.so $ALL_OBJS -lpthread -Xlinker -bnoipath ../../libsyscall.so
 else
-$LD -shared -o $CWD/liblustre.so $ALL_OBJS $CAP_LIBS $PTHREAD_LIBS
+# using -nostdlib on Ubuntu causes errors such as:
+#./llite_lib.o: In function `liblustre_process_log':
+#/home/brian/rpm/BUILD/lustre-1.8.2.50/lustre/liblustre/llite_lib.c:234: undefined reference to `__stack_chk_fail_local'
+# due to the use of SSP
+#$LD -shared -nostdlib -o $CWD/liblustre.so $ALL_OBJS $CAP_LIBS $PTHREAD_LIBS
+       $LD $LDFLAGS -shared -o $CWD/liblustre.so $ALL_OBJS $CAP_LIBS $PTHREAD_LIBS
 fi
 
 rm -rf $sysio_tmp