Changes by: cha0smaster
Update of /cvsroot/linux-ntfs/ntfsprogs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9496
Modified Files:
ChangeLog Makefile.in NEWS aclocal.m4 config.guess config.h.in
config.sub configure configure.ac ltmain.sh
Log Message:
- Add new utility - ntfsmount. It's a FUSE module that rely on libntfs. So,
you need FUSE to compile it, xattr is also highly recommended. This module
support file overwrite changing it size and can list/read/write/add/remove
named data streams via xattr interface.
- Update auto{make,conf} stuff respectively.
Index: ChangeLog
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/ChangeLog,v
retrieving revision 1.232
retrieving revision 1.233
diff -u -p -r1.232 -r1.233
--- ChangeLog 2 Jul 2005 18:30:46 -0000 1.232
+++ ChangeLog 3 Jul 2005 00:18:37 -0000 1.233
@@ -3,9 +3,11 @@ xx/xx/xxxx - 1.10.1-WIP
- ntfscp: fix signal hanling: handle both SIGTERM and SIGINT, print
correct message. (Yura)
- Update manual pages for ntfsprogs, ntfsclone, ntfsresize. (Szaka)
- - Detect and hint users if the destination fs doesn't support
+ - ntfsclone: detect and hint users if the destination fs doesn't support
sparse files. (Szaka)
- Fix memory managament error in ntfs_inode_close. (Yura)
+ - Add new utility - ntfsmount. It's a FUSE module that
+ rely on libntfs. (Yura)
20/06/2005 - 1.10.0 - Lots of new features, enhancements, and bug fixes.
Index: Makefile.in
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/Makefile.in,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -p -r1.31 -r1.32
--- Makefile.in 20 Jun 2005 14:31:31 -0000 1.31
+++ Makefile.in 3 Jul 2005 00:18:37 -0000 1.32
@@ -100,11 +100,15 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENABLE_FUSE_MODULE_FALSE = @ENABLE_FUSE_MODULE_FALSE@
+ENABLE_FUSE_MODULE_TRUE = @ENABLE_FUSE_MODULE_TRUE@
ENABLE_GNOME_VFS_FALSE = @ENABLE_GNOME_VFS_FALSE@
ENABLE_GNOME_VFS_TRUE = @ENABLE_GNOME_VFS_TRUE@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
+FUSE_MODULE_CFLAGS = @FUSE_MODULE_CFLAGS@
+FUSE_MODULE_LIBS = @FUSE_MODULE_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -140,6 +144,7 @@ ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
all_includes = @all_includes@
all_libraries = @all_libraries@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
Index: NEWS
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/NEWS,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -p -r1.23 -r1.24
--- NEWS 20 Jun 2005 14:31:39 -0000 1.23
+++ NEWS 3 Jul 2005 00:18:38 -0000 1.24
@@ -1,6 +1,11 @@
Current news
============
+Add new utility - ntfsmount. It's a FUSE module that rely on libntfs. So,
+you need FUSE to compile it, xattr is also highly recommended. This module
+support file overwrite changing it size and can list/read/write/add/remove
+named data streams via xattr interface. (Yura)
+
Attribute resize code for normal and sparse files is completed. Thus, ntfscp
should always successfully overwrite any normal or sparse file even if file
size is changed.
Index: aclocal.m4
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/aclocal.m4,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -p -r1.24 -r1.25
--- aclocal.m4 20 Jun 2005 14:31:39 -0000 1.24
+++ aclocal.m4 3 Jul 2005 00:18:38 -0000 1.25
@@ -123,7 +123,7 @@ esac
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
+Xsed='sed -e 1s/^X//'
[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
# Same as above, but do not quote variable references.
@@ -191,7 +191,7 @@ if test -n "$RANLIB"; then
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
fi
[...1071 lines suppressed...]
+ ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively you may set the $1_CFLAGS and $1_LIBS environment variables
+to avoid the need to call pkg-config. See the pkg-config man page for
+more details.
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
+ [$4])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
#
Index: config.guess
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/config.guess,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -p -r1.20 -r1.21
--- config.guess 20 Jun 2005 14:31:42 -0000 1.20
+++ config.guess 3 Jul 2005 00:18:38 -0000 1.21
@@ -136,16 +136,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` |
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "${UNAME_MACHINE}" in
- i?86)
- test -z "$VENDOR" && VENDOR=pc
- ;;
- *)
- test -z "$VENDOR" && VENDOR=unknown
- ;;
-esac
-test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse
-
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -835,25 +825,25 @@ EOF
echo ${UNAME_MACHINE}-pc-minix
exit 0 ;;
arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
cris:Linux:*:*)
- echo cris-axis-linux
+ echo cris-axis-linux-gnu
exit 0 ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux
+ echo crisv32-axis-linux-gnu
exit 0 ;;
frv:Linux:*:*)
- echo frv-${VENDOR}-linux
+ echo frv-unknown-linux-gnu
exit 0 ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
mips:Linux:*:*)
eval $set_cc_for_build
@@ -872,7 +862,7 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-${VENDOR}-linux" && exit 0
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
mips64:Linux:*:*)
eval $set_cc_for_build
@@ -891,13 +881,13 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-${VENDOR}-linux" && exit 0
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
ppc:Linux:*:*)
- echo powerpc-${VENDOR}-linux
+ echo powerpc-unknown-linux-gnu
exit 0 ;;
ppc64:Linux:*:*)
- echo powerpc64-${VENDOR}-linux
+ echo powerpc64-unknown-linux-gnu
exit 0 ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -910,34 +900,34 @@ EOF
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="-libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-${VENDOR}-linux${LIBC}
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit 0 ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-${VENDOR}-linux ;;
- PA8*) echo hppa2.0-${VENDOR}-linux ;;
- *) echo hppa-${VENDOR}-linux ;;
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
esac
exit 0 ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-${VENDOR}-linux
+ echo hppa64-unknown-linux-gnu
exit 0 ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit 0 ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-${VENDOR}-linux
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
x86_64:Linux:*:*)
- echo x86_64-${VENDOR}-linux
+ echo x86_64-unknown-linux-gnu
exit 0 ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
@@ -952,18 +942,18 @@ EOF
p'`
case "$ld_supported_targets" in
elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux"
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
;;
a.out-i386-linux)
- echo "${UNAME_MACHINE}-${VENDOR}-linuxaout"
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
exit 0 ;;
coff-i386)
- echo "${UNAME_MACHINE}-${VENDOR}-linuxcoff"
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
exit 0 ;;
"")
- # Either a pre-BFD a.out linker (linuxoldld) or
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
# one that does not give us useful --help.
- echo "${UNAME_MACHINE}-${VENDOR}-linuxoldld"
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
exit 0 ;;
esac
# Determine whether the default compiler is a.out or elf
@@ -992,7 +982,7 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}" | sed 's/linux-gnu/linux/' && exit 0
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;;
i*86:DYNIX/ptx:4*:*)
Index: config.h.in
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/config.h.in,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -p -r1.18 -r1.19
--- config.h.in 20 Jun 2005 14:31:42 -0000 1.18
+++ config.h.in 3 Jul 2005 00:18:38 -0000 1.19
@@ -95,6 +95,9 @@
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
+/* Define to 1 if you have the `setxattr' function. */
+#undef HAVE_SETXATTR
+
/* Define to 1 if `stat' has the bug that it succeeds when given the
zero-length file name argument. */
#undef HAVE_STAT_EMPTY_STRING_BUG
Index: config.sub
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/config.sub,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -p -r1.20 -r1.21
--- config.sub 20 Jun 2005 14:31:42 -0000 1.20
+++ config.sub 3 Jul 2005 00:18:38 -0000 1.21
@@ -1172,7 +1172,7 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
@@ -1205,6 +1205,9 @@ case $os in
-linux-dietlibc)
os=-linux-dietlibc
;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
-sunos5*)
os=`echo $os | sed -e 's|sunos5|solaris2|'`
;;
Index: configure
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/configure,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -p -r1.81 -r1.82
--- configure 20 Jun 2005 14:31:42 -0000 1.81
+++ configure 3 Jul 2005 00:18:38 -0000 1.82
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for ntfsprogs 1.10.0.
+# Generated by GNU Autoconf 2.59 for ntfsprogs 1.10.1-WIP.
#
# Report bugs to <lin...@li...>.
#
@@ -423,8 +423,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='ntfsprogs'
PACKAGE_TARNAME='ntfsprogs'
[...2367 lines suppressed...]
+ntfsprogs config.status 1.10.1-WIP
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -23793,10 +24301,15 @@ s,@FFLAGS@,$FFLAGS,;t t
s,@ac_ct_F77@,$ac_ct_F77,;t t
s,@LIBTOOL@,$LIBTOOL,;t t
s,@PKG_CONFIG@,$PKG_CONFIG,;t t
+s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
s,@LIBNTFS_GNOMEVFS_CFLAGS@,$LIBNTFS_GNOMEVFS_CFLAGS,;t t
s,@LIBNTFS_GNOMEVFS_LIBS@,$LIBNTFS_GNOMEVFS_LIBS,;t t
s,@ENABLE_GNOME_VFS_TRUE@,$ENABLE_GNOME_VFS_TRUE,;t t
s,@ENABLE_GNOME_VFS_FALSE@,$ENABLE_GNOME_VFS_FALSE,;t t
+s,@FUSE_MODULE_CFLAGS@,$FUSE_MODULE_CFLAGS,;t t
+s,@FUSE_MODULE_LIBS@,$FUSE_MODULE_LIBS,;t t
+s,@ENABLE_FUSE_MODULE_TRUE@,$ENABLE_FUSE_MODULE_TRUE,;t t
+s,@ENABLE_FUSE_MODULE_FALSE@,$ENABLE_FUSE_MODULE_FALSE,;t t
s,@all_includes@,$all_includes,;t t
s,@all_libraries@,$all_libraries,;t t
s,@AUTODIRS@,$AUTODIRS,;t t
Index: configure.ac
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/configure.ac,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -p -r1.59 -r1.60
--- configure.ac 28 Jun 2005 20:53:13 -0000 1.59
+++ configure.ac 3 Jul 2005 00:18:39 -0000 1.60
@@ -75,6 +75,12 @@ AC_ARG_ENABLE(gnome-vfs,
enable_gnome_vfs=auto
)
+AC_ARG_ENABLE(fuse-module,
+ AS_HELP_STRING(--disable-fuse-module,omit FUSE 'libntfs'
+ interface (default=detect)), ,
+ enable_fuse_module=auto
+)
+
AC_ARG_ENABLE(really-static,
AS_HELP_STRING(--enable-really-static,create completely static
binaries for the utilities), ,
@@ -128,6 +134,20 @@ if test "$enable_gnome_vfs" != "no"; the
fi
AM_CONDITIONAL(ENABLE_GNOME_VFS, $compile_gnome_vfs)
+# Autodetect whether to build FUSE module or not.
+compile_fuse_module=false
+if test "$enable_fuse_module" != "no"; then
+ PKG_CHECK_MODULES(FUSE_MODULE, [fuse], [ compile_fuse_module=true ],
+ [
+ if test "$enable_fuse_module" = "yes"; then
+ AC_MSG_ERROR([Linux-NTFS FUSE module requires fuse library.])
+ else
+ AC_MSG_WARN([Linux-NTFS FUSE module requires fuse library.])
+ fi
+ ])
+fi
+AM_CONDITIONAL(ENABLE_FUSE_MODULE, $compile_fuse_module)
+
# add --with-extra-includes and --with-extra-libs switch to ./configure
all_libraries="$all_libraries $USER_LDFLAGS"
all_includes="$all_includes $USER_INCLUDES"
@@ -223,7 +243,8 @@ AC_FUNC_STRFTIME
AC_FUNC_UTIME_NULL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([atexit fdatasync hasmntopt memmove memset regcomp setlocale \
- strcasecmp strchr strdup strerror strtol strtoul utime mbsinit])
+ strcasecmp strchr strdup strerror strtol strtoul utime mbsinit \
+ setxattr])
# Makefiles to be created by configure.
AC_CONFIG_FILES([
Index: ltmain.sh
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/ltmain.sh,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -p -r1.17 -r1.18
--- ltmain.sh 20 Jun 2005 14:31:47 -0000 1.17
+++ ltmain.sh 3 Jul 2005 00:18:39 -0000 1.18
@@ -17,7 +17,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -43,8 +43,8 @@ EXIT_FAILURE=1
PROGRAM=ltmain.sh
PACKAGE=libtool
-VERSION=1.5.14
-TIMESTAMP=" (1.1220.2.195 2005/02/12 12:12:33)"
+VERSION=1.5.18
+TIMESTAMP=" (1.1220.2.245 2005/05/16 08:55:27)"
# See if we are running on zsh, and set the options which allow our
# commands through without removal of \ escapes.
@@ -112,8 +112,9 @@ if test "${LANG+set}" = set; then
fi
# Make sure IFS has a sensible default
-: ${IFS="
-"}
+lt_nl='
+'
+IFS=" $lt_nl"
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
$echo "$modename: not configured to build any kind of library" 1>&2
@@ -250,37 +251,14 @@ func_extract_an_archive ()
{
f_ex_an_ar_dir="$1"; shift
f_ex_an_ar_oldlib="$1"
- f_ex_an_ar_lib=`$echo "X$f_ex_an_ar_oldlib" | $Xsed -e 's%^.*/%%'`
$show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
$run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
:
else
- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
- $show "cp $f_ex_an_ar_oldlib $f_ex_an_ar_dir/$f_ex_an_ar_lib"
- $run eval "cp \$f_ex_an_ar_oldlib \$f_ex_an_ar_dir/\$f_ex_an_ar_lib"
- $AR t "$f_ex_an_ar_oldlib" | sort | uniq -c \
- | $EGREP -v '^[ ]*1[ ]' | while read count name
- do
- i=1
- while test "$i" -le "$count"
- do
- # Put our $i before any first dot (extension)
- # Never overwrite any file
- name_to="$name"
- while test "X$name_to" = "X$name" || test -f "$f_ex_an_ar_dir/$name_to"
- do
- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
- done
- $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_lib '$name' && $mv '$name' '$name_to')"
- $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_lib '$name' && $mv '$name' '$name_to' && $AR -d \$f_ex_an_ar_lib '$name')" || exit $?
- i=`expr $i + 1`
- done
- done
- $show "$rm $f_ex_an_ar_dir/$f_ex_an_ar_lib"
- $run eval "$rm \$f_ex_an_ar_dir/\$f_ex_an_ar_lib"
+ $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
+ exit $EXIT_FAILURE
fi
}
@@ -757,6 +735,15 @@ if test -z "$show_help"; then
esac
done
+ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+ case $qlibobj in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qlibobj="\"$qlibobj\"" ;;
+ esac
+ if test "X$libobj" != "X$qlibobj"; then
+ $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+ exit $EXIT_FAILURE
+ fi
objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
if test "X$xdir" = "X$obj"; then
@@ -829,12 +816,17 @@ compiler."
$run $rm $removelist
exit $EXIT_FAILURE
fi
- $echo $srcfile > "$lockfile"
+ $echo "$srcfile" > "$lockfile"
fi
if test -n "$fix_srcfile_path"; then
eval srcfile=\"$fix_srcfile_path\"
fi
+ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+ case $qsrcfile in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qsrcfile="\"$qsrcfile\"" ;;
+ esac
$run $rm "$libobj" "${libobj}T"
@@ -856,10 +848,10 @@ EOF
fbsd_hideous_sh_bug=$base_compile
if test "$pic_mode" != no; then
- command="$base_compile $srcfile $pic_flag"
+ command="$base_compile $qsrcfile $pic_flag"
else
# Don't build PIC code
- command="$base_compile $srcfile"
+ command="$base_compile $qsrcfile"
fi
if test ! -d "${xdir}$objdir"; then
@@ -939,9 +931,9 @@ EOF
if test "$build_old_libs" = yes; then
if test "$pic_mode" != yes; then
# Don't build PIC code
- command="$base_compile $srcfile"
+ command="$base_compile $qsrcfile"
else
- command="$base_compile $srcfile $pic_flag"
+ command="$base_compile $qsrcfile $pic_flag"
fi
if test "$compiler_c_o" = yes; then
command="$command -o $obj"
@@ -1365,6 +1357,8 @@ EOF
;;
darwin_framework)
compiler_flags="$compiler_flags $arg"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
prev=
continue
;;
@@ -1429,6 +1423,8 @@ EOF
-framework)
prev=darwin_framework
compiler_flags="$compiler_flags $arg"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
continue
;;
@@ -2852,12 +2848,12 @@ EOF
*) continue ;;
esac
case " $deplibs " in
- *" $depdepl "*) ;;
- *) deplibs="$depdepl $deplibs" ;;
+ *" $path "*) ;;
+ *) deplibs="$path $deplibs" ;;
esac
case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$deplibs $path" ;;
+ *" $depdepl "*) ;;
+ *) deplibs="$depdepl $deplibs" ;;
esac
done
fi # link_all_deplibs != no
@@ -3124,7 +3120,7 @@ EOF
case $current in
0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
*)
- $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
+ $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
exit $EXIT_FAILURE
;;
@@ -3133,7 +3129,7 @@ EOF
case $revision in
0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
*)
- $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
+ $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
exit $EXIT_FAILURE
;;
@@ -3142,7 +3138,7 @@ EOF
case $age in
0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
*)
- $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
+ $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
$echo "$modename: \`$vinfo' is not valid version information" 1>&2
exit $EXIT_FAILURE
;;
@@ -5091,6 +5087,63 @@ fi\
if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
cmds=$old_archive_from_new_cmds
else
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ $echo "X$obj" | $Xsed -e 's%^.*/%%'
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "copying selected object files to avoid basename conflicts..."
+
+ if test -z "$gentop"; then
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "$mkdir $gentop"
+ $run $mkdir "$gentop"
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ fi
+
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ counter=`expr $counter + 1`
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ $run ln "$obj" "$gentop/$newobj" ||
+ $run cp "$obj" "$gentop/$newobj"
+ oldobjs="$oldobjs $gentop/$newobj"
+ ;;
+ *) oldobjs="$oldobjs $obj" ;;
+ esac
+ done
+ fi
+
eval cmds=\"$old_archive_cmds\"
if len=`expr "X$cmds" : ".*"` &&
@@ -5104,20 +5157,7 @@ fi\
objlist=
concat_cmds=
save_oldobjs=$oldobjs
- # GNU ar 2.10+ was changed to match POSIX; thus no paths are
- # encoded into archives. This makes 'ar r' malfunction in
- # this piecewise linking case whenever conflicting object
- # names appear in distinct ar calls; check, warn and compensate.
- if (for obj in $save_oldobjs
- do
- $echo "X$obj" | $Xsed -e 's%^.*/%%'
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
- $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
- AR_FLAGS=cq
- fi
+
# Is there a better way of finding the last object in the list?
for obj in $save_oldobjs
do
@@ -6026,14 +6066,14 @@ relink_command=\"$relink_command\""
fi
# Now prepare to actually exec the command.
- exec_cmd="\"\$cmd\"$args"
+ exec_cmd="\$cmd$args"
else
# Display what would be done.
if test -n "$shlibpath_var"; then
eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
$echo "export $shlibpath_var"
fi
- eval \$echo \"\$cmd\"$args
+ $echo "$cmd$args"
exit $EXIT_SUCCESS
fi
;;
|