cxx.cc: Fix dynamic initialization for static local variables

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.)
This commit is contained in:
Ben Wijen 2021-01-15 14:45:29 +01:00 committed by Corinna Vinschen
parent cbeb1009a9
commit 9e88e840c2
2 changed files with 1 additions and 11 deletions

View File

@ -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@

View File

@ -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