[Mesa-dev] [PATCH 1/4] mklib: Add support for -whole-archive/-no-whole-archive.
Christopher James Halse Rogers
christopher.halse.rogers at canonical.com
Fri Aug 26 01:03:20 PDT 2011
This is useful for building convenience libraries before combining them into
shared libraries, like dricore
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers at canonical.com>
---
bin/mklib | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/bin/mklib b/bin/mklib
index 2c7ed38..b4b5dd5 100755
--- a/bin/mklib
+++ b/bin/mklib
@@ -124,6 +124,11 @@ usage() {
echo " -noprefix don't prefix library name with 'lib' nor add any suffix"
echo ' -exports FILE only export the symbols listed in FILE'
echo ' -id NAME Sets the id of the dylib (Darwin)'
+ echo ' -whole-archive OBJS1 OBJS2 ... -no-whole-archive'
+ echo ' Include every object file in archives OBJS1 OBJS2 ...'
+ echo ' rather than searching them for required symbols.'
+ echo ' Useful for including convinience libraries in shared'
+ echo ' objects.'
echo ' -h, --help display this information and exit'
}
@@ -194,6 +199,18 @@ do
-Wl*)
DEPS="$DEPS $1"
;;
+ '-whole-archive')
+ shift
+ while [ "x$1" != "x-no-whole-archive" ] ; do
+ if [ "x$1" = "x" ] ; then
+ echo "mklib: End of arguments reached when scanning for -no-whole-archive"
+ echo " Arguments to -whole-archive must be terminated by -no-whole-archive"
+ exit 1
+ fi
+ WHOLE_ARCHIVE="$WHOLE_ARCHIVE $1"
+ shift
+ done
+ ;;
-pthread)
# this is a special case (see bugzilla 10876)
DEPS="$DEPS $1"
@@ -271,6 +288,11 @@ if [ $STATIC = 1 ]; then
OBJECTS=$NEWOBJECTS
fi
+if [ "x$WHOLE_ARCHIVE" != "x" ] ; then
+ ARCHIVE_TEMP=$(mktemp -d)
+ NEW_OBJECTS=`expand_archives ${ARCHIVE_TEMP} ${WHOLE_ARCHIVE}`
+ OBJECTS="${OBJECTS} ${NEW_OBJECTS}"
+fi
#
# Error checking
@@ -1010,3 +1032,13 @@ if [ ${INSTALLDIR} != "." ] ; then
mv ${FINAL_BINS} ${INSTALLDIR}/
fi
fi
+
+#
+# Clean up temporary directory
+#
+if [ ${ARCHIVE_TEMP} ] ; then
+ if [ -d ${ARCHIVE_TEMP} ] ; then
+ echo "Removing directory ${ARCHIVE_TEMP}"
+ rm -r ${ARCHIVE_TEMP}
+ fi
+fi
--
1.7.5.4
More information about the mesa-dev
mailing list