Files
gentoo/dev-util/codeblocks/files/codeblocks-25.03_autotools-fix-linking-TinyXML-r13855.patch
Matthew White d5ebc23824 dev-util/codeblocks: autotools fix linking TinyXML
Ref. https://sourceforge.net/p/codeblocks/code/13855/

Upstream patch to fix 'undefined reference' linker errors by adding
missing TinyXML libraries to the linker flags.

This resolves errors such as:

AutoVersioning.cpp:(.text+0x7755): undefined reference to `TiXmlNode::FirstChildElement(char const*) const'

See the included patch for additional details and comments.

Package-Manager: portage-3.0.82.2
Signed-off-by: Matthew White <mehw.is.me@proton.me>
Part-of: https://github.com/gentoo/gentoo/pull/46831
Closes: https://github.com/gentoo/gentoo/pull/46831
Signed-off-by: Sam James <sam@gentoo.org>
2026-09-28 22:53:08 +01:00

238 lines
9.4 KiB
Diff

autotools: fix link error when system tinyxml is used. (Thanks hesti)
See discussion in C::B forum:
https://forums.codeblocks.org/index.php/topic,26015.msg177209.html
Authored by: christoj 2026-05-26
https://sourceforge.net/p/codeblocks/code/13855/
$ svn diff -r r13854:r13855 > r13855.patch
Patch amended to apply on Gentoo (adds 'a/' and 'b/' prefixes).
This should fix dev-util/codeblocks-25.03 'undefined reference'
compile errors such as the following:
libtool: link: x86_64-pc-linux-gnu-g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-pc-linux-gnu/15/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15/crtbeginS.o .libs/AutoVersioning.o .libs/avChangesDlg.o .libs/avHeader.o .libs/avSvnRevision.o .libs/avVersionEditorDlg.o -Wl,-rpath -Wl,/var/tmp/portage/dev-util/codeblocks-25.03-r2/work/codeblocks_25.03/src/sdk/.libs -Wl,--as-needed ../../../sdk/.libs/libcodeblocks.so -L/usr/lib64 -lwx_gtk3u_aui-3.2 -lwx_gtk3u_propgrid-3.2 -lwx_gtk3u_richtext-3.2 -lwx_gtk3u_xrc-3.2 -lwx_gtk3u_html-3.2 -lwx_gtk3u_qa-3.2 -lwx_gtk3u_core-3.2 -lwx_baseu_xml-3.2 -lwx_baseu_net-3.2 -lwx_baseu-3.2 -lpthread -ldl -L/usr/lib/gcc/x86_64-pc-linux-gnu/15 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15/../../.. -L/lib -L/usr/lib -lstdc++ -lm -lgcc_s -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/15/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15/../../../../lib64/crtn.o -O2 -march=x86-64 -mtune=generic -Wl,--no-undefined -Wl,-O1 -Wl,-z -Wl,pack-relative-relocs -pthread -Wl,-soname -Wl,libAutoVersioning.so -o .libs/libAutoVersioning.so
/usr/x86_64-pc-linux-gnu/binutils-bin/2.47/ld: .libs/AutoVersioning.o: in function `AutoVersioning::OnProjectLoadingHook(cbProject*, TiXmlElement*, bool)':
AutoVersioning.cpp:(.text+0x7755): undefined reference to `TiXmlNode::FirstChildElement(char const*) const'
$ find /usr/lib64/ -name "libtinyxml.so" | xargs -I {} sh -c 'nm -D --defined-only ${1} 2>/dev/null | grep FirstChildElement && echo ${1}' _ {}
000000000000db00 T _ZNK11TiXmlHandle17FirstChildElementEPKc
000000000000dac0 T _ZNK11TiXmlHandle17FirstChildElementEv
000000000000aa70 T _ZNK9TiXmlNode17FirstChildElementEPKc
000000000000aa30 T _ZNK9TiXmlNode17FirstChildElementEv
/usr/lib64/libtinyxml.so
Index: src/plugins/contrib/AutoVersioning/Makefile.am
===================================================================
--- a/src/plugins/contrib/AutoVersioning/Makefile.am (revision 13854)
+++ b/gsrc/plugins/contrib/AutoVersioning/Makefile.am (revision 13855)
@@ -11,6 +11,10 @@
libAutoVersioning_la_LIBADD = ../../../sdk/libcodeblocks.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+libAutoVersioning_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libAutoVersioning_la_SOURCES = AutoVersioning.cpp \
avChangesDlg.cpp \
avHeader.cpp \
Index: src/plugins/contrib/BrowseTracker/Makefile.am
===================================================================
--- a/src/plugins/contrib/BrowseTracker/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/BrowseTracker/Makefile.am (revision 13855)
@@ -11,6 +11,10 @@
libBrowseTracker_la_LIBADD = ../../../sdk/libcodeblocks.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+libBrowseTracker_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libBrowseTracker_la_SOURCES = BrowseTracker.cpp \
Version.cpp \
BrowseMarks.cpp \
Index: src/plugins/contrib/CppCheck/Makefile.am
===================================================================
--- a/src/plugins/contrib/CppCheck/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/CppCheck/Makefile.am (revision 13855)
@@ -13,6 +13,10 @@
libCppCheck_la_LIBADD = ../../../sdk/libcodeblocks.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+libCppCheck_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libCppCheck_la_SOURCES = CppCheck.cpp \
CppCheckListLog.cpp \
ConfigPanel.cpp
Index: src/plugins/contrib/DoxyBlocks/Makefile.am
===================================================================
--- a/src/plugins/contrib/DoxyBlocks/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/DoxyBlocks/Makefile.am (revision 13855)
@@ -11,6 +11,10 @@
libDoxyBlocks_la_LIBADD = ../../../sdk/libcodeblocks.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+libDoxyBlocks_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libDoxyBlocks_la_SOURCES = AutoDoc.cpp \
Config.cpp \
ConfigPanel.cpp \
Index: src/plugins/contrib/EditorConfig/Makefile.am
===================================================================
--- a/src/plugins/contrib/EditorConfig/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/EditorConfig/Makefile.am (revision 13855)
@@ -11,6 +11,10 @@
libEditorConfig_la_LIBADD = ../../../sdk/libcodeblocks.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+libEditorConfig_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libEditorConfig_la_SOURCES = \
EditorConfigUI.cpp \
EditorConfig.cpp
Index: src/plugins/contrib/Valgrind/Makefile.am
===================================================================
--- a/src/plugins/contrib/Valgrind/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/Valgrind/Makefile.am (revision 13855)
@@ -13,6 +13,10 @@
libValgrind_la_LIBADD = ../../../sdk/libcodeblocks.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+libValgrind_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libValgrind_la_SOURCES = Valgrind.cpp \
ValgrindListLog.cpp \
valgrind_config.cpp
Index: src/plugins/contrib/clangd_client/Makefile.am
===================================================================
--- a/src/plugins/contrib/clangd_client/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/clangd_client/Makefile.am (revision 13855)
@@ -36,6 +36,10 @@
$(WX_LIBS)
if ! CODEBLOCKS_NT
+libclangd_client_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
+if ! CODEBLOCKS_NT
libclangd_client_la_LIBADD += -lutil
endif
Index: src/plugins/contrib/codesnippets/Makefile.am
===================================================================
--- a/src/plugins/contrib/codesnippets/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/codesnippets/Makefile.am (revision 13855)
@@ -18,6 +18,10 @@
$(WX_GTK_LIBS) \
$(WX_X11_LIBS)
+if ! CODEBLOCKS_NT
+libcodesnippets_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libcodesnippets_la_SOURCES = codesnippets.cpp \
codesnippetstreectrl.cpp \
codesnippetswindow.cpp \
Index: src/plugins/contrib/envvars/Makefile.am
===================================================================
--- a/src/plugins/contrib/envvars/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/envvars/Makefile.am (revision 13855)
@@ -13,6 +13,10 @@
libenvvars_la_LIBADD = ../../../sdk/libcodeblocks.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+libenvvars_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libenvvars_la_SOURCES = envvars.cpp \
envvars_cfgdlg.cpp \
envvars_common.cpp \
Index: src/plugins/contrib/lib_finder/Makefile.am
===================================================================
--- a/src/plugins/contrib/lib_finder/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/lib_finder/Makefile.am (revision 13855)
@@ -17,6 +17,10 @@
../wxContribItems/wxFlatNotebook/libwxflatnotebook.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+liblib_finder_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
liblib_finder_la_SOURCES = \
librariesdlg.cpp \
dirlistdlg.cpp \
Index: src/plugins/contrib/wxSmithAui/Makefile.am
===================================================================
--- a/src/plugins/contrib/wxSmithAui/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/wxSmithAui/Makefile.am (revision 13855)
@@ -16,6 +16,10 @@
../wxSmith/libwxsmithlib.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+libwxSmithAui_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
EXTRA_DIST = $(srcdir)/images/*.xpm \
$(srcdir)/images/*.xcf \
$(srcdir)/wxsmith/*.wxs \
Index: src/plugins/contrib/wxSmithContribItems/Makefile.am
===================================================================
--- a/src/plugins/contrib/wxSmithContribItems/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/wxSmithContribItems/Makefile.am (revision 13855)
@@ -40,6 +40,10 @@
../wxContribItems/wxmathplot/libwxmathplot.la \
$(WX_LIBS)
+if ! CODEBLOCKS_NT
+libwxsmithcontribitems_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
EXTRA_DIST = $(srcdir)/wxchart/*.xpm \
$(srcdir)/wxchart/*.png \
$(srcdir)/wximagebutton/*.xpm \
Index: src/plugins/contrib/SpellChecker/Makefile.am
===================================================================
--- a/src/plugins/contrib/SpellChecker/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/SpellChecker/Makefile.am (revision 13855)
@@ -17,6 +17,10 @@
$(WX_LIBS) \
$(CB_HUNSPELL_LIBS)
+if ! CODEBLOCKS_NT
+libSpellChecker_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libSpellChecker_la_SOURCES = DictionariesNeededDialog.cpp \
MySpellingDialog.cpp \
OnlineSpellChecker.cpp \
Index: src/plugins/contrib/source_exporter/Makefile.am
===================================================================
--- a/src/plugins/contrib/source_exporter/Makefile.am (revision 13854)
+++ b/src/plugins/contrib/source_exporter/Makefile.am (revision 13855)
@@ -18,6 +18,10 @@
wxPdfDocument/libwxPdfDocument.la \
$(WX_LIBS) $(CB_FONTCONFIG_LIBS)
+if ! CODEBLOCKS_NT
+libexporter_la_LIBADD += $(CB_TINYXML_LIBS)
+endif
+
libexporter_la_SOURCES = BaseExporter.cpp \
exporter.cpp \
HTMLExporter.cpp \