summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-02-09 16:47:53 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-02-09 16:47:53 (GMT)
commited3c25350cd8659b57be5adaad6a92876a42b6a1 (patch)
tree5aa88bde6d3e44c3b40ef3fd35fe130330192df8
parent5c529283168fa509e2c10335cd12dd957dd97430 (diff)
parentd60cf573c0bea70afa8597c60cc7ab5b0d96973c (diff)
downloadtcl-ed3c25350cd8659b57be5adaad6a92876a42b6a1.zip
tcl-ed3c25350cd8659b57be5adaad6a92876a42b6a1.tar.gz
tcl-ed3c25350cd8659b57be5adaad6a92876a42b6a1.tar.bz2
Merge 8.7
-rwxr-xr-xcompat/zlib/win64-arm/zdll.libbin0 -> 16732 bytes
-rw-r--r--generic/tclUtil.c4
-rwxr-xr-xlibtommath/win64-arm/tommath.libbin0 -> 26726 bytes
-rw-r--r--win/Makefile.in10
-rwxr-xr-xwin/configure45
-rw-r--r--win/configure.ac14
-rw-r--r--win/makefile.vc27
-rw-r--r--win/tcl.m419
8 files changed, 80 insertions, 39 deletions
diff --git a/compat/zlib/win64-arm/zdll.lib b/compat/zlib/win64-arm/zdll.lib
new file mode 100755
index 0000000..a1b6c50
--- /dev/null
+++ b/compat/zlib/win64-arm/zdll.lib
Binary files differ
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
new file mode 100755
index 0000000..6797592
--- /dev/null
+++ b/libtommath/win64-arm/tommath.lib
Binary files differ
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)
diff --git a/win/tcl.m4 b/win/tcl.m4
index 4592b61..b7d6e8c 100644
--- a/win/tcl.m4
+++ b/win/tcl.m4
@@ -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.