mirror of https://mirror.osredm.com/root/redis.git
Fix C11_ATOMIC detection on GNU Make 4.3 (#10033)
Older version of GNU Make (<4.3) required quoting of number signs (#) to avoid them being treated as a comment. Newer versions will treat this quote as a literal. This issue and a proposed solution is discussed here: https://lists.gnu.org/archive/html/info-gnu/2020-01/msg00004.html Co-authored-by: Yossi Gottlieb <yossigo@gmail.com>
This commit is contained in:
parent
ac84b1cd82
commit
747b08bee0
|
@ -34,8 +34,10 @@ endif
|
||||||
WARN=-Wall -W -Wno-missing-field-initializers
|
WARN=-Wall -W -Wno-missing-field-initializers
|
||||||
OPT=$(OPTIMIZATION)
|
OPT=$(OPTIMIZATION)
|
||||||
|
|
||||||
# Detect if the compiler supports C11 _Atomic
|
# Detect if the compiler supports C11 _Atomic.
|
||||||
C11_ATOMIC := $(shell sh -c 'echo "\#include <stdatomic.h>" > foo.c; \
|
# NUMBER_SIGN_CHAR is a workaround to support both GNU Make 4.3 and older versions.
|
||||||
|
NUMBER_SIGN_CHAR := \#
|
||||||
|
C11_ATOMIC := $(shell sh -c 'echo "$(NUMBER_SIGN_CHAR)include <stdatomic.h>" > foo.c; \
|
||||||
$(CC) -std=c11 -c foo.c -o foo.o > /dev/null 2>&1; \
|
$(CC) -std=c11 -c foo.c -o foo.o > /dev/null 2>&1; \
|
||||||
if [ -f foo.o ]; then echo "yes"; rm foo.o; fi; rm foo.c')
|
if [ -f foo.o ]; then echo "yes"; rm foo.o; fi; rm foo.c')
|
||||||
ifeq ($(C11_ATOMIC),yes)
|
ifeq ($(C11_ATOMIC),yes)
|
||||||
|
|
Loading…
Reference in New Issue