Skip to content

Commit fbee641

Browse files
committed
ENH: Update to expat 2.7.2 code changes
Manually upgrade from expat 2.4.1 to 2.7.2. EXPAT_GE and XML_GE need to be set in expat 2.7.2, but do not need to be viewed in ITK. If the variable EXPAT_SHARED_LIBS is true, then we must set the value of ITK_EXPAT_STATIC to 1, otherwise the variable ITK_EXPAT_STATIC is expected to not exist. Minimize the code differences between ITK and expat upstream 2.7.2 with regards to dllexport and dllimport. Minimize the code differences between ITK and expat upstream 2.7.2 with regards to dllexport and dllimport. Remove unused expatConfig.h configuration file Remove unused expatDllConfig.h configuration file Remove dependence on libexpat.def MSVC file By using the upstream configuration for dllimport and dll export, it is no longer necessary to create a compile time file to determine if static or shared libraries are used. On linux build use the following to identify symbols in 2.7.2 ```bash nm lib/libITKEXPAT-6.0.a \ | grep " [TRD] " \ | awk '{ print $3 }' \ | sort -df \ | awk '{ print "#define "$1" @MANGLE_PREFIX@_"$1 }' ```
1 parent 8049450 commit fbee641

23 files changed

+2467
-1173
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Modules/ThirdParty/** hooks-max-size=300000 hooks.style=
5454
Modules/ThirdParty/ZLIB/src/itkzlib-ng/crc32_braid_tbl.h hooks-max-size=700000
5555
Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary/privatedicts.xml hooks-max-size=400000
5656
Modules/Filtering/Denoising/include/itkPatchBasedDenoisingImageFilter.hxx hooks-max-size=120000
57+
Modules/ThirdParty/Expat/src/expat/lib/xmlparse.c hooks-max-size=320000
5758
Documentation/docs/releases/* hooks-max-size=300000
5859
Documentation/Art/* hooks-max-size=300000
5960
pixi.lock hooks-max-size=1000000

Modules/ThirdParty/Expat/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ else()
1717
)
1818
set(ITKExpat_LIBRARIES ITKEXPAT)
1919
set(ITK_LIBRARY_PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS FALSE)
20+
set(EXPAT_GE ON CACHE BOOL "Define to make general entity parsing functionality available" FORCE)
21+
set(XML_GE 1 CACHE STRING "Define to make general entity parsing functionality available" FORCE)
2022
endif()
2123

2224
itk_module_impl()

Modules/ThirdParty/Expat/src/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,6 @@ mark_as_advanced(FORCE
2020
EXPAT_WITH_LIBBSD
2121
EXPAT_WITH_GETRANDOM
2222
EXPAT_WITH_SYS_GETRANDOM
23+
EXPAT_GE
24+
XML_GE
2325
)

Modules/ThirdParty/Expat/src/expat/CMakeLists.txt

Lines changed: 400 additions & 204 deletions
Large diffs are not rendered by default.

Modules/ThirdParty/Expat/src/expat/COPYING

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper
2-
Copyright (c) 2001-2019 Expat maintainers
2+
Copyright (c) 2001-2025 Expat maintainers
33

44
Permission is hereby granted, free of charge, to any person obtaining
55
a copy of this software and associated documentation files (the

Modules/ThirdParty/Expat/src/expat/ConfigureChecks.cmake

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,26 @@ else(WORDS_BIGENDIAN)
4646
endif(WORDS_BIGENDIAN)
4747

4848
if(HAVE_SYS_TYPES_H)
49-
check_symbol_exists("off_t" "sys/types.h" OFF_T)
50-
check_symbol_exists("size_t" "sys/types.h" SIZE_T)
51-
else(HAVE_SYS_TYPES_H)
52-
set(OFF_T "long")
53-
set(SIZE_T "unsigned")
54-
endif(HAVE_SYS_TYPES_H)
49+
check_c_source_compiles("
50+
#include <sys/types.h>
51+
int main(void) {
52+
const off_t offset = -123;
53+
(void)offset;
54+
return 0;
55+
}"
56+
HAVE_OFF_T)
57+
endif()
58+
59+
if(NOT HAVE_OFF_T)
60+
set(off_t "long")
61+
endif()
5562

5663
check_c_source_compiles("
64+
#define _GNU_SOURCE
5765
#include <stdlib.h> /* for NULL */
5866
#include <unistd.h> /* for syscall */
5967
#include <sys/syscall.h> /* for SYS_getrandom */
60-
int main() {
68+
int main(void) {
6169
syscall(SYS_getrandom, NULL, 0, 0);
6270
return 0;
6371
}"

Modules/ThirdParty/Expat/src/expat/expatConfig.h.in

Lines changed: 0 additions & 58 deletions
This file was deleted.

Modules/ThirdParty/Expat/src/expat/expatDllConfig.h.in

Lines changed: 0 additions & 6 deletions
This file was deleted.

Modules/ThirdParty/Expat/src/expat/expat_config.h.cmake

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
/* expat_config.h.cmake. Based upon generated expat_config.h.in. */
22

3+
#ifndef EXPAT_CONFIG_H
4+
# define EXPAT_CONFIG_H 1
5+
36
/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
47
#cmakedefine BYTEORDER @BYTEORDER@
58

@@ -58,7 +61,7 @@
5861
#cmakedefine HAVE_UNISTD_H
5962

6063
/* Name of package */
61-
#define PACKAGE "@PACKAGE_NAME@"
64+
# define PACKAGE "@PACKAGE_NAME@"
6265

6366
/* Define to the address where bug reports for this package should be sent. */
6467
#cmakedefine PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@"
@@ -73,13 +76,15 @@
7376
#cmakedefine PACKAGE_TARNAME "@PACKAGE_TARNAME@"
7477

7578
/* Define to the home page for this package. */
76-
#define PACKAGE_URL ""
79+
# define PACKAGE_URL ""
7780

7881
/* Define to the version of this package. */
7982
#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@"
8083

8184
/* Define to 1 if you have the ANSI C header files. */
85+
# ifndef STDC_HEADERS
8286
#cmakedefine STDC_HEADERS
87+
# endif
8388

8489
/* whether byteorder is bigendian */
8590
#cmakedefine WORDS_BIGENDIAN
@@ -89,27 +94,29 @@
8994
#cmakedefine XML_ATTR_INFO
9095

9196
/* Define to specify how much context to retain around the current parse
92-
point. */
93-
#cmakedefine XML_CONTEXT_BYTES @XML_CONTEXT_BYTES@
97+
point, 0 to disable. */
98+
# define XML_CONTEXT_BYTES @XML_CONTEXT_BYTES@
9499

95-
#if ! defined(_WIN32)
100+
# if ! defined(_WIN32)
96101
/* Define to include code reading entropy from `/dev/urandom'. */
97-
#cmakedefine XML_DEV_URANDOM
98-
#endif
102+
#cmakedefine XML_DEV_URANDOM
103+
# endif
99104

100105
/* Define to make parameter entity parsing functionality available. */
101106
#cmakedefine XML_DTD
102107

108+
/* Define as 1/0 to enable/disable support for general entities. */
109+
# define XML_GE @XML_GE@
110+
103111
/* Define to make XML Namespaces functionality available. */
104112
#cmakedefine XML_NS
105113

106114
/* Define to __FUNCTION__ or "" if `__func__' does not conform to ANSI C. */
107-
#ifdef _MSC_VER
108-
# define __func__ __FUNCTION__
109-
#endif
115+
# ifdef _MSC_VER
116+
# define __func__ __FUNCTION__
117+
# endif
110118

111119
/* Define to `long' if <sys/types.h> does not define. */
112-
#cmakedefine off_t @OFF_T@
120+
#cmakedefine off_t @off_t@
113121

114-
/* Define to `unsigned' if <sys/types.h> does not define. */
115-
#cmakedefine size_t @SIZE_T@
122+
#endif // ndef EXPAT_CONFIG_H

Modules/ThirdParty/Expat/src/expat/itk_expat_mangle.h.in

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@ nm libITKEXPAT-5.3.a | grep " [TRD] " | awk '{ print $3 }' | sort -df | awk '{
3131
3232
*/
3333

34+
#define g_reparseDeferralEnabledDefault @MANGLE_PREFIX@_g_reparseDeferralEnabledDefault
3435
#define _INTERNAL_trim_to_complete_utf8_characters @MANGLE_PREFIX@__INTERNAL_trim_to_complete_utf8_characters
3536
#define testingAccountingGetCountBytesDirect @MANGLE_PREFIX@_testingAccountingGetCountBytesDirect
3637
#define testingAccountingGetCountBytesIndirect @MANGLE_PREFIX@_testingAccountingGetCountBytesIndirect
3738
#define unsignedCharToPrintable @MANGLE_PREFIX@_unsignedCharToPrintable
3839
#define XML_DefaultCurrent @MANGLE_PREFIX@_XML_DefaultCurrent
3940
#define XML_ErrorString @MANGLE_PREFIX@_XML_ErrorString
41+
#define XML_ExpatVersionInfo @MANGLE_PREFIX@_XML_ExpatVersionInfo
4042
#define XML_ExpatVersion @MANGLE_PREFIX@_XML_ExpatVersion
4143
#define XML_ExpatVersionInfo @MANGLE_PREFIX@_XML_ExpatVersionInfo
4244
#define XML_ExternalEntityParserCreate @MANGLE_PREFIX@_XML_ExternalEntityParserCreate
@@ -64,6 +66,7 @@ nm libITKEXPAT-5.3.a | grep " [TRD] " | awk '{ print $3 }' | sort -df | awk '{
6466
#define XML_MemFree @MANGLE_PREFIX@_XML_MemFree
6567
#define XML_MemMalloc @MANGLE_PREFIX@_XML_MemMalloc
6668
#define XML_MemRealloc @MANGLE_PREFIX@_XML_MemRealloc
69+
#define XML_ParseBuffer @MANGLE_PREFIX@_XML_ParseBuffer
6770
#define XML_Parse @MANGLE_PREFIX@_XML_Parse
6871
#define XML_ParseBuffer @MANGLE_PREFIX@_XML_ParseBuffer
6972
#define XML_ParserCreate @MANGLE_PREFIX@_XML_ParserCreate
@@ -73,16 +76,20 @@ nm libITKEXPAT-5.3.a | grep " [TRD] " | awk '{ print $3 }' | sort -df | awk '{
7376
#define XML_ParserReset @MANGLE_PREFIX@_XML_ParserReset
7477
#define XmlParseXmlDecl @MANGLE_PREFIX@_XmlParseXmlDecl
7578
#define XmlParseXmlDeclNS @MANGLE_PREFIX@_XmlParseXmlDeclNS
79+
#define XmlPrologStateInitExternalEntity @MANGLE_PREFIX@_XmlPrologStateInitExternalEntity
7680
#define XmlPrologStateInit @MANGLE_PREFIX@_XmlPrologStateInit
7781
#define XmlPrologStateInitExternalEntity @MANGLE_PREFIX@_XmlPrologStateInitExternalEntity
7882
#define XML_ResumeParser @MANGLE_PREFIX@_XML_ResumeParser
83+
#define XML_SetAllocTrackerActivationThreshold @MANGLE_PREFIX@_XML_SetAllocTrackerActivationThreshold
84+
#define XML_SetAllocTrackerMaximumAmplification @MANGLE_PREFIX@_XML_SetAllocTrackerMaximumAmplification
7985
#define XML_SetAttlistDeclHandler @MANGLE_PREFIX@_XML_SetAttlistDeclHandler
8086
#define XML_SetBase @MANGLE_PREFIX@_XML_SetBase
8187
#define XML_SetBillionLaughsAttackProtectionActivationThreshold @MANGLE_PREFIX@_XML_SetBillionLaughsAttackProtectionActivationThreshold
8288
#define XML_SetBillionLaughsAttackProtectionMaximumAmplification @MANGLE_PREFIX@_XML_SetBillionLaughsAttackProtectionMaximumAmplification
8389
#define XML_SetCdataSectionHandler @MANGLE_PREFIX@_XML_SetCdataSectionHandler
8490
#define XML_SetCharacterDataHandler @MANGLE_PREFIX@_XML_SetCharacterDataHandler
8591
#define XML_SetCommentHandler @MANGLE_PREFIX@_XML_SetCommentHandler
92+
#define XML_SetDefaultHandlerExpand @MANGLE_PREFIX@_XML_SetDefaultHandlerExpand
8693
#define XML_SetDefaultHandler @MANGLE_PREFIX@_XML_SetDefaultHandler
8794
#define XML_SetDefaultHandlerExpand @MANGLE_PREFIX@_XML_SetDefaultHandlerExpand
8895
#define XML_SetDoctypeDeclHandler @MANGLE_PREFIX@_XML_SetDoctypeDeclHandler
@@ -94,6 +101,7 @@ nm libITKEXPAT-5.3.a | grep " [TRD] " | awk '{ print $3 }' | sort -df | awk '{
94101
#define XML_SetEndElementHandler @MANGLE_PREFIX@_XML_SetEndElementHandler
95102
#define XML_SetEndNamespaceDeclHandler @MANGLE_PREFIX@_XML_SetEndNamespaceDeclHandler
96103
#define XML_SetEntityDeclHandler @MANGLE_PREFIX@_XML_SetEntityDeclHandler
104+
#define XML_SetExternalEntityRefHandlerArg @MANGLE_PREFIX@_XML_SetExternalEntityRefHandlerArg
97105
#define XML_SetExternalEntityRefHandler @MANGLE_PREFIX@_XML_SetExternalEntityRefHandler
98106
#define XML_SetExternalEntityRefHandlerArg @MANGLE_PREFIX@_XML_SetExternalEntityRefHandlerArg
99107
#define XML_SetHashSalt @MANGLE_PREFIX@_XML_SetHashSalt
@@ -102,6 +110,7 @@ nm libITKEXPAT-5.3.a | grep " [TRD] " | awk '{ print $3 }' | sort -df | awk '{
102110
#define XML_SetNotStandaloneHandler @MANGLE_PREFIX@_XML_SetNotStandaloneHandler
103111
#define XML_SetParamEntityParsing @MANGLE_PREFIX@_XML_SetParamEntityParsing
104112
#define XML_SetProcessingInstructionHandler @MANGLE_PREFIX@_XML_SetProcessingInstructionHandler
113+
#define XML_SetReparseDeferralEnabled @MANGLE_PREFIX@_XML_SetReparseDeferralEnabled
105114
#define XML_SetReturnNSTriplet @MANGLE_PREFIX@_XML_SetReturnNSTriplet
106115
#define XML_SetSkippedEntityHandler @MANGLE_PREFIX@_XML_SetSkippedEntityHandler
107116
#define XML_SetStartCdataSectionHandler @MANGLE_PREFIX@_XML_SetStartCdataSectionHandler
@@ -118,5 +127,4 @@ nm libITKEXPAT-5.3.a | grep " [TRD] " | awk '{ print $3 }' | sort -df | awk '{
118127
#define XML_UseParserAsHandlerArg @MANGLE_PREFIX@_XML_UseParserAsHandlerArg
119128
#define XmlUtf16Encode @MANGLE_PREFIX@_XmlUtf16Encode
120129
#define XmlUtf8Encode @MANGLE_PREFIX@_XmlUtf8Encode
121-
122130
#endif /* itk_expat_mangle_h */

0 commit comments

Comments
 (0)