g++ 5.3 AIX call_once issues
Jonathan Wakely
jwakely.gcc@gmail.com
Tue Oct 31 11:47:00 GMT 2017
On 29 October 2017 at 16:14, Brian Groose wrote:
> I'm hitting what looks like pr67478 (which is fixed by pr 68192).
>
> The example in PR67478 fails with the same error. However, I'm running g++
> 5.3.0, so the issue should be fixed with my compiler.
>
> I can see the symbols in libstdc++.a as type L as expected.
>
> Do I need to compile g++ with some special option for this?
>
> TLS using the thread_local keyword works fine, it's just that the linker
> can't seem to find the symbols for call once:
> ld: 0711-317 ERROR: Undefined symbol: std::__once_callable
> ld: 0711-317 ERROR: Undefined symbol: std::__once_call
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
> information.
> collect2: error: ld returned 8 exit status
Those symbols don't use thread_local, they use __thread, which isn't
necessarily implemented the same way.
Does using __thread for thread-local variables work?
More information about the Gcc-help
mailing list