Try to handle clang-specific flags in the Makefile..

..to use clang, define USE_CLANG in config.mk.
上级 232d44fb
...@@ -13,25 +13,32 @@ MTRACE ?= $(QEMU) ...@@ -13,25 +13,32 @@ MTRACE ?= $(QEMU)
HW ?= qemu HW ?= qemu
O = o.$(HW) O = o.$(HW)
ifndef CONFIG_MK ifdef USE_CLANG
CC = $(TOOLPREFIX)clang
CXX = $(TOOLPREFIX)clang++
CXXFLAGS = -Wno-delete-non-virtual-dtor -Wno-gnu-designator
CFLAGS = -no-integrated-as
else
CC = $(TOOLPREFIX)gcc CC = $(TOOLPREFIX)gcc
CXX = $(TOOLPREFIX)g++ CXX = $(TOOLPREFIX)g++
CXXFLAGS =
CFLAGS =
endif endif
LD = $(TOOLPREFIX)ld LD = $(TOOLPREFIX)ld
NM = $(TOOLPREFIX)nm NM = $(TOOLPREFIX)nm
OBJCOPY = $(TOOLPREFIX)objcopy OBJCOPY = $(TOOLPREFIX)objcopy
STRIP = $(TOOLPREFIX)strip STRIP = $(TOOLPREFIX)strip
COMFLAGS := -static -fno-builtin -fno-strict-aliasing -O2 -Wall \ COMFLAGS = -static -fno-builtin -fno-strict-aliasing -O2 -Wall \
-g -MD -m64 -Werror -fms-extensions -mno-sse \ -g -MD -m64 -Werror -fms-extensions -mno-sse \
-mcmodel=large -mno-red-zone -I$(QEMUSRC) -fno-omit-frame-pointer \ -mcmodel=large -mno-red-zone -I$(QEMUSRC) -fno-omit-frame-pointer \
-DHW_$(HW) -include param.h -include compiler.h -DXV6 \ -DHW_$(HW) -include param.h -include compiler.h -DXV6
-Wno-delete-non-virtual-dtor -Wno-gnu-designator
COMFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector) COMFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector)
CFLAGS := $(COMFLAGS) -std=c99 CFLAGS := $(COMFLAGS) -std=c99 $(CFLAGS)
CXXFLAGS := $(COMFLAGS) -std=c++0x -Wno-sign-compare -fno-exceptions -fno-rtti CXXFLAGS := $(COMFLAGS) -std=c++0x -Wno-sign-compare -fno-exceptions -fno-rtti $(CXXFLAGS)
ASFLAGS = -m64 -gdwarf-2 -MD ASFLAGS = -m64 -gdwarf-2 -MD
LDFLAGS += -m elf_x86_64 LDFLAGS = -m elf_x86_64
OBJS = \ OBJS = \
bio.o \ bio.o \
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论