The attached program changes the output from "true" to "false" when the -Bsymbolic / -Bsymbolic-functions options are passed to GCC. This happens on ARM -- on x86-64 output is always "true".
The program involves a comparison, within a shared library, of a PMF defined inside the shared library itself with the same PMF passed by the application.
(The long story is that Qt 5 is taking PMFs in its public API, and the comparison failing inside of Qt shared libraries is breaking code on ARM, as -Bsymbolic is set by default there.)
The bug has been acknowledged, and tentative patch has been kindly provided by W. Newton here:
Created attachment 7474
testcase
The attached program changes the output from "true" to "false" when the -Bsymbolic / -Bsymbolic- functions options are passed to GCC. This happens on ARM -- on x86-64 output is always "true".
The program involves a comparison, within a shared library, of a PMF defined inside the shared library itself with the same PMF passed by the application.
Compile with:
> g++ -fPIC -shared -Wall -o libshared.so -Wl,-Bsymbolic shared.cpp
> g++ -fPIE -Wall -o main main.cpp -L. -lshared
(The long story is that Qt 5 is taking PMFs in its public API, and the comparison failing inside of Qt shared libraries is breaking code on ARM, as -Bsymbolic is set by default there.)
The bug has been acknowledged, and tentative patch has been kindly provided by W. Newton here:
> https:/ /sourceware. org/ml/ binutils/ 2014-01/ msg00172. html
but there hasn't been any activity from what I can see, so I'm opening this bug report to keep track of the issue.
References:
> http:// lists.linaro. org/pipermail/ linaro- toolchain/ 2014-January/ 003942. html /bugreports. qt-project. org/browse/ QTBUG-36129
> https:/