diff --git a/.github/workflows/autotools-cmake.yml b/.github/workflows/autotools-cmake.yml index ac39a7dc..19a054f2 100644 --- a/.github/workflows/autotools-cmake.yml +++ b/.github/workflows/autotools-cmake.yml @@ -57,6 +57,15 @@ jobs: - os: ubuntu-22.04 configure_args: --host=i686-w64-mingw32 cmake_args: -DCMAKE_TOOLCHAIN_FILE=cmake/mingw-toolchain.cmake + - os: ubuntu-24.04 + configure_args: >- + --enable-symbol-versioning + LDFLAGS=-Wl,--no-undefined-version + cmake_args: >- + -DEXPAT_SYMBOL_VERSIONING=ON + -DCMAKE_EXE_LINKER_FLAGS=-Wl,--no-undefined-version + -DCMAKE_MODULE_LINKER_FLAGS=-Wl,--no-undefined-version + -DCMAKE_SHARED_LINKER_FLAGS=-Wl,--no-undefined-version defaults: run: shell: bash @@ -170,9 +179,15 @@ jobs: - name: (Linux except MinGW) Check for identical exported symbols from both build systems if: "${{ runner.os == 'Linux' && ! contains(matrix.configure_args, 'mingw') }}" + env: + symbol_versioning: "${{ contains(matrix.configure_args, '--enable-symbol-versioning') && 'true' || 'false' }}" run: | list_shared_library_symbols_sh="${GITHUB_WORKSPACE}"/.github/workflows/scripts/list-shared-library-symbols.sh - exported_symbols_txt="${GITHUB_WORKSPACE}"/.github/workflows/data/exported-symbols.txt + if ${symbol_versioning} ; then + exported_symbols_txt="${GITHUB_WORKSPACE}"/.github/workflows/data/exported-symbols-versioned.txt + else + exported_symbols_txt="${GITHUB_WORKSPACE}"/.github/workflows/data/exported-symbols-unversioned.txt + fi set -x cd expat/expat-*.*.*/ diff --git a/.github/workflows/data/exported-symbols.txt b/.github/workflows/data/exported-symbols-unversioned.txt similarity index 100% rename from .github/workflows/data/exported-symbols.txt rename to .github/workflows/data/exported-symbols-unversioned.txt diff --git a/.github/workflows/data/exported-symbols-versioned.txt b/.github/workflows/data/exported-symbols-versioned.txt new file mode 100644 index 00000000..4e71b7b7 --- /dev/null +++ b/.github/workflows/data/exported-symbols-versioned.txt @@ -0,0 +1,71 @@ +XML_DefaultCurrent@@LIBEXPAT_1.0.0 +XML_ErrorString@@LIBEXPAT_1.0.0 +XML_ExpatVersionInfo@@LIBEXPAT_1.95.3 +XML_ExpatVersion@@LIBEXPAT_1.95.0 +XML_ExternalEntityParserCreate@@LIBEXPAT_1.0.0 +XML_FreeContentModel@@LIBEXPAT_1.95.6 +XML_GetBase@@LIBEXPAT_1.0.0 +XML_GetBuffer@@LIBEXPAT_1.0.0 +XML_GetCurrentByteCount@@LIBEXPAT_1.1.0 +XML_GetCurrentByteIndex@@LIBEXPAT_1.0.0 +XML_GetCurrentColumnNumber@@LIBEXPAT_1.0.0 +XML_GetCurrentLineNumber@@LIBEXPAT_1.0.0 +XML_GetErrorCode@@LIBEXPAT_1.0.0 +XML_GetFeatureList@@LIBEXPAT_1.95.5 +XML_GetIdAttributeIndex@@LIBEXPAT_1.95.0 +XML_GetInputContext@@LIBEXPAT_1.95.0 +XML_GetParsingStatus@@LIBEXPAT_1.95.8 +XML_GetSpecifiedAttributeCount@@LIBEXPAT_1.1.0 +XML_MemFree@@LIBEXPAT_1.95.6 +XML_MemMalloc@@LIBEXPAT_1.95.6 +XML_MemRealloc@@LIBEXPAT_1.95.6 +XML_ParseBuffer@@LIBEXPAT_1.0.0 +XML_Parse@@LIBEXPAT_1.0.0 +XML_ParserCreate@@LIBEXPAT_1.0.0 +XML_ParserCreate_MM@@LIBEXPAT_1.95.0 +XML_ParserCreateNS@@LIBEXPAT_1.1.0 +XML_ParserFree@@LIBEXPAT_1.0.0 +XML_ParserReset@@LIBEXPAT_1.95.3 +XML_ResumeParser@@LIBEXPAT_1.95.8 +XML_SetAllocTrackerActivationThreshold@@LIBEXPAT_2.7.2 +XML_SetAllocTrackerMaximumAmplification@@LIBEXPAT_2.7.2 +XML_SetAttlistDeclHandler@@LIBEXPAT_1.95.0 +XML_SetBase@@LIBEXPAT_1.0.0 +XML_SetBillionLaughsAttackProtectionActivationThreshold@@LIBEXPAT_2.4.0 +XML_SetBillionLaughsAttackProtectionMaximumAmplification@@LIBEXPAT_2.4.0 +XML_SetCdataSectionHandler@@LIBEXPAT_1.1.0 +XML_SetCharacterDataHandler@@LIBEXPAT_1.0.0 +XML_SetCommentHandler@@LIBEXPAT_1.1.0 +XML_SetDefaultHandlerExpand@@LIBEXPAT_1.1.0 +XML_SetDefaultHandler@@LIBEXPAT_1.0.0 +XML_SetDoctypeDeclHandler@@LIBEXPAT_1.95.0 +XML_SetElementDeclHandler@@LIBEXPAT_1.95.0 +XML_SetElementHandler@@LIBEXPAT_1.0.0 +XML_SetEncoding@@LIBEXPAT_1.1.0 +XML_SetEndCdataSectionHandler@@LIBEXPAT_1.95.0 +XML_SetEndDoctypeDeclHandler@@LIBEXPAT_1.95.0 +XML_SetEndElementHandler@@LIBEXPAT_1.95.0 +XML_SetEndNamespaceDeclHandler@@LIBEXPAT_1.95.0 +XML_SetEntityDeclHandler@@LIBEXPAT_1.95.0 +XML_SetExternalEntityRefHandlerArg@@LIBEXPAT_1.1.0 +XML_SetExternalEntityRefHandler@@LIBEXPAT_1.0.0 +XML_SetHashSalt@@LIBEXPAT_2.1.0 +XML_SetNamespaceDeclHandler@@LIBEXPAT_1.1.0 +XML_SetNotationDeclHandler@@LIBEXPAT_1.0.0 +XML_SetNotStandaloneHandler@@LIBEXPAT_1.1.0 +XML_SetParamEntityParsing@@LIBEXPAT_1.95.0 +XML_SetProcessingInstructionHandler@@LIBEXPAT_1.0.0 +XML_SetReparseDeferralEnabled@@LIBEXPAT_2.6.0 +XML_SetReturnNSTriplet@@LIBEXPAT_1.95.0 +XML_SetSkippedEntityHandler@@LIBEXPAT_1.95.4 +XML_SetStartCdataSectionHandler@@LIBEXPAT_1.95.0 +XML_SetStartDoctypeDeclHandler@@LIBEXPAT_1.95.0 +XML_SetStartElementHandler@@LIBEXPAT_1.95.0 +XML_SetStartNamespaceDeclHandler@@LIBEXPAT_1.95.0 +XML_SetUnknownEncodingHandler@@LIBEXPAT_1.0.0 +XML_SetUnparsedEntityDeclHandler@@LIBEXPAT_1.0.0 +XML_SetUserData@@LIBEXPAT_1.0.0 +XML_SetXmlDeclHandler@@LIBEXPAT_1.95.0 +XML_StopParser@@LIBEXPAT_1.95.8 +XML_UseForeignDTD@@LIBEXPAT_1.95.5 +XML_UseParserAsHandlerArg@@LIBEXPAT_1.0.0