[Bug c++/67478] New: gcc-5.1.0/gcc-5.2.0 undefined symbol std::__once_callable in AIX 6.1
tgard at opentext dot com
gcc-bugzilla@gcc.gnu.org
Mon Sep 7 11:53:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67478
Bug ID: 67478
Summary: gcc-5.1.0/gcc-5.2.0 undefined symbol
std::__once_callable in AIX 6.1
Product: gcc
Version: 5.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: tgard at opentext dot com
Target Milestone: ---
Created attachment 36299
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36299&action=edit
libstdc++ config.log
When using std::call_once there are two undefined symbols in AIX 6.1 using
gcc-5.1.0 or gcc-5.2.0:
c++ -maix64 -pthread -std=c++11 -c start.cxx
c++ -maix64 -pthread -lstdc++ start.o -o start
ld: 0711-317 ERROR: Undefined symbol: std::__once_callable
ld: 0711-317 ERROR: Undefined symbol: std::__once_call
gcc 5.2.0 configured with:
/builds/gbgbuild/bld/gcc/gcc-5.2.0/configure --prefix=/usr/local/gcc-5.2.0
--enable-languages=c,c++ --with-as=/usr/bin/as --with-ld=/usr/bin/ld
--enable-threads --enable-cxa_atexit --enable-libstdcxx-threads --enable-tls
--with-gmp=/usr/local/lib32-static --with-mpfr=/usr/local/lib32-static
--with-mpc=/usr/local/lib32-static
gcc-5.1.0 produce the same output. This was configured without the parameters
"--enable-libstdcxx-threads --enable-tls".
The symbols are present in libstdc++.so.6 marked with "L" meaning Global
thread-local symbol (TLS)
The source is:
#include <stdio.h>
#include <mutex>
void print_once()
{
static int cnt = 0;
static std::once_flag flag;
std::call_once(
flag,
[&]()
{
printf("%d\n", cnt);
cnt++;
} );
}
int main( void )
{
print_once();
print_once();
return 0;
}
More information about the Gcc-bugs
mailing list