[SCM] The rsync repository. - branch master updated

Rsync CVS commit messages rsync-cvs at lists.samba.org
Sat Jun 20 16:42:32 UTC 2020


The branch, master has been updated
       via  73faaab2 Pass --noexecstack to assembler.
       via  9467c1f9 Fix conditional directives in the asm file
       via  04653dab Exclude the asm code when it's not being used.
       via  19617f7b Fix compiling in a separate dir.
       via  b218de27 lib/md5-asm-x86_64.s: fix build with Apple Clang
       via  d4764934 A slightly modified g++/clang++ check.
      from  c225330a Preparing for release of 3.2.0

https://git.samba.org/?p=rsync.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 73faaab26d7db19ae6e04396a6e9d6372ed8e4ad
Author: Wayne Davison <wayne at opencoder.net>
Date:   Sat Jun 20 09:23:56 2020 -0700

    Pass --noexecstack to assembler.

commit 9467c1f9b9b581e3abe78e00cc71de06fc175887
Author: Wayne Davison <wayne at opencoder.net>
Date:   Sat Jun 20 08:44:04 2020 -0700

    Fix conditional directives in the asm file
    
    - Switch .s -> .S to enable the preprocessor.
    - Move some defines from mdigest.h to md-defines.h.
    - Tweak the asm file to use md-defines.h.
    - Add a couple missing .h dependencies in the Makefile.

commit 04653dabc8dff8c85d75ccab57749e0af91a03cb
Author: Wayne Davison <wayne at opencoder.net>
Date:   Sat Jun 20 07:59:26 2020 -0700

    Exclude the asm code when it's not being used.

commit 19617f7b4a423b8262e24111d1edc7a1c422525f
Author: Wayne Davison <wayne at opencoder.net>
Date:   Sat Jun 20 07:58:50 2020 -0700

    Fix compiling in a separate dir.

commit b218de27027673d6bb7842388412f73cde93d210
Author: Caleb Xu <calebcenter at live.com>
Date:   Sat Jun 20 00:12:15 2020 -0400

    lib/md5-asm-x86_64.s: fix build with Apple Clang
    
    The Mach-O x86-64 model doesn't seem to support ".type" and
    ".size" directives in assembly. Add ifdefs that should allow for
    the file to build without issues in Apple Clang.

commit d4764934c35bdff297a03551c583be611cb8c64c
Author: Wayne Davison <wayne at opencoder.net>
Date:   Fri Jun 19 23:23:52 2020 -0700

    A slightly modified g++/clang++ check.

-----------------------------------------------------------------------

Summary of changes:
 Makefile.in                                |  8 +++---
 configure.ac                               | 42 ++++++++++++++----------------
 lib/md-defines.h                           | 15 +++++++++++
 lib/{md5-asm-x86_64.s => md5-asm-x86_64.S} | 16 ++++++++++++
 lib/mdigest.h                              | 15 +----------
 md2man                                     | 11 ++++----
 6 files changed, 62 insertions(+), 45 deletions(-)
 create mode 100644 lib/md-defines.h
 rename lib/{md5-asm-x86_64.s => md5-asm-x86_64.S} (98%)


Changeset truncated at 500 lines:

diff --git a/Makefile.in b/Makefile.in
index 31ddc43b..235b01dc 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -37,7 +37,7 @@ SIMD_x86_64=simd-checksum-x86_64.o lib/md5-asm-x86_64.o
 GENFILES=configure.sh aclocal.m4 config.h.in proto.h proto.h-tstamp rsync.1 rsync.1.html \
 	 rsync-ssl.1 rsync-ssl.1.html rsyncd.conf.5 rsyncd.conf.5.html
 HEADERS=byteorder.h config.h errcode.h proto.h rsync.h ifuncs.h itypes.h inums.h \
-	lib/pool_alloc.h
+	lib/pool_alloc.h lib/mdigest.h lib/md-defines.h
 LIBOBJ=lib/wildmatch.o lib/compat.o lib/snprintf.o lib/mdfour.o lib/md5.o \
 	lib/permstring.o lib/pool_alloc.o lib/sysacls.o lib/sysxattrs.o @LIBOBJS@
 zlib_OBJS=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
