I figured it out. I work across a few platforms, so we build binutils + gcc for all of them. I had left the binutils' nm around so that was being used during the build of gcc. Binutils' nm shows "?" for the symbol type and AIX's nm shows "L", the build process is expecting "L" as seen in the fix for PR68192. Once I rebuilt gcc without binutils' nm available, ld was able to find the symbols for std::__once_call. Thanks for the suggestions everyone! On Tue, Oct 31, 2017 at 7:41 AM, Jonathan Wakely <jwakely.gcc@xxxxxxxxx> wrote: > On 31 October 2017 at 11:29, Jeffrey Walton wrote: > > On Tue, Oct 31, 2017 at 7:15 AM, Bob Wilkinson > > Maybe worth mentioning... std::call_once is c++11. I don't recall what > > GCC 4.8 uses by default, but -std=gnu11 or -std=c++11 may be useful. > > Older GCC's, like 4.4 and 4.7, are likely using gnu++03 by default > > (and may lack gnu++11 or c++11 support). > > Using gnu++03 would not compile C++11 code and then give a linker error > though. >