Compare commits
3
Commits
closed
...
disabletcl8api
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca64cf32c9 | ||
|
|
0a6ec5e775 | ||
|
|
534ac5196d |
+61
-44
@@ -4037,66 +4037,79 @@ extern const TclStubs *tclStubsPtr;
|
||||
#undef TclGetByteArrayFromObj
|
||||
#undef Tcl_GetByteArrayFromObj
|
||||
#if defined(USE_TCL_STUBS)
|
||||
# if TCL_MAJOR_VERSION < 9 || !defined(TCL_NO_DEPRECATED)
|
||||
# define Tcl_GetBytesFromObj(interp, objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
tclStubsPtr->tclGetBytesFromObj(interp, objPtr, (int *)(void *)(sizePtr)) : \
|
||||
tclStubsPtr->tcl_GetBytesFromObj(interp, objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
# define Tcl_GetStringFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
tclStubsPtr->tclGetStringFromObj(objPtr, (int *)(void *)(sizePtr)) : \
|
||||
tclStubsPtr->tcl_GetStringFromObj(objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
# define Tcl_GetUnicodeFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
tclStubsPtr->tclGetUnicodeFromObj(objPtr, (int *)(void *)(sizePtr)) : \
|
||||
tclStubsPtr->tcl_GetUnicodeFromObj(objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
# endif
|
||||
#define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
|
||||
(tclStubsPtr->tcl_GetIndexFromObjStruct((interp), (objPtr), (tablePtr), (offset), (msg), \
|
||||
(flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
|
||||
#define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
|
||||
((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? tclStubsPtr->tcl_GetBooleanFromObj(interp, objPtr, (int *)(boolPtr)) : \
|
||||
Tcl_GetBoolFromObj(interp, objPtr, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
|
||||
#define Tcl_GetBoolean(interp, src, boolPtr) \
|
||||
((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? tclStubsPtr->tcl_GetBoolean(interp, src, (int *)(boolPtr)) : \
|
||||
Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
|
||||
#if TCL_MAJOR_VERSION > 8
|
||||
#define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
|
||||
# if defined(TCL_8_API) || TCL_MAJOR_VERSION == 8
|
||||
# define Tcl_GetBytesFromObj(interp, objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
tclStubsPtr->tclGetBytesFromObj(interp, objPtr, (int *)(void *)(sizePtr)) : \
|
||||
tclStubsPtr->tcl_GetBytesFromObj(interp, objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
# define Tcl_GetStringFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
tclStubsPtr->tclGetStringFromObj(objPtr, (int *)(void *)(sizePtr)) : \
|
||||
tclStubsPtr->tcl_GetStringFromObj(objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
# if TCL_MAJOR_VERSION > 8
|
||||
# define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
tclStubsPtr->tclGetBytesFromObj(NULL, objPtr, (int *)(void *)(sizePtr)) : \
|
||||
tclStubsPtr->tcl_GetBytesFromObj(NULL, objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
#else
|
||||
#define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
# else
|
||||
# define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
tclStubsPtr->tclGetByteArrayFromObj(objPtr, (int *)(void *)(sizePtr)) : \
|
||||
tclStubsPtr->tcl_GetByteArrayFromObj(objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
#endif
|
||||
# endif
|
||||
# define Tcl_GetUnicodeFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
tclStubsPtr->tclGetUnicodeFromObj(objPtr, (int *)(void *)(sizePtr)) : \
|
||||
tclStubsPtr->tcl_GetUnicodeFromObj(objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
# else /* TCL_8_API */
|
||||
# if TCL_MAJOR_VERSION > 8
|
||||
# define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
|
||||
tclStubsPtr->tcl_GetBytesFromObj(NULL, objPtr, (Tcl_Size *)(void *)(sizePtr))
|
||||
# else
|
||||
# define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
|
||||
tclStubsPtr->tcl_GetByteArrayFromObj(objPtr, (Tcl_Size *)(void *)(sizePtr))
|
||||
# endif /* TCL_MAJOR_VERSION > 8 */
|
||||
# endif /* TCL_8_API */
|
||||
# define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
|
||||
(tclStubsPtr->tcl_GetIndexFromObjStruct((interp), (objPtr), (tablePtr), (offset), (msg), \
|
||||
(flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
|
||||
# define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
|
||||
((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? tclStubsPtr->tcl_GetBooleanFromObj(interp, objPtr, (int *)(boolPtr)) : \
|
||||
Tcl_GetBoolFromObj(interp, objPtr, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
|
||||
# define Tcl_GetBoolean(interp, src, boolPtr) \
|
||||
((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? tclStubsPtr->tcl_GetBoolean(interp, src, (int *)(boolPtr)) : \
|
||||
Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
|
||||
#else
|
||||
#define Tcl_GetBytesFromObj(interp, objPtr, sizePtr) \
|
||||
# if defined(TCL_8_API) || TCL_MAJOR_VERSION == 8
|
||||
# define Tcl_GetBytesFromObj(interp, objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
TclGetBytesFromObj(interp, objPtr, (int *)(void *)(sizePtr)) : \
|
||||
(Tcl_GetBytesFromObj)(interp, objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
#define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
|
||||
((Tcl_GetIndexFromObjStruct)((interp), (objPtr), (tablePtr), (offset), (msg), \
|
||||
(flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
|
||||
#define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
|
||||
((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? Tcl_GetBooleanFromObj(interp, objPtr, (int *)(boolPtr)) : \
|
||||
Tcl_GetBoolFromObj(interp, objPtr, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
|
||||
#define Tcl_GetBoolean(interp, src, boolPtr) \
|
||||
((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? Tcl_GetBoolean(interp, src, (int *)(boolPtr)) : \
|
||||
Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
|
||||
#define Tcl_GetStringFromObj(objPtr, sizePtr) \
|
||||
# define Tcl_GetStringFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
TclGetStringFromObj(objPtr, (int *)(void *)(sizePtr)) : \
|
||||
(Tcl_GetStringFromObj)(objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
#define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
|
||||
# define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
TclGetBytesFromObj(NULL, objPtr, (int *)(void *)(sizePtr)) : \
|
||||
(Tcl_GetBytesFromObj)(NULL, objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
#define Tcl_GetUnicodeFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
# define Tcl_GetUnicodeFromObj(objPtr, sizePtr) \
|
||||
(sizeof(*(sizePtr)) <= sizeof(int) ? \
|
||||
TclGetUnicodeFromObj(objPtr, (int *)(void *)(sizePtr)) : \
|
||||
(Tcl_GetUnicodeFromObj)(objPtr, (Tcl_Size *)(void *)(sizePtr)))
|
||||
# else /* TCL_8_API */
|
||||
# define Tcl_GetByteArrayFromObj(objPtr, sizePtr) \
|
||||
Tcl_GetBytesFromObj(NULL, objPtr, (Tcl_Size *)(void *)(sizePtr))
|
||||
# endif /* TCL_8_API */
|
||||
# define Tcl_GetIndexFromObjStruct(interp, objPtr, tablePtr, offset, msg, flags, indexPtr) \
|
||||
((Tcl_GetIndexFromObjStruct)((interp), (objPtr), (tablePtr), (offset), (msg), \
|
||||
(flags)|(int)(sizeof(*(indexPtr))<<1), (indexPtr)))
|
||||
# define Tcl_GetBooleanFromObj(interp, objPtr, boolPtr) \
|
||||
((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? Tcl_GetBooleanFromObj(interp, objPtr, (int *)(boolPtr)) : \
|
||||
Tcl_GetBoolFromObj(interp, objPtr, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
|
||||
# define Tcl_GetBoolean(interp, src, boolPtr) \
|
||||
((sizeof(*(boolPtr)) == sizeof(int) && (TCL_MAJOR_VERSION == 8)) ? Tcl_GetBoolean(interp, src, (int *)(boolPtr)) : \
|
||||
Tcl_GetBool(interp, src, (TCL_NULL_OK-2)&(int)sizeof((*(boolPtr))), (char *)(boolPtr)))
|
||||
#endif
|
||||
|
||||
#ifdef TCL_MEM_DEBUG
|
||||
@@ -4168,6 +4181,7 @@ extern const TclStubs *tclStubsPtr;
|
||||
# define Tcl_WCharLen (sizeof(wchar_t) != sizeof(short) \
|
||||
? (Tcl_Size (*)(wchar_t *))tclStubsPtr->tcl_UniCharLen \
|
||||
: (Tcl_Size (*)(wchar_t *))Tcl_Char16Len)
|
||||
#if defined(TCL_8_API) || TCL_MAJOR_VERSION == 8
|
||||
# undef Tcl_ListObjGetElements
|
||||
# define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*(objcPtr)) == sizeof(int) \
|
||||
? tclStubsPtr->tclListObjGetElements((interp), (listPtr), (int *)(void *)(objcPtr), (objvPtr)) \
|
||||
@@ -4196,6 +4210,7 @@ extern const TclStubs *tclStubsPtr;
|
||||
# define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*(objcPtr)) == sizeof(int) \
|
||||
? tclStubsPtr->tclParseArgsObjv((interp), (argTable), (int *)(void *)(objcPtr), (objv), (remObjv)) \
|
||||
: tclStubsPtr->tcl_ParseArgsObjv((interp), (argTable), (Tcl_Size *)(void *)(objcPtr), (objv), (remObjv)))
|
||||
#endif /* TCL_8_API */
|
||||
#else
|
||||
# define Tcl_WCharToUtfDString (sizeof(wchar_t) != sizeof(short) \
|
||||
? (char *(*)(const wchar_t *, Tcl_Size, Tcl_DString *))Tcl_UniCharToUtfDString \
|
||||
@@ -4209,7 +4224,8 @@ extern const TclStubs *tclStubsPtr;
|
||||
# define Tcl_WCharLen (sizeof(wchar_t) != sizeof(short) \
|
||||
? (Tcl_Size (*)(wchar_t *))Tcl_UniCharLen \
|
||||
: (Tcl_Size (*)(wchar_t *))Tcl_Char16Len)
|
||||
#if !defined(BUILD_tcl) && !defined(TCL_NO_DEPRECATED)
|
||||
#if !defined(BUILD_tcl)
|
||||
#if defined(TCL_8_API) || TCL_MAJOR_VERSION == 8
|
||||
# define Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr) (sizeof(*(objcPtr)) == sizeof(int) \
|
||||
? TclListObjGetElements((interp), (listPtr), (int *)(void *)(objcPtr), (objvPtr)) \
|
||||
: (Tcl_ListObjGetElements)((interp), (listPtr), (Tcl_Size *)(void *)(objcPtr), (objvPtr)))
|
||||
@@ -4231,6 +4247,7 @@ extern const TclStubs *tclStubsPtr;
|
||||
# define Tcl_ParseArgsObjv(interp, argTable, objcPtr, objv, remObjv) (sizeof(*(objcPtr)) == sizeof(int) \
|
||||
? TclParseArgsObjv((interp), (argTable), (int *)(void *)(objcPtr), (objv), (remObjv)) \
|
||||
: (Tcl_ParseArgsObjv)((interp), (argTable), (Tcl_Size *)(void *)(objcPtr), (objv), (remObjv)))
|
||||
#endif /* TCL_8_API */
|
||||
#endif /* !defined(BUILD_tcl) */
|
||||
#endif
|
||||
|
||||
|
||||
Vendored
+20
@@ -810,6 +810,7 @@ enable_load
|
||||
enable_symbols
|
||||
enable_langinfo
|
||||
enable_dll_unloading
|
||||
enable_tcl8api
|
||||
with_tzdata
|
||||
enable_dtrace
|
||||
enable_framework
|
||||
@@ -1460,6 +1461,7 @@ Optional Features:
|
||||
--enable-langinfo use nl_langinfo if possible to determine encoding at
|
||||
startup, otherwise use old heuristic (default: on)
|
||||
--enable-dll-unloading enable the 'unload' command (default: on)
|
||||
--enable-tcl8api enable the Tcl 8 compatibility API (default: off)
|
||||
--enable-dtrace build with DTrace support (default: off)
|
||||
--enable-framework package shared libraries in MacOSX frameworks
|
||||
(default: off)
|
||||
@@ -10656,6 +10658,24 @@ fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_ok" >&5
|
||||
printf "%s\n" "$tcl_ok" >&6; }
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use Tcl 8 compatibility API" >&5
|
||||
printf %s "checking whether to use Tcl 8 compatibility API... " >&6; }
|
||||
# Check whether --enable-tcl8api was given.
|
||||
if test ${enable_tcl8api+y}
|
||||
then :
|
||||
enableval=$enable_tcl8api; tcl_ok=$enableval
|
||||
else $as_nop
|
||||
tcl_ok=no
|
||||
fi
|
||||
|
||||
if test $tcl_ok = yes; then
|
||||
|
||||
printf "%s\n" "#define TCL_8_API 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_ok" >&5
|
||||
printf "%s\n" "$tcl_ok" >&6; }
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
# Check whether the timezone data is supplied by the OS or has
|
||||
# to be installed by Tcl. The default is autodetection, but can
|
||||
|
||||
@@ -666,6 +666,16 @@ if test $tcl_ok = yes; then
|
||||
fi
|
||||
AC_MSG_RESULT([$tcl_ok])
|
||||
|
||||
AC_MSG_CHECKING([whether to use Tcl 8 compatibility API])
|
||||
AC_ARG_ENABLE(tcl8api,
|
||||
AS_HELP_STRING([--enable-tcl8api],
|
||||
[enable the Tcl 8 compatibility API (default: off)]),
|
||||
[tcl_ok=$enableval], [tcl_ok=no])
|
||||
if test $tcl_ok = yes; then
|
||||
AC_DEFINE(TCL_8_API, 1, [Tcl 8 compatibility API enabled?])
|
||||
fi
|
||||
AC_MSG_RESULT([$tcl_ok])
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
# Check whether the timezone data is supplied by the OS or has
|
||||
# to be installed by Tcl. The default is autodetection, but can
|
||||
|
||||
+17
-1
@@ -817,11 +817,14 @@ DOTSEPARATED=$(DOTSEPARATED:b=.)
|
||||
# _USE_64BIT_TIME_T - forces a build using 64-bit time_t for 32-bit build
|
||||
# (CRT library should support this, not needed for Tcl 9.x)
|
||||
# TCL_UTF_MAX=3 - forces a build using UTF-16 internally (not recommended).
|
||||
# TCL_8_API - 0 -> Tcl 8 compatible API is disabled
|
||||
# 1 -> Tcl 8 API enabled (default)
|
||||
# Further, LINKERFLAGS are modified based on above.
|
||||
|
||||
# Default values for all the above
|
||||
STATIC_BUILD = 0
|
||||
TCL_THREADS = 1
|
||||
TCL_8_API = 0
|
||||
DEBUG = 0
|
||||
SYMBOLS = 0
|
||||
PROFILE = 0
|
||||
@@ -877,10 +880,19 @@ TCL_THREADS = 0
|
||||
USE_THREAD_ALLOC= 0
|
||||
!endif
|
||||
|
||||
!if [nmakehlp -f $(OPTS) "tcl8api"]
|
||||
!message *** Disable Tcl 8 API compatibility macros
|
||||
TCL_8_API = 1
|
||||
!endif
|
||||
|
||||
# NOTE: THIS MUST COME AFTER THE notcl8api CHECK ABOVE because the "-f" option
|
||||
# does *substring* checks, not exact checks so "tcl8" will match "notcl8api" as well.
|
||||
!if $(TCL_8_API)
|
||||
!if [nmakehlp -f $(OPTS) "tcl8"]
|
||||
!message *** Build for Tcl8
|
||||
TCL_BUILD_FOR = 8
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!if $(TCL_MAJOR_VERSION) == 8
|
||||
!if [nmakehlp -f $(OPTS) "time64bit"]
|
||||
@@ -1369,7 +1381,7 @@ INCLUDE_INSTALL_DIR = $(_INSTALLDIR)\..\include
|
||||
# and switches are specific to it.
|
||||
# The following macros are defined, names are for historical compatibility:
|
||||
# OPTDEFINES - /Dxxx C macro flags based on user-specified OPTS
|
||||
# COMPILERFLAGS - /Dxxx C macro flags independent of any configuration options
|
||||
# COMPILERFLAGS - /Dxxx C macro flags independent of any configuration opttions
|
||||
# crt - Compiler switch that selects the appropriate C runtime
|
||||
# cdebug - Compiler switches related to debug AND optimizations
|
||||
# cwarn - Compiler switches that set warning levels
|
||||
@@ -1451,12 +1463,16 @@ OPTDEFINES = $(OPTDEFINES) /D_USE_64BIT_TIME_T=1
|
||||
# _ATL_XP_TARGETING - Newer SDK's need this to build for XP
|
||||
COMPILERFLAGS = /D_ATL_XP_TARGETING
|
||||
!endif
|
||||
|
||||
!if "$(TCL_UTF_MAX)" == "3"
|
||||
OPTDEFINES = $(OPTDEFINES) /DTCL_UTF_MAX=3
|
||||
!endif
|
||||
!if "$(TCL_BUILD_FOR)" == "8"
|
||||
OPTDEFINES = $(OPTDEFINES) /DTCL_MAJOR_VERSION=8
|
||||
!endif
|
||||
!if $(TCL_8_API)
|
||||
OPTDEFINES = $(OPTDEFINES) /DTCL_8_API=1
|
||||
!endif
|
||||
|
||||
# Like the TEA system only set this non empty for non-Tk extensions
|
||||
# Note: some extensions use PACKAGE_NAME and others use PACKAGE_TCLNAME
|
||||
|
||||
Reference in New Issue
Block a user