On Wed, Apr 6, 2016 at 8:11 AM, Christophe Lyon christophe.lyon@linaro.org wrote:
On 6 April 2016 at 16:53, fengwei.yin fengwei.yin@linaro.org wrote:
With arm gcc 5.3, the C++ apps crash in one class constructor call. And gdb shows some vtbl items of the class are not relocated.
With arm gcc 4.9, if set breakpoint in that constructor, we could see the vtbl items of the class are relocated.
gcc 5.x implements C++ 2011 by default. gcc 4.9.x implements C++ 2003 by default. There were some ABI changes required to implement C++ 2011. If the android loader has knowledge of the gcc C++ ABI, maybe it needs to be updated to understand the new C++ 2011 ABI. You could try forcing the old ABI to see if that solves the problem. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
And/or try using the older language standard with -std=c++03 or -std=gnu++03 to see if maybe that helps.
Jim