On Jan 15 14:45, Ben Wijen wrote: > The old implementation for __cxa_guard_acquire did not return 1, > therefore dynamic initialization was never performed. > > If concurrent-safe dynamic initialisation is ever needed, CXX ABI > must be followed when re-implementing __cxa_guard_acquire (et al.) > --- > winsup/cygwin/Makefile.in | 2 +- > winsup/cygwin/cxx.cc | 10 ---------- > 2 files changed, 1 insertion(+), 11 deletions(-) > > diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in > index a840f2b83..73d9b37fd 100644 > --- a/winsup/cygwin/Makefile.in > +++ b/winsup/cygwin/Makefile.in > @@ -69,7 +69,7 @@ COMMON_CFLAGS=-MMD ${$(*F)_CFLAGS} -Wimplicit-fallthrough=5 > -Werror -fmerge-cons > ifeq ($(target_cpu),x86_64) > COMMON_CFLAGS+=-mcmodel=small > endif > -COMPILE.cc+=${COMMON_CFLAGS} # -std=gnu++14 > +COMPILE.cc+=${COMMON_CFLAGS} -fno-threadsafe-statics # -std=gnu++14 > COMPILE.c+=${COMMON_CFLAGS} > > AR:=@AR@ > diff --git a/winsup/cygwin/cxx.cc b/winsup/cygwin/cxx.cc > index be3268549..b69524aca 100644 > --- a/winsup/cygwin/cxx.cc > +++ b/winsup/cygwin/cxx.cc > @@ -83,16 +83,6 @@ __cxa_pure_virtual (void) > api_fatal ("pure virtual method called"); > } > > -extern "C" void > -__cxa_guard_acquire () > -{ > -} > - > -extern "C" void > -__cxa_guard_release () > -{ > -} > - > /* These routines are made available as last-resort fallbacks > for the application. Should not be used in practice; the > entries in this struct get overwritten by each DLL as it > -- > 2.29.2
Pushed. Thanks, Corinna