https://bugs.kde.org/show_bug.cgi?id=384729
Bug ID: 384729 Summary: __libc_freeres inhibits cross-platform valgrind Product: valgrind Version: 3.13.0 Platform: Fedora RPMs OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: memcheck Assignee: jsew...@acm.org Reporter: jrei...@bitwagon.com Target Milestone: --- vgpreload_core-arm-linux.so from valgrind-3.13.0-6.fc27.armv7hl demands that the symbol __libc_freeres exist [typically found in GNU libc.so.6], which prevents that particular valgrind from checking apps whose libraries do not have such a symbol, such as the libraries used by Android. Many Android apps run just fine on Linux (using the Android runtime linker, libc, libm, libdl, etc.), and valgrind should be able to check them. The complaint from one Android app is: libc: CANNOT LINK EXECUTABLE "./my_app": cannot locate symbol "__libc_freeres" referenced by "/usr/lib/valgrind/vgpreload_core-arm-inux.so"... So, do not reference __libc_freeres directly. Make it a Weak reference (check the pointer value; if 0 then do not use it), or do an explicit lookup equivalent to dlsym(handle, "__libc_freeres"). ===== readelf --relocs /usr/lib/valgrind/vgpreload_core-arm-linux.so Relocation section '.rel.plt' at offset 0x3d0 contains 4 entries: Offset Info Type Sym.Value Sym. Name 0001100c 00000316 R_ARM_JUMP_SLOT 00000000 __cxa_finalize 00011010 00000416 R_ARM_JUMP_SLOT 00000000 _ZN9__gnu_cxx9__freere 00011014 00000616 R_ARM_JUMP_SLOT 00000000 __libc_freeres 00011018 00000816 R_ARM_JUMP_SLOT 00000000 __gmon_start__ ===== -- You are receiving this mail because: You are watching all bug changes.