Changes in kernel/Makefile [4d6629f:a41cda7] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/Makefile

    r4d6629f ra41cda7  
    8282INCLUDES_FLAGS = $(addprefix -I,$(INCLUDES))
    8383
    84 ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y)
    85         OPTIMIZATION = s
    86 else
    87         OPTIMIZATION = 3
    88 endif
    89 
    9084DEFS = -DKERNEL -DRELEASE=$(RELEASE) "-DCOPYRIGHT=$(COPYRIGHT)" "-DNAME=$(NAME)" -D__$(BITS)_BITS__ -D__$(ENDIANESS)__
    9185
    92 GCC_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
    93         -fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
    94         -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
    95         -std=gnu99 -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
    96         -Werror-implicit-function-declaration -Wwrite-strings \
    97         -pipe
    98 
    99 ICC_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
    100         -ffreestanding -fno-builtin -nostdlib -nostdinc -Wall -Wmissing-prototypes \
     86COMMON_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
     87        -ffreestanding -fno-builtin -nostdlib -nostdinc \
     88        -fexec-charset=UTF-8 -finput-charset=UTF-8
     89
     90GCC_CFLAGS = -std=gnu99 -Wall -Wextra -Wno-unused-parameter \
     91        -Wmissing-prototypes -Werror-implicit-function-declaration \
     92        -Wwrite-strings -pipe
     93
     94ICC_CFLAGS = -Wall -Wmissing-prototypes \
    10195        -Werror-implicit-function-declaration -wd170
    10296
    103 # clang does not support following options but I am not sure whether
    104 # something won't break because of that:
    105 # -fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) -finput-charset=UTF-8
    106 CLANG_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
    107         -ffreestanding -fno-builtin -nostdlib -nostdinc \
    108         -std=gnu99 -Wall -Werror -Wextra -Wno-unused-parameter -Wmissing-prototypes \
    109         -Werror-implicit-function-declaration -Wwrite-strings \
    110         -integrated-as -pipe -target $(CLANG_TARGET)
     97CLANG_CFLAGS = -std=gnu99 -Wall -Wextra -Wno-unused-parameter \
     98        -Wno-missing-field-initializers -Wno-unused-command-line-argument \
     99        -Wmissing-prototypes -Werror-implicit-function-declaration \
     100        -Wwrite-strings -pipe -fno-stack-protector -fno-PIC
    111101
    112102ifeq ($(CONFIG_DEBUG),y)
    113         GCC_CFLAGS += -Werror
    114         ICC_CFLAGS += -Werror
     103        COMMON_CFLAGS += -Werror
    115104endif
    116105
    117106ifeq ($(CONFIG_LTO),y)
    118         GCC_CFLAGS += -flto
     107        COMMON_CFLAGS += -flto
    119108endif
    120109
    121110ifeq ($(CONFIG_LINE_DEBUG),y)
    122         GCC_CFLAGS += -g
    123         ICC_CFLAGS += -g
    124         CLANG_CFLAGS += -g
     111        COMMON_CFLAGS += -g
    125112endif
    126113
     
    129116# AFLAGS and LFLAGS must be initialized before the inclusion.
    130117#
    131 AFLAGS = --fatal-warnings
     118AFLAGS =
    132119LFLAGS = -n -T $(LINK) -M --fatal-warnings
     120
     121# FIXME: This condition is a workaround for issues #693 and #694.
     122ifneq ($(KARCH),sparc64)
     123ifneq ($(KARCH),mips32)
     124        AFLAGS += --fatal-warnings
     125endif
     126endif
    133127
    134128#
     
    162156
    163157ifeq ($(COMPILER),gcc_native)
    164         CFLAGS = $(GCC_CFLAGS)
     158        CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
    165159        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    166160        INSTRUMENTATION = -finstrument-functions
     
    168162
    169163ifeq ($(COMPILER),gcc_cross)
    170         CFLAGS = $(GCC_CFLAGS)
     164        CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
    171165        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    172166        INSTRUMENTATION = -finstrument-functions
     
    174168
    175169ifeq ($(COMPILER),gcc_helenos)
    176         CFLAGS = $(GCC_CFLAGS)
     170        CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
    177171        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    178172        INSTRUMENTATION = -finstrument-functions
     
    180174
    181175ifeq ($(COMPILER),icc)
    182         CFLAGS = $(ICC_CFLAGS)
     176        CFLAGS = $(COMMON_CFLAGS) $(ICC_CFLAGS)
    183177        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    184178        INSTRUMENTATION =
     
    186180
    187181ifeq ($(COMPILER),clang)
    188         CFLAGS = $(CLANG_CFLAGS)
     182        CFLAGS = $(COMMON_CFLAGS) $(CLANG_CFLAGS)
    189183        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    190         INSTRUMENTATION =
     184        INSTRUMENTATION = -finstrument-functions
    191185endif
    192186
     
    390384AUTOGENS_AG := $(ARCH_AUTOGENS_AG) $(GENARCH_AUTOGENS_AG)
    391385
    392 LFLAGS_LTO := $(addprefix -Xlinker ,$(LFLAGS))
     386AS_CFLAGS := $(addprefix -Xassembler ,$(AFLAGS))
     387LD_CFLAGS := $(addprefix -Xlinker ,$(LFLAGS))
     388
     389ifeq ($(COMPILER),clang)
     390        AS_CFLAGS += -mllvm -asm-macro-max-nesting-depth=1000
     391endif
    393392
    394393ifeq ($(CONFIG_SYMTAB),y)
     
    410409$(RAW): $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(SYMTAB_OBJECTS)
    411410ifeq ($(CONFIG_LTO),y)
    412         $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     411        $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
    413412else
    414413        $(LD) $(LFLAGS) -Map $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     
    423422%.h: %.ag
    424423        $(AUTOGEN) probe $< >$<.probe.c
    425         $(CC) $(DEFS) $(CFLAGS) -S -o $<.probe.s $<.probe.c
     424        $(CC_AUTOGEN) $(DEFS) $(CFLAGS) -S -o $<.probe.s $<.probe.c
    426425        $(AUTOGEN) generate $< <$<.probe.s >$@   
    427426
    428427%.o: %.S $(DEPEND)
    429         $(GCC) $(DEFS) $(GCC_CFLAGS) -D__ASM__ -c -o $@ $<
     428        $(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c -o $@ $<
    430429ifeq ($(PRECHECK),y)
    431         $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(GCC_CFLAGS) -D__ASM__
     430        $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
    432431endif
    433432
    434433%.o: %.s $(DEPEND)
    435         $(AS) $(AFLAGS) -o $@ $<
     434        $(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c -o $@ $<
    436435ifeq ($(PRECHECK),y)
    437436        $(JOBFILE) $(JOB) $< $@ as asm $(DEFS) $(CFLAGS) $(EXTRA_FLAGS)
     
    445444
    446445$(REAL_MAP).o: $(REAL_MAP).bin
    447         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(AS) $(AFLAGS) -o $@
     446        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $@ -
    448447
    449448$(REAL_MAP).bin: $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS)
    450         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(AS) $(AFLAGS) -o $(EMPTY_MAP)
     449        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(EMPTY_MAP) -
    451450ifeq ($(CONFIG_LTO),y)
    452         $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     451        $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
    453452else
    454453        $(LD) $(LFLAGS) -Map $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     
    460459        # on architectures that have bss after symtab
    461460       
    462         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(AS) $(AFLAGS) -o $(SIZEOK_MAP)
     461        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(SIZEOK_MAP) -
    463462ifeq ($(CONFIG_LTO),y)
    464         $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
     463        $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
    465464else
    466465        $(LD) $(LFLAGS) -Map $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
Note: See TracChangeset for help on using the changeset viewer.