Skip to content

Commit 70f806b

Browse files
authored
build : detect host compiler and cuda compiler separately (#4414)
1 parent 9fb13f9 commit 70f806b

File tree

4 files changed

+170
-117
lines changed

4 files changed

+170
-117
lines changed

.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ indent_size = 4
1515
[Makefile]
1616
indent_style = tab
1717

18+
[scripts/*.mk]
19+
indent_style = tab
20+
1821
[prompts/*.txt]
1922
insert_final_newline = unset
2023

CMakeLists.txt

Lines changed: 86 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -397,57 +397,102 @@ if (LLAMA_HIPBLAS)
397397
endif()
398398
endif()
399399

400+
function(get_flags CCID CCVER)
401+
set(C_FLAGS "")
402+
set(CXX_FLAGS "")
403+
404+
if (CCID MATCHES "Clang")
405+
set(C_FLAGS -Wunreachable-code-break -Wunreachable-code-return)
406+
set(CXX_FLAGS -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi)
407+
408+
if (
409+
(CCID STREQUAL "Clang" AND CCVER VERSION_GREATER_EQUAL 3.8.0) OR
410+
(CCID STREQUAL "AppleClang" AND CCVER VERSION_GREATER_EQUAL 7.3.0)
411+
)
412+
set(C_FLAGS ${C_FLAGS} -Wdouble-promotion)
413+
endif()
414+
elseif (CCID STREQUAL "GNU")
415+
set(C_FLAGS -Wdouble-promotion)
416+
set(CXX_FLAGS -Wno-array-bounds)
417+
418+
if (CCVER VERSION_GREATER_EQUAL 7.1.0)
419+
set(CXX_FLAGS ${CXX_FLAGS} -Wno-format-truncation)
420+
endif()
421+
if (CCVER VERSION_GREATER_EQUAL 8.1.0)
422+
set(CXX_FLAGS ${CXX_FLAGS} -Wextra-semi)
423+
endif()
424+
endif()
425+
426+
set(GF_C_FLAGS ${C_FLAGS} PARENT_SCOPE)
427+
set(GF_CXX_FLAGS ${CXX_FLAGS} PARENT_SCOPE)
428+
endfunction()
429+
400430
if (LLAMA_ALL_WARNINGS)
401431
if (NOT MSVC)
402-
set(warning_flags -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function)
403-
set(c_flags -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration)
404-
set(cxx_flags -Wmissing-declarations -Wmissing-noreturn)
405-
set(host_cxx_flags "")
406-
407-
if (CMAKE_C_COMPILER_ID MATCHES "Clang")
408-
set(warning_flags ${warning_flags} -Wunreachable-code-break -Wunreachable-code-return)
409-
set(host_cxx_flags ${host_cxx_flags} -Wmissing-prototypes -Wextra-semi)
410-
411-
if (
412-
(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 3.8.0) OR
413-
(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 7.3.0)
414-
)
415-
set(c_flags ${c_flags} -Wdouble-promotion)
416-
endif()
417-
elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU")
418-
set(c_flags ${c_flags} -Wdouble-promotion)
419-
set(host_cxx_flags ${host_cxx_flags} -Wno-array-bounds)
432+
set(WARNING_FLAGS -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function)
433+
set(C_FLAGS -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes
434+
-Werror=implicit-int -Werror=implicit-function-declaration)
435+
set(CXX_FLAGS -Wmissing-declarations -Wmissing-noreturn)
420436

421-
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7.1.0)
422-
set(host_cxx_flags ${host_cxx_flags} -Wno-format-truncation)
423-
endif()
424-
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.1.0)
425-
set(host_cxx_flags ${host_cxx_flags} -Wextra-semi)
426-
endif()
427-
endif()
437+
set(C_FLAGS ${WARNING_FLAGS} ${C_FLAGS})
438+
set(CXX_FLAGS ${WARNING_FLAGS} ${CXX_FLAGS})
439+
440+
get_flags(${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})
441+
442+
add_compile_options("$<$<COMPILE_LANGUAGE:C>:${C_FLAGS};${GF_C_FLAGS}>"
443+
"$<$<COMPILE_LANGUAGE:CXX>:${CXX_FLAGS};${GF_CXX_FLAGS}>")
428444
else()
429445
# todo : msvc
446+
set(C_FLAGS "")
447+
set(CXX_FLAGS "")
430448
endif()
449+
endif()
431450

432-
set(c_flags ${c_flags} ${warning_flags})
433-
set(cxx_flags ${cxx_flags} ${warning_flags})
434-
add_compile_options("$<$<COMPILE_LANGUAGE:C>:${c_flags}>"
435-
"$<$<COMPILE_LANGUAGE:CXX>:${cxx_flags}>"
436-
"$<$<COMPILE_LANGUAGE:CXX>:${host_cxx_flags}>")
451+
if (LLAMA_CUBLAS)
452+
set(CUDA_FLAGS ${CXX_FLAGS} -use_fast_math)
453+
if (NOT MSVC)
454+
set(CUDA_FLAGS ${CUDA_FLAGS} -Wno-pedantic)
455+
endif()
437456

438-
endif()
457+
if (LLAMA_ALL_WARNINGS AND NOT MSVC)
458+
set(NVCC_CMD ${CMAKE_CUDA_COMPILER} .c)
459+
if (NOT CMAKE_CUDA_HOST_COMPILER STREQUAL "")
460+
set(NVCC_CMD ${NVCC_CMD} -ccbin ${CMAKE_CUDA_HOST_COMPILER})
461+
endif()
439462

440-
if (NOT MSVC)
441-
set(cuda_flags -Wno-pedantic)
442-
endif()
443-
set(cuda_flags ${cxx_flags} -use_fast_math ${cuda_flags})
463+
execute_process(
464+
COMMAND ${NVCC_CMD} -Xcompiler --version
465+
OUTPUT_VARIABLE CUDA_CCFULLVER
466+
ERROR_QUIET
467+
)
444468

445-
list(JOIN host_cxx_flags " " cuda_host_flags) # pass host compiler flags as a single argument
446-
if (NOT cuda_host_flags STREQUAL "")
447-
set(cuda_flags ${cuda_flags} -Xcompiler ${cuda_host_flags})
448-
endif()
469+
if (NOT CUDA_CCFULLVER MATCHES clang)
470+
set(CUDA_CCID "GNU")
471+
execute_process(
472+
COMMAND ${NVCC_CMD} -Xcompiler "-dumpfullversion -dumpversion"
473+
OUTPUT_VARIABLE CUDA_CCVER
474+
ERROR_QUIET
475+
)
476+
else()
477+
if (CUDA_CCFULLVER MATCHES Apple)
478+
set(CUDA_CCID "AppleClang")
479+
else()
480+
set(CUDA_CCID "Clang")
481+
endif()
482+
string(REGEX REPLACE "^.* version ([0-9.]*).*$" "\\1" CUDA_CCVER ${CUDA_CCFULLVER})
483+
endif()
484+
485+
message("-- CUDA host compiler is ${CUDA_CCID} ${CUDA_CCVER}")
449486

450-
add_compile_options("$<$<COMPILE_LANGUAGE:CUDA>:${cuda_flags}>")
487+
get_flags(${CUDA_CCID} ${CUDA_CCVER})
488+
list(JOIN GF_CXX_FLAGS " " CUDA_CXX_FLAGS) # pass host compiler flags as a single argument
489+
if (NOT CUDA_CXX_FLAGS STREQUAL "")
490+
set(CUDA_FLAGS ${CUDA_FLAGS} -Xcompiler ${CUDA_CXX_FLAGS})
491+
endif()
492+
endif()
493+
494+
add_compile_options("$<$<COMPILE_LANGUAGE:CUDA>:${CUDA_FLAGS}>")
495+
endif()
451496

452497
if (WIN32)
453498
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
@@ -471,6 +516,7 @@ endif()
471516
execute_process(
472517
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_EXE_LINKER_FLAGS} -Wl,-v
473518
ERROR_VARIABLE output
519+
OUTPUT_QUIET
474520
)
475521
if (output MATCHES "dyld-1015\.7")
476522
add_compile_definitions(HAVE_BUGGY_APPLE_LINKER)

Makefile

Lines changed: 43 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,6 @@ ifndef UNAME_M
2626
UNAME_M := $(shell uname -m)
2727
endif
2828

29-
ifeq '' '$(findstring clang,$(shell $(CC) --version))'
30-
CC_IS_GCC=1
31-
CC_VER := $(shell $(CC) -dumpfullversion -dumpversion | awk -F. '{ printf("%02d%02d%02d", $$1, $$2, $$3) }')
32-
else
33-
CC_IS_CLANG=1
34-
ifeq '' '$(findstring Apple,$(shell $(CC) --version))'
35-
CC_IS_LLVM_CLANG=1
36-
else
37-
CC_IS_APPLE_CLANG=1
38-
endif
39-
CC_VER := $(shell $(CC) --version | sed -n 's/^.* version \([0-9.]*\).*$$/\1/p' \
40-
| awk -F. '{ printf("%02d%02d%02d", $$1, $$2, $$3) }')
41-
endif
42-
4329
# Mac OS + Arm can report x86_64
4430
# ref: https://github.com/ggerganov/whisper.cpp/issues/66#issuecomment-1282546789
4531
ifeq ($(UNAME_S),Darwin)
@@ -121,12 +107,12 @@ MK_CXXFLAGS = -std=c++11 -fPIC
121107

122108
# -Ofast tends to produce faster code, but may not be available for some compilers.
123109
ifdef LLAMA_FAST
124-
MK_CFLAGS += -Ofast
125-
MK_HOST_CXXFLAGS += -Ofast
126-
MK_CUDA_CXXFLAGS += -O3
110+
MK_CFLAGS += -Ofast
111+
HOST_CXXFLAGS += -Ofast
112+
MK_NVCCFLAGS += -O3
127113
else
128-
MK_CFLAGS += -O3
129-
MK_CXXFLAGS += -O3
114+
MK_CFLAGS += -O3
115+
MK_CXXFLAGS += -O3
130116
endif
131117

132118
# clock_gettime came in POSIX.1b (1993)
@@ -220,30 +206,6 @@ MK_CFLAGS += $(WARN_FLAGS) -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmis
220206
-Werror=implicit-function-declaration
221207
MK_CXXFLAGS += $(WARN_FLAGS) -Wmissing-declarations -Wmissing-noreturn
222208

223-
ifeq ($(CC_IS_CLANG), 1)
224-
# clang options
225-
MK_CFLAGS += -Wunreachable-code-break -Wunreachable-code-return
226-
MK_HOST_CXXFLAGS += -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi
227-
228-
ifneq '' '$(and $(CC_IS_LLVM_CLANG),$(filter 1,$(shell expr $(CC_VER) \>= 030800)))'
229-
MK_CFLAGS += -Wdouble-promotion
230-
endif
231-
ifneq '' '$(and $(CC_IS_APPLE_CLANG),$(filter 1,$(shell expr $(CC_VER) \>= 070300)))'
232-
MK_CFLAGS += -Wdouble-promotion
233-
endif
234-
else
235-
# gcc options
236-
MK_CFLAGS += -Wdouble-promotion
237-
MK_HOST_CXXFLAGS += -Wno-array-bounds
238-
239-
ifeq ($(shell expr $(CC_VER) \>= 070100), 1)
240-
MK_HOST_CXXFLAGS += -Wno-format-truncation
241-
endif
242-
ifeq ($(shell expr $(CC_VER) \>= 080100), 1)
243-
MK_HOST_CXXFLAGS += -Wextra-semi
244-
endif
245-
endif
246-
247209
# this version of Apple ld64 is buggy
248210
ifneq '' '$(findstring dyld-1015.7,$(shell $(CC) $(LDFLAGS) -Wl,-v 2>&1))'
249211
MK_CPPFLAGS += -DHAVE_BUGGY_APPLE_LINKER
@@ -294,8 +256,8 @@ ifndef RISCV
294256

295257
ifeq ($(UNAME_M),$(filter $(UNAME_M),x86_64 i686 amd64))
296258
# Use all CPU extensions that are available:
297-
MK_CFLAGS += -march=native -mtune=native
298-
MK_HOST_CXXFLAGS += -march=native -mtune=native
259+
MK_CFLAGS += -march=native -mtune=native
260+
HOST_CXXFLAGS += -march=native -mtune=native
299261

300262
# Usage AVX-only
301263
#MK_CFLAGS += -mfma -mf16c -mavx
@@ -398,10 +360,10 @@ ifdef LLAMA_CUBLAS
398360
MK_CPPFLAGS += -DGGML_USE_CUBLAS -I/usr/local/cuda/include -I/opt/cuda/include -I$(CUDA_PATH)/targets/x86_64-linux/include
399361
MK_LDFLAGS += -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L/usr/local/cuda/lib64 -L/opt/cuda/lib64 -L$(CUDA_PATH)/targets/x86_64-linux/lib
400362
OBJS += ggml-cuda.o
401-
NVCCFLAGS = --forward-unknown-to-host-compiler -use_fast_math
363+
MK_NVCCFLAGS = --forward-unknown-to-host-compiler -use_fast_math
402364

403365
ifdef LLAMA_DEBUG
404-
NVCCFLAGS += -lineinfo
366+
MK_NVCCFLAGS += -lineinfo
405367
endif
406368

407369
ifdef LLAMA_CUDA_NVCC
@@ -410,54 +372,52 @@ else
410372
NVCC = nvcc
411373
endif #LLAMA_CUDA_NVCC
412374
ifdef CUDA_DOCKER_ARCH
413-
NVCCFLAGS += -Wno-deprecated-gpu-targets -arch=$(CUDA_DOCKER_ARCH)
414-
else ifdef CUDA_POWER_ARCH
415-
NVCCFLAGS +=
416-
else
417-
NVCCFLAGS += -arch=native
375+
MK_NVCCFLAGS += -Wno-deprecated-gpu-targets -arch=$(CUDA_DOCKER_ARCH)
376+
else ifndef CUDA_POWER_ARCH
377+
MK_NVCCFLAGS += -arch=native
418378
endif # CUDA_DOCKER_ARCH
419379
ifdef LLAMA_CUDA_FORCE_DMMV
420-
NVCCFLAGS += -DGGML_CUDA_FORCE_DMMV
380+
MK_NVCCFLAGS += -DGGML_CUDA_FORCE_DMMV
421381
endif # LLAMA_CUDA_FORCE_DMMV
422382
ifdef LLAMA_CUDA_FORCE_MMQ
423-
NVCCFLAGS += -DGGML_CUDA_FORCE_MMQ
383+
MK_NVCCFLAGS += -DGGML_CUDA_FORCE_MMQ
424384
endif # LLAMA_CUDA_FORCE_MMQ
425385
ifdef LLAMA_CUDA_DMMV_X
426-
NVCCFLAGS += -DGGML_CUDA_DMMV_X=$(LLAMA_CUDA_DMMV_X)
386+
MK_NVCCFLAGS += -DGGML_CUDA_DMMV_X=$(LLAMA_CUDA_DMMV_X)
427387
else
428-
NVCCFLAGS += -DGGML_CUDA_DMMV_X=32
388+
MK_NVCCFLAGS += -DGGML_CUDA_DMMV_X=32
429389
endif # LLAMA_CUDA_DMMV_X
430390
ifdef LLAMA_CUDA_MMV_Y
431-
NVCCFLAGS += -DGGML_CUDA_MMV_Y=$(LLAMA_CUDA_MMV_Y)
391+
MK_NVCCFLAGS += -DGGML_CUDA_MMV_Y=$(LLAMA_CUDA_MMV_Y)
432392
else ifdef LLAMA_CUDA_DMMV_Y
433-
NVCCFLAGS += -DGGML_CUDA_MMV_Y=$(LLAMA_CUDA_DMMV_Y) # for backwards compatibility
393+
MK_NVCCFLAGS += -DGGML_CUDA_MMV_Y=$(LLAMA_CUDA_DMMV_Y) # for backwards compatibility
434394
else
435-
NVCCFLAGS += -DGGML_CUDA_MMV_Y=1
395+
MK_NVCCFLAGS += -DGGML_CUDA_MMV_Y=1
436396
endif # LLAMA_CUDA_MMV_Y
437397
ifdef LLAMA_CUDA_F16
438-
NVCCFLAGS += -DGGML_CUDA_F16
398+
MK_NVCCFLAGS += -DGGML_CUDA_F16
439399
endif # LLAMA_CUDA_F16
440400
ifdef LLAMA_CUDA_DMMV_F16
441-
NVCCFLAGS += -DGGML_CUDA_F16
401+
MK_NVCCFLAGS += -DGGML_CUDA_F16
442402
endif # LLAMA_CUDA_DMMV_F16
443403
ifdef LLAMA_CUDA_KQUANTS_ITER
444-
NVCCFLAGS += -DK_QUANTS_PER_ITERATION=$(LLAMA_CUDA_KQUANTS_ITER)
404+
MK_NVCCFLAGS += -DK_QUANTS_PER_ITERATION=$(LLAMA_CUDA_KQUANTS_ITER)
445405
else
446-
NVCCFLAGS += -DK_QUANTS_PER_ITERATION=2
406+
MK_NVCCFLAGS += -DK_QUANTS_PER_ITERATION=2
447407
endif
448408
ifdef LLAMA_CUDA_PEER_MAX_BATCH_SIZE
449-
NVCCFLAGS += -DGGML_CUDA_PEER_MAX_BATCH_SIZE=$(LLAMA_CUDA_PEER_MAX_BATCH_SIZE)
409+
MK_NVCCFLAGS += -DGGML_CUDA_PEER_MAX_BATCH_SIZE=$(LLAMA_CUDA_PEER_MAX_BATCH_SIZE)
450410
else
451-
NVCCFLAGS += -DGGML_CUDA_PEER_MAX_BATCH_SIZE=128
411+
MK_NVCCFLAGS += -DGGML_CUDA_PEER_MAX_BATCH_SIZE=128
452412
endif # LLAMA_CUDA_PEER_MAX_BATCH_SIZE
453413
#ifdef LLAMA_CUDA_CUBLAS
454-
# NVCCFLAGS += -DGGML_CUDA_CUBLAS
414+
# MK_NVCCFLAGS += -DGGML_CUDA_CUBLAS
455415
#endif # LLAMA_CUDA_CUBLAS
456416
ifdef LLAMA_CUDA_CCBIN
457-
NVCCFLAGS += -ccbin $(LLAMA_CUDA_CCBIN)
417+
MK_NVCCFLAGS += -ccbin $(LLAMA_CUDA_CCBIN)
458418
endif
459419
ggml-cuda.o: ggml-cuda.cu ggml-cuda.h
460-
$(NVCC) $(NVCCFLAGS) -c $< -o $@
420+
$(NVCC) $(BASE_CXXFLAGS) $(NVCCFLAGS) -Wno-pedantic -Xcompiler "$(CUDA_CXXFLAGS)" -c $< -o $@
461421
endif # LLAMA_CUBLAS
462422

463423
ifdef LLAMA_CLBLAST
@@ -519,16 +479,22 @@ ggml-mpi.o: ggml-mpi.c ggml-mpi.h
519479
$(CC) $(CFLAGS) -c $< -o $@
520480
endif # LLAMA_MPI
521481

482+
GF_CC := $(CC)
483+
include scripts/get-flags.mk
484+
522485
# combine build flags with cmdline overrides
523-
override CFLAGS := $(MK_CPPFLAGS) $(CPPFLAGS) $(MK_CFLAGS) $(CFLAGS)
524-
override CXXFLAGS := $(MK_CPPFLAGS) $(CPPFLAGS) $(MK_CXXFLAGS) $(CXXFLAGS)
525-
override CUDA_CXXFLAGS := $(MK_CUDA_CXXFLAGS) $(CUDA_CXXFLAGS)
526-
override HOST_CXXFLAGS := $(MK_HOST_CXXFLAGS) $(HOST_CXXFLAGS)
527-
override LDFLAGS := $(MK_LDFLAGS) $(LDFLAGS)
528-
529-
# save CXXFLAGS before we add host-only options
530-
NVCCFLAGS := $(NVCCFLAGS) $(CXXFLAGS) $(CUDA_CXXFLAGS) -Wno-pedantic -Xcompiler "$(HOST_CXXFLAGS)"
531-
override CXXFLAGS += $(HOST_CXXFLAGS)
486+
override CFLAGS := $(MK_CPPFLAGS) $(CPPFLAGS) $(MK_CFLAGS) $(GF_CFLAGS) $(CFLAGS)
487+
BASE_CXXFLAGS := $(MK_CPPFLAGS) $(CPPFLAGS) $(MK_CXXFLAGS) $(CXXFLAGS)
488+
override CXXFLAGS := $(BASE_CXXFLAGS) $(HOST_CXXFLAGS) $(GF_CXXFLAGS)
489+
override NVCCFLAGS := $(MK_NVCCFLAGS) $(NVCCFLAGS)
490+
override LDFLAGS := $(MK_LDFLAGS) $(LDFLAGS)
491+
492+
# identify CUDA host compiler
493+
ifdef LLAMA_CUBLAS
494+
GF_CC := $(NVCC) $(NVCCFLAGS) 2>/dev/null .c -Xcompiler
495+
include scripts/get-flags.mk
496+
CUDA_CXXFLAGS := $(GF_CXXFLAGS)
497+
endif
532498

533499
#
534500
# Print build information

scripts/get-flags.mk

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
ifeq '' '$(findstring clang,$(shell $(GF_CC) --version))'
2+
GF_CC_IS_GCC = 1
3+
GF_CC_VER := $(shell { $(GF_CC) -dumpfullversion 2>/dev/null || $(GF_CC) -dumpversion; } | awk -F. '{ printf("%02d%02d%02d", $$1, $$2, $$3) }')
4+
else
5+
GF_CC_IS_CLANG = 1
6+
ifeq '' '$(findstring Apple,$(shell $(GF_CC) --version))'
7+
GF_CC_IS_LLVM_CLANG = 1
8+
else
9+
GF_CC_IS_APPLE_CLANG = 1
10+
endif
11+
GF_CC_VER := \
12+
$(shell $(GF_CC) --version | sed -n 's/^.* version \([0-9.]*\).*$$/\1/p' \
13+
| awk -F. '{ printf("%02d%02d%02d", $$1, $$2, $$3) }')
14+
endif
15+
16+
ifeq ($(GF_CC_IS_CLANG), 1)
17+
# clang options
18+
GF_CFLAGS = -Wunreachable-code-break -Wunreachable-code-return
19+
GF_CXXFLAGS = -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi
20+
21+
ifneq '' '$(and $(GF_CC_IS_LLVM_CLANG),$(filter 1,$(shell expr $(GF_CC_VER) \>= 030800)))'
22+
GF_CFLAGS += -Wdouble-promotion
23+
endif
24+
ifneq '' '$(and $(GF_CC_IS_APPLE_CLANG),$(filter 1,$(shell expr $(GF_CC_VER) \>= 070300)))'
25+
GF_CFLAGS += -Wdouble-promotion
26+
endif
27+
else
28+
# gcc options
29+
GF_CFLAGS = -Wdouble-promotion
30+
GF_CXXFLAGS = -Wno-array-bounds
31+
32+
ifeq ($(shell expr $(GF_CC_VER) \>= 070100), 1)
33+
GF_CXXFLAGS += -Wno-format-truncation
34+
endif
35+
ifeq ($(shell expr $(GF_CC_VER) \>= 080100), 1)
36+
GF_CXXFLAGS += -Wextra-semi
37+
endif
38+
endif

0 commit comments

Comments
 (0)