From 18beb2784fd1e7fe33df09bab01e89fab4972b56 Mon Sep 17 00:00:00 2001 From: yaneurao Date: Mon, 24 Jun 2024 17:36:54 +0900 Subject: [PATCH] =?UTF-8?q?clang-18=E5=AF=BE=E5=BF=9C=E3=81=9D=E3=81=AE2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/Makefile | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/source/Makefile b/source/Makefile index 630217b19..3e0f3568e 100644 --- a/source/Makefile +++ b/source/Makefile @@ -114,10 +114,9 @@ COMPILER = clang++ CPPFLAGS = -std=c++17 -fno-exceptions -fno-rtti -Wextra -MMD -MP -fpermissive NVCC_CPPFLAGS = -std=c++17 -x cu -maxrregcount=0 --machine 64 --compile -cudart static -DNDEBUG -Xcompiler "-Ofast" WCPPFLAGS = -LDFLAGS = -fuse-ld=lld +LDFLAGS = LIBS = INCLUDE = # -I../include -# note : LDFLAGSで -fuse-ld=lld を指定しないとUbuntu 24.04のclang-18でのlinkに失敗する。 # makeするときにCPPFLAGS,LDFLAGSを追加で指定したいときはこれを用いる。 EXTRA_CPPFLAGS = @@ -167,6 +166,7 @@ endif # clang用にCPPFLAGSなどを変更 ifneq (,$(findstring clang++,$(COMPILER))) + # stdlib # CPPFLAGS += -stdlib=libstdc++ @@ -184,6 +184,16 @@ ifneq (,$(findstring clang++,$(COMPILER))) # → 本当に消してしまっても大丈夫か? WCPPFLAGS += -fno-threadsafe-statics + # note : LDFLAGSに -fuse-ld=lld を指定しないとUbuntu 24.04のclang-18でのlinkに失敗する。 + # ⇨ このオプションはそれ以前のclangでもつけて問題ないのでclangならば必ずつけるようにする。 + # ⇨ gccでコンパイルする時にこのオプションをつけるとエラーになるので、gccの時はつけてはいけない。 + # note : macOSでは、デフォルトではclangのlinkerではなくld64を用いるので、この指定をするとエラーになる。 + # ⇨ よってTARGET_CPUにAPPLEの文字が入っている場合は、これを付与しない。 + ifeq (,$(findstring APPLE,$(TARGET_CPU))) + LDFLAGS = -fuse-ld=lld + endif + + else ifneq (,$(findstring g++,$(COMPILER))) # mingw g++ で AVX512 向けビルドを行おうとするとエラーになる問題の回避