diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-02-09 16:47:53 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-02-09 16:47:53 (GMT) |
commit | ed3c25350cd8659b57be5adaad6a92876a42b6a1 (patch) | |
tree | 5aa88bde6d3e44c3b40ef3fd35fe130330192df8 | |
parent | 5c529283168fa509e2c10335cd12dd957dd97430 (diff) | |
parent | d60cf573c0bea70afa8597c60cc7ab5b0d96973c (diff) | |
download | tcl-ed3c25350cd8659b57be5adaad6a92876a42b6a1.zip tcl-ed3c25350cd8659b57be5adaad6a92876a42b6a1.tar.gz tcl-ed3c25350cd8659b57be5adaad6a92876a42b6a1.tar.bz2 |
Merge 8.7
-rwxr-xr-x | compat/zlib/win64-arm/zdll.lib | bin | 0 -> 16732 bytes | |||
-rw-r--r-- | generic/tclUtil.c | 4 | ||||
-rwxr-xr-x | libtommath/win64-arm/tommath.lib | bin | 0 -> 26726 bytes | |||
-rw-r--r-- | win/Makefile.in | 10 | ||||
-rwxr-xr-x | win/configure | 45 | ||||
-rw-r--r-- | win/configure.ac | 14 | ||||
-rw-r--r-- | win/makefile.vc | 27 | ||||
-rw-r--r-- | win/tcl.m4 | 19 |
8 files changed, 80 insertions, 39 deletions
diff --git a/compat/zlib/win64-arm/zdll.lib b/compat/zlib/win64-arm/zdll.lib Binary files differnew file mode 100755 index 0000000..a1b6c50 --- /dev/null +++ b/compat/zlib/win64-arm/zdll.lib diff --git a/generic/tclUtil.c b/generic/tclUtil.c index e29afcc..2f31960 100644 --- a/generic/tclUtil.c +++ b/generic/tclUtil.c @@ -802,9 +802,11 @@ TclCopyAndCollapse( char c = *src; if (c == '\\') { + char buf[4] = ""; int numRead; - int backslashCount = TclParseBackslash(src, count, &numRead, dst); + int backslashCount = TclParseBackslash(src, count, &numRead, buf); + memcpy(dst, buf, backslashCount); dst += backslashCount; newCount += backslashCount; src += numRead; diff --git a/libtommath/win64-arm/tommath.lib b/libtommath/win64-arm/tommath.lib Binary files differnew file mode 100755 index 0000000..6797592 --- /dev/null +++ b/libtommath/win64-arm/tommath.lib diff --git a/win/Makefile.in b/win/Makefile.in index 9c5c455..41a12ae 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -598,10 +598,14 @@ ${TEST_EXE_FILE}: ${TCL_STUB_LIB_FILE} ${TCLTEST_OBJS} tclTestMain.${OBJEXT} # use pre-built zlib1.dll ${ZLIB_DLL_FILE}: ${TCL_STUB_LIB_FILE} - @if test "@ZLIB_LIBS@set" != "${ZLIB_DIR_NATIVE}/win32/zdll.libset" ; then \ - $(COPY) $(ZLIB_DIR)/win64/${ZLIB_DLL_FILE} ${ZLIB_DLL_FILE}; \ - else \ + if test "@ZLIB_LIBS@set" = "${ZLIB_DIR_NATIVE}/win64-arm/zdll.libset" ; then \ + $(COPY) $(ZLIB_DIR)/win64-arm/${ZLIB_DLL_FILE} ${ZLIB_DLL_FILE}; \ + elif test "@ZLIB_LIBS@set" = "${ZLIB_DIR_NATIVE}/win64-arm/libz.dll.aset" ; then \ + $(COPY) $(ZLIB_DIR)/win64-arm/${ZLIB_DLL_FILE} ${ZLIB_DLL_FILE}; \ + elif test "@ZLIB_LIBS@set" = "${ZLIB_DIR_NATIVE}/win32/zdll.libset" ; then \ $(COPY) $(ZLIB_DIR)/win32/${ZLIB_DLL_FILE} ${ZLIB_DLL_FILE}; \ + else \ + $(COPY) $(ZLIB_DIR)/win64/${ZLIB_DLL_FILE} ${ZLIB_DLL_FILE}; \ fi; # use pre-built libtommath.dll diff --git a/win/configure b/win/configure index 24947c4..310189a 100755 --- a/win/configure +++ b/win/configure @@ -4106,12 +4106,12 @@ printf "%s\n" "$ac_cv_cross" >&6; } RANLIB="x86_64-w64-mingw32-ranlib" RC="x86_64-w64-mingw32-windres" ;; - arm64) - CC="arm64-w64-mingw32-${CC}" - LD="arm64-w64-mingw32-ld" - AR="arm64-w64-mingw32-ar" - RANLIB="arm64-w64-mingw32-ranlib" - RC="arm64-w64-mingw32-windres" + arm64|aarch64) + CC="aarch64-w64-mingw32-${CC}" + LD="aarch64-w64-mingw32-ld" + AR="aarch64-w64-mingw32-ar" + RANLIB="aarch64-w64-mingw32-ranlib" + RC="aarch64-w64-mingw32-windres" ;; *) CC="i686-w64-mingw32-${CC}" @@ -4498,7 +4498,7 @@ printf "%s\n" "using shared flags" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using 64-bit $MACHINE mode" >&5 printf "%s\n" " Using 64-bit $MACHINE mode" >&6; } ;; - arm64) + arm64|aarch64) MACHINE="ARM64" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Using ARM64 $MACHINE mode" >&5 printf "%s\n" " Using ARM64 $MACHINE mode" >&6; } @@ -4576,7 +4576,7 @@ printf "%s\n" "using shared flags" >&6; } amd64|x64|yes) MACHINE="AMD64" ; # assume AMD64 as default 64-bit build ;; - arm64) + arm64|aarch64) MACHINE="ARM64" ;; ia64) @@ -4600,8 +4600,7 @@ printf "%s\n" " Using 64-bit $MACHINE mode" >&6; } if test "$do64bit" != "no" ; then RC="rc" CFLAGS_DEBUG="-nologo -Zi -Od ${runtime}d" - # Do not use -O2 for Win64 - this has proved buggy in code gen. - CFLAGS_OPTIMIZE="-nologo -O1 ${runtime}" + CFLAGS_OPTIMIZE="-nologo -O2 ${runtime}" lflags="${lflags} -nologo -MACHINE:${MACHINE}" LINKBIN="link" # Avoid 'unresolved external symbol __security_cookie' errors. @@ -4951,18 +4950,38 @@ then : printf "%s\n" "#define MP_64BIT 1" >>confdefs.h - if test "$GCC" == "yes" + if test "$do64bit" = "arm64" +then : + + if test "$GCC" == "yes" then : - ZLIB_LIBS=\${ZLIB_DIR_NATIVE}/win64/libz.dll.a + ZLIB_LIBS=\${ZLIB_DIR_NATIVE}/win64-arm/libz.dll.a + +else $as_nop + + ZLIB_LIBS=\${ZLIB_DIR_NATIVE}/win64-arm/zdll.lib + + +fi TOMMATH_LIBS=\${TOMMATH_DIR_NATIVE}/win64/libtommath.dll.a else $as_nop - ZLIB_LIBS=\${ZLIB_DIR_NATIVE}/win64/zdll.lib + if test "$GCC" == "yes" +then : + + ZLIB_LIBS=\${ZLIB_DIR_NATIVE}/win64/libz.dll.a + + +else $as_nop + + ZLIB_LIBS=\${ZLIB_DIR_NATIVE}/win64/zdll.lib + +fi TOMMATH_LIBS=\${TOMMATH_DIR_NATIVE}/win64/tommath.lib diff --git a/win/configure.ac b/win/configure.ac index 709f092..87b6780 100644 --- a/win/configure.ac +++ b/win/configure.ac @@ -141,11 +141,19 @@ AS_IF([test "$tcl_ok" = "yes"], [ AC_DEFINE(TCL_WITH_EXTERNAL_TOMMATH, 1, [Tcl with external libtommath]) AS_IF([test "$do64bit" != "no"], [ AC_DEFINE(MP_64BIT, 1, [Using libtommath.dll in 64-bit mode]) - AS_IF([test "$GCC" == "yes"],[ - AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/libz.dll.a]) + AS_IF([test "$do64bit" = "arm64"], [ + AS_IF([test "$GCC" == "yes"],[ + AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64-arm/libz.dll.a]) + ], [ + AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64-arm/zdll.lib]) + ]) AC_SUBST(TOMMATH_LIBS,[\${TOMMATH_DIR_NATIVE}/win64/libtommath.dll.a]) ], [ - AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/zdll.lib]) + AS_IF([test "$GCC" == "yes"],[ + AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/libz.dll.a]) + ], [ + AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR_NATIVE}/win64/zdll.lib]) + ]) AC_SUBST(TOMMATH_LIBS,[\${TOMMATH_DIR_NATIVE}/win64/tommath.lib]) ]) ], [ diff --git a/win/makefile.vc b/win/makefile.vc index ccdaea6..68c2aa7 100644 --- a/win/makefile.vc +++ b/win/makefile.vc @@ -556,15 +556,15 @@ $(TCLREGLIB): $(TMP_DIR)\tclWinReg.obj $(TCLSTUBLIB) $(_VC_MANIFEST_EMBED_DLL)
!endif
-!if "$(MACHINE)" == "AMD64"
-$(OUT_DIR)\zlib1.dll: $(COMPATDIR)\zlib\win64\zlib1.dll
- $(COPY) $(COMPATDIR)\zlib\win64\zlib1.dll $(OUT_DIR)\zlib1.dll
-$(OUT_DIR)\zdll.lib: $(COMPATDIR)\zlib\win64\zdll.lib
- $(COPY) $(COMPATDIR)\zlib\win64\zdll.lib $(OUT_DIR)\zdll.lib
-$(OUT_DIR)\libtommath.dll: $(TOMMATHDIR)\win64\libtommath.dll
- $(COPY) $(TOMMATHDIR)\win64\libtommath.dll $(OUT_DIR)\libtommath.dll
-$(OUT_DIR)\tommath.lib: $(TOMMATHDIR)\win64\tommath.lib
- $(COPY) $(TOMMATHDIR)\win64\tommath.lib $(OUT_DIR)\tommath.lib
+!if "$(MACHINE)" == "ARM64"
+$(OUT_DIR)\zlib1.dll: $(COMPATDIR)\zlib\win64-arm\zlib1.dll
+ $(COPY) $(COMPATDIR)\zlib\win64-arm\zlib1.dll $(OUT_DIR)\zlib1.dll
+$(OUT_DIR)\zdll.lib: $(COMPATDIR)\zlib\win64-arm\zdll.lib
+ $(COPY) $(COMPATDIR)\zlib\win64-arm\zdll.lib $(OUT_DIR)\zdll.lib
+$(OUT_DIR)\libtommath.dll: $(TOMMATHDIR)\win64-arm\libtommath.dll
+ $(COPY) $(TOMMATHDIR)\win64-arm\libtommath.dll $(OUT_DIR)\libtommath.dll
+$(OUT_DIR)\tommath.lib: $(TOMMATHDIR)\win64-arm\tommath.lib
+ $(COPY) $(TOMMATHDIR)\win64-arm\tommath.lib $(OUT_DIR)\tommath.lib
!elseif "$(MACHINE)" == "IX86"
$(OUT_DIR)\zlib1.dll: $(COMPATDIR)\zlib\win32\zlib1.dll
$(COPY) $(COMPATDIR)\zlib\win32\zlib1.dll $(OUT_DIR)\zlib1.dll
@@ -574,6 +574,15 @@ $(OUT_DIR)\libtommath.dll: $(TOMMATHDIR)\win32\libtommath.dll $(COPY) $(TOMMATHDIR)\win32\libtommath.dll $(OUT_DIR)\libtommath.dll
$(OUT_DIR)\tommath.lib: $(TOMMATHDIR)\win32\tommath.lib
$(COPY) $(TOMMATHDIR)\win32\tommath.lib $(OUT_DIR)\tommath.lib
+!else
+$(OUT_DIR)\zlib1.dll: $(COMPATDIR)\zlib\win64\zlib1.dll
+ $(COPY) $(COMPATDIR)\zlib\win64\zlib1.dll $(OUT_DIR)\zlib1.dll
+$(OUT_DIR)\zdll.lib: $(COMPATDIR)\zlib\win64\zdll.lib
+ $(COPY) $(COMPATDIR)\zlib\win64\zdll.lib $(OUT_DIR)\zdll.lib
+$(OUT_DIR)\libtommath.dll: $(TOMMATHDIR)\win64\libtommath.dll
+ $(COPY) $(TOMMATHDIR)\win64\libtommath.dll $(OUT_DIR)\libtommath.dll
+$(OUT_DIR)\tommath.lib: $(TOMMATHDIR)\win64\tommath.lib
+ $(COPY) $(TOMMATHDIR)\win64\tommath.lib $(OUT_DIR)\tommath.lib
!endif
$(TCLSCRIPTZIP): $(TCLDDELIB) $(TCLREGLIB)
@@ -526,12 +526,12 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ RANLIB="x86_64-w64-mingw32-ranlib" RC="x86_64-w64-mingw32-windres" ;; - arm64) - CC="arm64-w64-mingw32-${CC}" - LD="arm64-w64-mingw32-ld" - AR="arm64-w64-mingw32-ar" - RANLIB="arm64-w64-mingw32-ranlib" - RC="arm64-w64-mingw32-windres" + arm64|aarch64) + CC="aarch64-w64-mingw32-${CC}" + LD="aarch64-w64-mingw32-ld" + AR="aarch64-w64-mingw32-ar" + RANLIB="aarch64-w64-mingw32-ranlib" + RC="aarch64-w64-mingw32-windres" ;; *) CC="i686-w64-mingw32-${CC}" @@ -745,7 +745,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ MACHINE="AMD64" ; # assume AMD64 as default 64-bit build AC_MSG_RESULT([ Using 64-bit $MACHINE mode]) ;; - arm64) + arm64|aarch64) MACHINE="ARM64" AC_MSG_RESULT([ Using ARM64 $MACHINE mode]) ;; @@ -803,7 +803,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ amd64|x64|yes) MACHINE="AMD64" ; # assume AMD64 as default 64-bit build ;; - arm64) + arm64|aarch64) MACHINE="ARM64" ;; ia64) @@ -826,8 +826,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ if test "$do64bit" != "no" ; then RC="rc" CFLAGS_DEBUG="-nologo -Zi -Od ${runtime}d" - # Do not use -O2 for Win64 - this has proved buggy in code gen. - CFLAGS_OPTIMIZE="-nologo -O1 ${runtime}" + CFLAGS_OPTIMIZE="-nologo -O2 ${runtime}" lflags="${lflags} -nologo -MACHINE:${MACHINE}" LINKBIN="link" # Avoid 'unresolved external symbol __security_cookie' errors. |