[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