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


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/Makefile

    rd75dc05 r3ec2acc  
    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 CLANG_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
     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)
    98111
    99112ifeq ($(CONFIG_DEBUG),y)
    100         COMMON_CFLAGS += -Werror
     113        GCC_CFLAGS += -Werror
     114        ICC_CFLAGS += -Werror
    101115endif
    102116
    103117ifeq ($(CONFIG_LTO),y)
    104         COMMON_CFLAGS += -flto
     118        GCC_CFLAGS += -flto
    105119endif
    106120
    107121ifeq ($(CONFIG_LINE_DEBUG),y)
    108         COMMON_CFLAGS += -g
     122        GCC_CFLAGS += -g
     123        ICC_CFLAGS += -g
     124        CLANG_CFLAGS += -g
    109125endif
    110126
     
    113129# AFLAGS and LFLAGS must be initialized before the inclusion.
    114130#
    115 AFLAGS =
     131AFLAGS = --fatal-warnings
    116132LFLAGS = -n -T $(LINK) -M --fatal-warnings
    117 
    118 # FIXME: This condition is a workaround for issues #693 and #694.
    119 ifneq ($(KARCH),sparc64)
    120 ifneq ($(KARCH),mips32)
    121         AFLAGS += --fatal-warnings
    122 endif
    123 endif
    124133
    125134#
     
    153162
    154163ifeq ($(COMPILER),gcc_native)
    155         CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
     164        CFLAGS = $(GCC_CFLAGS)
    156165        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    157166        INSTRUMENTATION = -finstrument-functions
     
    159168
    160169ifeq ($(COMPILER),gcc_cross)
    161         CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
     170        CFLAGS = $(GCC_CFLAGS)
    162171        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    163172        INSTRUMENTATION = -finstrument-functions
     
    165174
    166175ifeq ($(COMPILER),gcc_helenos)
    167         CFLAGS = $(COMMON_CFLAGS) $(GCC_CFLAGS)
     176        CFLAGS = $(GCC_CFLAGS)
    168177        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    169178        INSTRUMENTATION = -finstrument-functions
    170179endif
    171180
     181ifeq ($(COMPILER),icc)
     182        CFLAGS = $(ICC_CFLAGS)
     183        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
     184        INSTRUMENTATION =
     185endif
     186
    172187ifeq ($(COMPILER),clang)
    173         CFLAGS = $(COMMON_CFLAGS) $(CLANG_CFLAGS)
     188        CFLAGS = $(CLANG_CFLAGS)
    174189        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    175         INSTRUMENTATION = -finstrument-functions
     190        INSTRUMENTATION =
    176191endif
    177192
     
    194209        generic/src/ddi/ddi.c \
    195210        generic/src/ddi/irq.c \
     211        generic/src/ddi/device.c \
    196212        generic/src/debug/symtab.c \
    197213        generic/src/debug/stacktrace.c \
     
    224240        generic/src/mm/slab.c \
    225241        generic/src/lib/func.c \
    226         generic/src/lib/mem.c \
     242        generic/src/lib/memstr.c \
    227243        generic/src/lib/memfnc.c \
    228         generic/src/lib/gsort.c \
     244        generic/src/lib/sort.c \
    229245        generic/src/lib/str.c \
    230246        generic/src/lib/elf.c \
     
    256272        generic/src/ipc/sysipc.c \
    257273        generic/src/ipc/sysipc_ops.c \
     274        generic/src/ipc/ops/clnestab.c \
    258275        generic/src/ipc/ops/conctmeto.c \
    259276        generic/src/ipc/ops/concttome.c \
     277        generic/src/ipc/ops/connclone.c \
    260278        generic/src/ipc/ops/dataread.c \
    261279        generic/src/ipc/ops/datawrite.c \
     
    268286        generic/src/ipc/irq.c \
    269287        generic/src/ipc/event.c \
    270         generic/src/cap/cap.c \
    271         generic/src/security/perm.c \
     288        generic/src/security/cap.c \
    272289        generic/src/sysinfo/sysinfo.c \
    273290        generic/src/sysinfo/stats.c
     
    375392AUTOGENS_AG := $(ARCH_AUTOGENS_AG) $(GENARCH_AUTOGENS_AG)
    376393
    377 AS_CFLAGS := $(addprefix -Xassembler ,$(AFLAGS))
    378 LD_CFLAGS := $(addprefix -Xlinker ,$(LFLAGS))
    379 
    380 ifeq ($(COMPILER),clang)
    381         AS_CFLAGS += -mllvm -asm-macro-max-nesting-depth=1000
    382 endif
     394LFLAGS_LTO := $(addprefix -Xlinker ,$(LFLAGS))
    383395
    384396ifeq ($(CONFIG_SYMTAB),y)
     
    400412$(RAW): $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(SYMTAB_OBJECTS)
    401413ifeq ($(CONFIG_LTO),y)
    402         $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     414        $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
    403415else
    404416        $(LD) $(LFLAGS) -Map $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     
    413425%.h: %.ag
    414426        $(AUTOGEN) probe $< >$<.probe.c
    415         $(CC_AUTOGEN) $(DEFS) $(CFLAGS) -S -o $<.probe.s $<.probe.c
     427        $(CC) $(DEFS) $(CFLAGS) -S -o $<.probe.s $<.probe.c
    416428        $(AUTOGEN) generate $< <$<.probe.s >$@   
    417429
    418430%.o: %.S $(DEPEND)
    419         $(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c -o $@ $<
     431        $(GCC) $(DEFS) $(GCC_CFLAGS) -D__ASM__ -c -o $@ $<
    420432ifeq ($(PRECHECK),y)
    421         $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(CFLAGS) -D__ASM__
     433        $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(GCC_CFLAGS) -D__ASM__
    422434endif
    423435
    424436%.o: %.s $(DEPEND)
    425         $(CC) $(DEFS) $(CFLAGS) $(AS_CFLAGS) -D__ASM__ -c -o $@ $<
     437        $(AS) $(AFLAGS) -o $@ $<
    426438ifeq ($(PRECHECK),y)
    427439        $(JOBFILE) $(JOB) $< $@ as asm $(DEFS) $(CFLAGS) $(EXTRA_FLAGS)
     
    435447
    436448$(REAL_MAP).o: $(REAL_MAP).bin
    437         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $@ -
     449        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$<\"" | $(AS) $(AFLAGS) -o $@
    438450
    439451$(REAL_MAP).bin: $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS)
    440         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(EMPTY_MAP) -
     452        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)" | $(AS) $(AFLAGS) -o $(EMPTY_MAP)
    441453ifeq ($(CONFIG_LTO),y)
    442         $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     454        $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
    443455else
    444456        $(LD) $(LFLAGS) -Map $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     
    450462        # on architectures that have bss after symtab
    451463       
    452         echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(SIZEOK_MAP) -
     464        echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(AS) $(AFLAGS) -o $(SIZEOK_MAP)
    453465ifeq ($(CONFIG_LTO),y)
    454         $(CC) $(DEFS) $(CFLAGS) $(LD_CFLAGS) -Xlinker -Map -Xlinker $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
     466        $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
    455467else
    456468        $(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.