powervr-graphics / Native_SDK

C++ cross-platform 3D graphics SDK. Includes demos & helper code (resource loading etc.) to speed up development of Vulkan, OpenGL ES 2.0 & 3.x applications
https://docs.imgtec.com/sdk-documentation/html/introduction.html
MIT License
702 stars 197 forks source link

[BUG] libGLESv2.so has undocumented link dependencies to tinyxml2 #82

Closed dliepelt closed 3 months ago

dliepelt commented 7 months ago

Description

When creating an OpenGL application under Linux (x86_64) which links against the libGLESv2.so from the Native_SDK (R23.2.1-v5.11.1) I get undefined reference errors from the libGLESv2.so for the following symbols: tinyxml2::XMLNode::NextSiblingElement(char const*) const tinyxml2::XMLElement::FindAttribute(char const*) const tinyxml2::XMLDocument::Parse(char const*, unsigned long) tinyxml2::XMLNode::FirstChildElement(char const*) const tinyxml2::XMLDocument::LoadFile(_IO_FILE*) tinyxml2::StrPair::GetStr() tinyxml2::XMLElement::GetText() const tinyxml2::XMLAttribute::QueryIntValue(int*) const tinyxml2::XMLDocument::~XMLDocument() tinyxml2::XMLDocument::XMLDocument(bool, tinyxml2::Whitespace)

Shouldn't the libs be usable without further dependencies (like under Windows)?

Repro steps

link-time error therefore no backtrace

Environment

Additional Info

Also tested with same SDK under Windows without any issues.

AlejandroCosin commented 7 months ago

Hi dliepelt,

Thanks for reporting this issue, I will try to reproduce it and come back with possible fixes.

Best regards, Alejandro

GeFrIt42 commented 7 months ago

hi Alejandro,

not sure if this can help, i have looked to the elf header with nm and readelf, it seems that this library dynamically link against tynixml2, but ldd says that it doesn't link against it. i have used "patchelf --add-needed tinyxml2.so" this have made the dynamic linker happy,

could be that in your build system you remove the requirement to tinyxml2.so as post build action?

best regard, GeFrIt

AlejandroCosin commented 6 months ago

Hi GeFrIt,

Thanks a lot for the detailed information.

@dliepelt and @GeFrIt42 I checked internally and the fix of this issue will be available in the next SDK release (24.1). The libraries from the SDK will be updated for that release.

Best regards, Alejandro

AlejandroCosin commented 3 months ago

Hi @dliepelt,

The latest release of the SDK (24.1) incorporates the fixes you requested. I will be closing this issue, feel free to reopen it if you experience any problems.

Best regards, Alejandro