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


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/Makefile

    ra41cda7 r4d6629f  
    8282INCLUDES_FLAGS = $(addprefix -I,$(INCLUDES))
    8383
     84ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y)
     85        OPTIMIZATION = s
     86else
     87        OPTIMIZATION = 3
     88endif
     89
    8490DEFS = -DKERNEL -DRELEASE=$(RELEASE) "-DCOPYRIGHT=$(COPYRIGHT)" "-DNAME=$(NAME)" -D__$(BITS)_BITS__ -D__$(ENDIANESS)__
    8591
    86 COMMON_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
     92GCC_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
     99ICC_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
     100        -ffreestanding -fno-builtin -nostdlib -nostdinc -Wall -Wmissing-prototypes \
     101        -Werror-implicit-function-declaration -wd170
     102
     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
     106CLANG_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
    87107        -ffreestanding -fno-builtin -nostdlib -nostdinc \
    88         -fexec-charset=UTF-8 -finput-charset=UTF-8
    89 
    90 GCC_CFLAGS = -std=gnu99 -Wall -Wextra -Wno-unused-parameter \
    91         -Wmissing-prototypes -Werror-implicit-function-declaration \
    92         -Wwrite-strings -pipe
    93 
    94 ICC_CFLAGS = -Wall -Wmissing-prototypes \
    95         -Werror-implicit-function-declaration -wd170
    96 
    97 CLANG_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
     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)
    101111
    102112ifeq ($(CONFIG_DEBUG),y)
    103         COMMON_CFLAGS += -Werror
     113        GCC_CFLAGS += -Werror
     114        ICC_CFLAGS += -Werror
    104115endif
    105116
    106117ifeq ($(CONFIG_LTO),y)
    107         COMMON_CFLAGS += -flto
     118        GCC_CFLAGS += -flto
    108119endif
    109120
    110121ifeq ($(CONFIG_LINE_DEBUG),y)
    111         COMMON_CFLAGS += -g
     122        GCC_CFLAGS += -g
     123        ICC_CFLAGS += -g
     124        CLANG_CFLAGS += -g
    112125endif
    113126
     
    116129# AFLAGS and LFLAGS must be initialized before the inclusion.
    117130#
    118 AFLAGS =
     131AFLAGS = --fatal-warnings
    119132LFLAGS = -n -T $(LINK) -M --fatal-warnings
    120 
    121 # FIXME: This condition is a workaround for issues #693 and #694.
    122 ifneq ($(KARCH),sparc64)
    123 ifneq ($(KARCH),mips32)
    124         AFLAGS += --fatal-warnings
    125 endif
    126 endif
    127133
    128134#
     
    156162
    157163ifeq ($(COMPILER),gcc_native)
    158         CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
     164        CFLAGS = $(GCC_CFLAGS)
    159165        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    160166        INSTRUMENTATION = -finstrument-functions
     
    162168
    163169ifeq ($(COMPILER),gcc_cross)
    164         CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
     170        CFLAGS = $(GCC_CFLAGS)
    165171        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    166172        INSTRUMENTATION = -finstrument-functions
     
    168174
    169175ifeq ($(COMPILER),gcc_helenos)
    170         CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
     176        CFLAGS = $(GCC_CFLAGS)
    171177        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    172178        INSTRUMENTATION = -finstrument-functions
     
    174180
    175181ifeq ($(COMPILER),icc)
    176         CFLAGS = $(COMMON_CFLAGS) $(ICC_CFLAGS)
     182        CFLAGS = $(ICC_CFLAGS)
    177183        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    178184        INSTRUMENTATION =
     
    180186
    181187ifeq ($(COMPILER),clang)
    182         CFLAGS = $(COMMON_CFLAGS) $(CLANG_CFLAGS)
     188        CFLAGS = $(CLANG_CFLAGS)
    183189        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    184         INSTRUMENTATION = -finstrument-functions
     190        INSTRUMENTATION =
    185191endif
    186192
     
    384390AUTOGENS_AG := $(ARCH_AUTOGENS_AG) $(GENARCH_AUTOGENS_AG)
    385391
    386 AS_CFLAGS := $(addprefix -Xassembler ,$(AFLAGS))
    387 LD_CFLAGS := $(addprefix -Xlinker ,$(LFLAGS))
    388 
    389 ifeq ($(COMPILER),clang)
    390         AS_CFLAGS += -mllvm -asm-macro-max-nesting-depth=1000
    391 endif
     392LFLAGS_LTO := $(addprefix -Xlinker ,$(LFLAGS))
    392393
    393394ifeq ($(CONFIG_SYMTAB),y)
     
    409410$(RAW): $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(SYMTAB_OBJECTS)
    410411ifeq ($(CONFIG_LTO),y)
    411         $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     412        $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
    412413else
    413414        $(LD) $(LFLAGS) -Map $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     
    422423%.h: %.ag
    423424        $(AUTOGEN) probe $< >$<.probe.c
    424         $(CC_AUTOGEN) $(DEFS) $(CFLAGS) -S -o $<.probe.s $<.probe.c
     425        $(CC) $(DEFS) $(CFLAGS) -S -o $<.probe.s $<.probe.c
    425426        $(AUTOGEN) generate $< <$<.probe.s >$@   
    426427
    427428%.o: %.S $(DEPEND)
    428         $(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c -o $@ $<
     429        $(GCC) $(DEFS) $(GCC_CFLAGS) -D__ASM__ -c -o $@ $<
    429430ifeq ($(PRECHECK),y)
    430         $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
     431        $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(GCC_CFLAGS) -D__ASM__
    431432endif
    432433
    433434%.o: %.s $(DEPEND)
    434         $(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c -o $@ $<
     435        $(AS) $(AFLAGS) -o $@ $<
    435436ifeq ($(PRECHECK),y)
    436437        $(JOBFILE) $(JOB) $< $@ as asm $(DEFS) $(CFLAGS) $(EXTRA_FLAGS)
     
    444445
    445446$(REAL_MAP).o: $(REAL_MAP).bin
    446         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $@ -
     447        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(AS) $(AFLAGS) -o $@
    447448
    448449$(REAL_MAP).bin: $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS)
    449         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(EMPTY_MAP) -
     450        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(AS) $(AFLAGS) -o $(EMPTY_MAP)
    450451ifeq ($(CONFIG_LTO),y)
    451         $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     452        $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
    452453else
    453454        $(LD) $(LFLAGS) -Map $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     
    459460        # on architectures that have bss after symtab
    460461       
    461         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(SIZEOK_MAP) -
     462        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(AS) $(AFLAGS) -o $(SIZEOK_MAP)
    462463ifeq ($(CONFIG_LTO),y)
    463         $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
     464        $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
    464465else
    465466        $(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.