@@ -132,10 +132,10 @@ rounding.h: rounding.c rsync.h proto.h
 	@rm -f rounding.out
 
 simd-checksum-x86_64.o: simd-checksum-x86_64.cpp
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $(srcdir)/simd-checksum-x86_64.cpp
+	$(CXX) -I. $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $(srcdir)/simd-checksum-x86_64.cpp
 
-lib/md5-asm-x86_64.o: lib/md5-asm-x86_64.s
-	$(CC) -c -o $@ $(srcdir)/lib/md5-asm-x86_64.s
+lib/md5-asm-x86_64.o: lib/md5-asm-x86_64.S config.h lib/md-defines.h
+	$(CC) -I. -Wa,--noexecstack -c -o $@ $(srcdir)/lib/md5-asm-x86_64.S
 
 tls$(EXEEXT): $(TLS_OBJ)
 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(TLS_OBJ) $(LIBS)
diff --git a/configure.ac b/configure.ac
index d665498d..f6ca5e66 100644
--- a/configure.ac
+++ b/configure.ac
@@ -204,30 +204,28 @@ if test x"$enable_simd" != x"no"; then
     # For x86-64 SIMD, g++ >=5 or clang++ >=7 is required
     if test x"$build_cpu" = x"x86_64"; then
 	CXX_OK=
-	if test x"$CXX" != x""; then
-	    CXX_VERSION=`$CXX --version 2>/dev/null | head -n 1`
-	    case "$CXX_VERSION" in
-	    g++*)
-		CXX_VERSION=`$CXX -dumpversion | sed 's/\..*//g'`
-		if test "$CXX_VERSION" -ge "5"; then
-		    CXX_OK=yes
-		fi
-		;;
-	    *clang*)
-		# $CXX -dumpversion would have been ideal, but is broken on older clang
-		CXX_VERSION=`echo "$CXX_VERSION" | sed 's/.*version //g' | sed 's/\..*//g'`
-		if test "$CXX_VERSION" -ge "7"; then
-		    CXX_OK=yes
-		fi
-		;;
-	    *)
-		CXX_VERSION='Unknown'
-		;;
-	    esac
-	else
+	case "$CXX" in
+	g++|*-g++)
+	    CXX_VERSION=`$CXX -dumpversion | sed 's/\..*//'`
+	    if test "$CXX_VERSION" -ge "5"; then
+		CXX_OK=yes
+	    fi
+	    ;;
+	*clang*)
+	    # -dumpversion is broken on older clang versions, so we need a fallback.
+	    CXX_VERSION=`$CXX -dumpversion 2>/dev/null | sed 's/\..*//'`
+	    if test x"$CXX_VERSION" = x; then
+		CXX_VERSION=`$CXX --version | head -n 1 | sed 's/.*version //' | sed 's/\..*//'`
+	    fi
+	    if test "$CXX_VERSION" -ge "7"; then
+		CXX_OK=yes
+	    fi
+	    ;;
+	*)
 	    CXX='No c++'
 	    CXX_VERSION='Unknown'
-	fi
+	    ;;
+	esac
 	if test x"$CXX_OK" = x"yes"; then
 	    # AC_MSG_RESULT() is called below.
 	    SIMD="$SIMD x86_64"
diff --git a/lib/md-defines.h b/lib/md-defines.h
new file mode 100644
index 00000000..b92e8c07
--- /dev/null
+++ b/lib/md-defines.h
@@ -0,0 +1,15 @@
+/* Keep this simple so both C and ASM can use it */
+
+#define MD4_DIGEST_LEN 16
+#define MD5_DIGEST_LEN 16
+#define MAX_DIGEST_LEN MD5_DIGEST_LEN
+
+#define CSUM_CHUNK 64
+
+#define CSUM_NONE 0
+#define CSUM_MD4_ARCHAIC 1
+#define CSUM_MD4_BUSTED 2
+#define CSUM_MD4_OLD 3
+#define CSUM_MD4 4
+#define CSUM_MD5 5
+#define CSUM_XXH64 6
diff --git a/lib/md5-asm-x86_64.s b/lib/md5-asm-x86_64.S
similarity index 98%
rename from lib/md5-asm-x86_64.s
rename to lib/md5-asm-x86_64.S
index a3126151..4eb884ed 100644
--- a/lib/md5-asm-x86_64.s
+++ b/lib/md5-asm-x86_64.S
@@ -24,12 +24,22 @@
  * show any significant difference in performance, though.
  */
 
