Changes in kernel/Makefile [3ec2acc:d75dc05] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/Makefile

    r3ec2acc rd75dc05  
    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 \
    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
    106 CLANG_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
     86COMMON_CFLAGS = $(INCLUDES_FLAGS) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
    10787        -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)
     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
     94CLANG_CFLAGS = -std=gnu99 -Wall -Wextra -Wno-unused-parameter \
     95        -Wno-missing-field-initializers -Wno-unused-command-line-argument \
     96        -Wmissing-prototypes -Werror-implicit-function-declaration \
     97        -Wwrite-strings -pipe -fno-stack-protector -fno-PIC
    11198
    11299ifeq ($(CONFIG_DEBUG),y)
    113         GCC_CFLAGS += -Werror
    114         ICC_CFLAGS += -Werror
     100        COMMON_CFLAGS += -Werror
    115101endif
    116102
    117103ifeq ($(CONFIG_LTO),y)
    118         GCC_CFLAGS += -flto
     104        COMMON_CFLAGS += -flto
    119105endif
    120106
    121107ifeq ($(CONFIG_LINE_DEBUG),y)
    122         GCC_CFLAGS += -g
    123         ICC_CFLAGS += -g
    124         CLANG_CFLAGS += -g
     108        COMMON_CFLAGS += -g
    125109endif
    126110
     
    129113# AFLAGS and LFLAGS must be initialized before the inclusion.
    130114#
    131 AFLAGS = --fatal-warnings
     115AFLAGS =
    132116LFLAGS = -n -T $(LINK) -M --fatal-warnings
     117
     118# FIXME: This condition is a workaround for issues #693 and #694.
     119ifneq ($(KARCH),sparc64)
     120ifneq ($(KARCH),mips32)
     121        AFLAGS += --fatal-warnings
     122endif
     123endif
    133124
    134125#
     
    162153
    163154ifeq ($(COMPILER),gcc_native)
    164         CFLAGS = $(GCC_CFLAGS)
     155        CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
    165156        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    166157        INSTRUMENTATION = -finstrument-functions
     
    168159
    169160ifeq ($(COMPILER),gcc_cross)
    170         CFLAGS = $(GCC_CFLAGS)
     161        CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
    171162        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    172163        INSTRUMENTATION = -finstrument-functions
     
    174165
    175166ifeq ($(COMPILER),gcc_helenos)
    176         CFLAGS = $(GCC_CFLAGS)
     167        CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
    177168        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    178169        INSTRUMENTATION = -finstrument-functions
    179170endif
    180171
    181 ifeq ($(COMPILER),icc)
    182         CFLAGS = $(ICC_CFLAGS)
     172ifeq ($(COMPILER),clang)
     173        CFLAGS = $(COMMON_CFLAGS) $(CLANG_CFLAGS)
    183174        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    184         INSTRUMENTATION =
    185 endif
    186 
    187 ifeq ($(COMPILER),clang)
    188         CFLAGS = $(CLANG_CFLAGS)
    189         DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    190         INSTRUMENTATION =
     175        INSTRUMENTATION = -finstrument-functions
    191176endif
    192177
     
    209194        generic/src/ddi/ddi.c \
    210195        generic/src/ddi/irq.c \
    211         generic/src/ddi/device.c \
    212196        generic/src/debug/symtab.c \
    213197        generic/src/debug/stacktrace.c \
     
    240224        generic/src/mm/slab.c \
    241225        generic/src/lib/func.c \
    242         generic/src/lib/memstr.c \
     226        generic/src/lib/mem.c \
    243227        generic/src/lib/memfnc.c \
    244         generic/src/lib/sort.c \
     228        generic/src/lib/gsort.c \
    245229        generic/src/lib/str.c \
    246230        generic/src/lib/elf.c \
     
    272256        generic/src/ipc/sysipc.c \
    273257        generic/src/ipc/sysipc_ops.c \
    274         generic/src/ipc/ops/clnestab.c \
    275258        generic/src/ipc/ops/conctmeto.c \
    276259        generic/src/ipc/ops/concttome.c \
    277         generic/src/ipc/ops/connclone.c \
    278260        generic/src/ipc/ops/dataread.c \
    279261        generic/src/ipc/ops/datawrite.c \
     
    286268        generic/src/ipc/irq.c \
    287269        generic/src/ipc/event.c \
    288         generic/src/security/cap.c \
     270        generic/src/cap/cap.c \
     271        generic/src/security/perm.c \
    289272        generic/src/sysinfo/sysinfo.c \
    290273        generic/src/sysinfo/stats.c
     
    392375AUTOGENS_AG := $(ARCH_AUTOGENS_AG) $(GENARCH_AUTOGENS_AG)
    393376
    394 LFLAGS_LTO := $(addprefix -Xlinker ,$(LFLAGS))
     377AS_CFLAGS := $(addprefix -Xassembler ,$(AFLAGS))
     378LD_CFLAGS := $(addprefix -Xlinker ,$(LFLAGS))
     379
     380ifeq ($(COMPILER),clang)
     381        AS_CFLAGS += -mllvm -asm-macro-max-nesting-depth=1000
     382endif
    395383
    396384ifeq ($(CONFIG_SYMTAB),y)
     
    412400$(RAW): $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(SYMTAB_OBJECTS)
    413401ifeq ($(CONFIG_LTO),y)
    414         $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     402        $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
    415403else
    416404        $(LD) $(LFLAGS) -Map $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     
    425413%.h: %.ag
    426414        $(AUTOGEN) probe $< >$<.probe.c
    427         $(CC) $(DEFS) $(CFLAGS) -S -o $<.probe.s $<.probe.c
     415        $(CC_AUTOGEN) $(DEFS) $(CFLAGS) -S -o $<.probe.s $<.probe.c
    428416        $(AUTOGEN) generate $< <$<.probe.s >$@   
    429417
    430418%.o: %.S $(DEPEND)
    431         $(GCC) $(DEFS) $(GCC_CFLAGS) -D__ASM__ -c -o $@ $<
     419        $(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c -o $@ $<
    432420ifeq ($(PRECHECK),y)
    433         $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(GCC_CFLAGS) -D__ASM__
     421        $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
    434422endif
    435423
    436424%.o: %.s $(DEPEND)
    437         $(AS) $(AFLAGS) -o $@ $<
     425        $(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c -o $@ $<
    438426ifeq ($(PRECHECK),y)
    439427        $(JOBFILE) $(JOB) $< $@ as asm $(DEFS) $(CFLAGS) $(EXTRA_FLAGS)
     
    447435
    448436$(REAL_MAP).o: $(REAL_MAP).bin
    449         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(AS) $(AFLAGS) -o $@
     437        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $@ -
    450438
    451439$(REAL_MAP).bin: $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS)
    452         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(AS) $(AFLAGS) -o $(EMPTY_MAP)
     440        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(EMPTY_MAP) -
    453441ifeq ($(CONFIG_LTO),y)
    454         $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     442        $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
    455443else
    456444        $(LD) $(LFLAGS) -Map $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     
    462450        # on architectures that have bss after symtab
    463451       
    464         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(AS) $(AFLAGS) -o $(SIZEOK_MAP)
     452        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(SIZEOK_MAP) -
    465453ifeq ($(CONFIG_LTO),y)
    466         $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
     454        $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
    467455else
    468456        $(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.