+#include "config.h"
+#include "md-defines.h"
+
+#if !defined USE_OPENSSL && CSUM_CHUNK == 64
+
 .text
 .align 16
 
+#ifndef __apple_build_version__
 .globl md5_process_asm
 .type md5_process_asm, at function
 md5_process_asm:
+#else
+.globl _md5_process_asm
+_md5_process_asm:
+#endif
 	push	%rbp
 	push	%rbx
 	push	%r12
@@ -689,5 +699,11 @@ md5_process_asm:
 	pop	%rbx
 	pop	%rbp
 	ret
+#ifndef __apple_build_version__
 .L_md5_process_asm_end:
 .size md5_process_asm,.L_md5_process_asm_end-md5_process_asm
+#else
+L_md5_process_asm_end:
+#endif
+
+#endif /* !USE_OPENSSL ... */
diff --git a/lib/mdigest.h b/lib/mdigest.h
index c3d22baa..db174017 100644
--- a/lib/mdigest.h
+++ b/lib/mdigest.h
@@ -4,20 +4,7 @@
 #include "openssl/md4.h"
 #include "openssl/md5.h"
 #endif
-
-#define MD4_DIGEST_LEN 16
-#define MD5_DIGEST_LEN 16
-#define MAX_DIGEST_LEN MD5_DIGEST_LEN
-
-#define CSUM_CHUNK 64
-
-#define CSUM_NONE 0
-#define CSUM_MD4_ARCHAIC 1
-#define CSUM_MD4_BUSTED 2
-#define CSUM_MD4_OLD 3
-#define CSUM_MD4 4
-#define CSUM_MD5 5
-#define CSUM_XXH64 6
+#include "md-defines.h"
 
 typedef struct {
 	uint32 A, B, C, D;
diff --git a/md2man b/md2man
index 22965019..ef4e58d6 100755
--- a/md2man
+++ b/md2man
@@ -83,8 +83,9 @@ def main():
     fi.title = fi.prog + '(' + fi.sect + ') man page'
     fi.mtime = 0
 
-    if os.path.lexists(fi.srcdir + '.git'):
-        fi.mtime = int(subprocess.check_output('git log -1 --format=%at'.split()))
+    git_dir = fi.srcdir + '.git'
+    if os.path.lexists(git_dir):
+        fi.mtime = int(subprocess.check_output(['git', '--git-dir', git_dir, 'log', '-1', '--format=%at']))
 
     env_subs = { 'prefix': os.environ.get('RSYNC_OVERRIDE_PREFIX', None) }
 
@@ -92,15 +93,15 @@ def main():
         env_subs['VERSION'] = '1.0.0'
         env_subs['libdir'] = '/usr'
     else:
-        for fn in 'NEWS.md Makefile'.split():
+        for fn in (fi.srcdir + 'NEWS.md', 'Makefile'):
             try:
-                st = os.lstat(fi.srcdir + fn)
+                st = os.lstat(fn)
             except:
                 die('Failed to find', fi.srcdir + fn)
             if not fi.mtime:
                 fi.mtime = st.st_mtime
 
-        with open(fi.srcdir + 'Makefile', 'r', encoding='utf-8') as fh:
+        with open('Makefile', 'r', encoding='utf-8') as fh:
             for line in fh:
                 m = re.match(r'^(\w+)=(.+)', line)
                 if not m:


-- 
The rsync repository.



More information about the rsync-cvs mailing list