Changes in kernel/Makefile [1cb092d:9ded977] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/Makefile

    r1cb092d r9ded977  
    8484
    8585ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y)
    86 OPTIMIZATION = s
    87 else
    88 OPTIMIZATION = 3
     86        OPTIMIZATION = s
     87else
     88        OPTIMIZATION = 3
    8989endif
    9090
     
    9696        -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
    9797        -Werror-implicit-function-declaration -Wwrite-strings \
    98         -Werror -pipe
     98        -pipe
    9999
    100100ICC_CFLAGS = -I$(INCLUDES) -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
    101101        -ffreestanding -fno-builtin -nostdlib -nostdinc -Wall -Wmissing-prototypes \
    102         -Werror-implicit-function-declaration -Werror -wd170
     102        -Werror-implicit-function-declaration -wd170
    103103
    104104SUNCC_CFLAGS = -I$(INCLUDES) -xO$(OPTIMIZATION) \
     
    113113        -pipe -arch $(CLANG_ARCH)
    114114
     115ifeq ($(CONFIG_DEBUG),y)
     116        GCC_CFLAGS += -Werror
     117        ICC_CFLAGS += -Werror
     118endif
     119
     120ifeq ($(CONFIG_LTO),y)
     121        GCC_CFLAGS += -flto
     122endif
     123
     124ifeq ($(CONFIG_LINE_DEBUG),y)
     125        GCC_CFLAGS += -g
     126        ICC_CFLAGS += -g
     127        SUNCC_CFLAGS += -g
     128        CLANG_CFLAGS += -g
     129endif
     130
     131#
     132# Mind the mutual ordering with the inclusion of the arch Makefile.inc.
     133# AFLAGS and LFLAGS must be initialized before the inclusion.
     134#
     135AFLAGS =
     136LFLAGS = -N -T $(LINK) -M
     137
     138#
     139# Mind the mutual ordering with the initialization of AFLAGS and LFLAGS.
     140# The arch Makefile.inc must be included after the initialization.
     141#
    115142-include arch/$(KARCH)/Makefile.inc
    116143-include genarch/Makefile.inc
     
    140167        CFLAGS = $(GCC_CFLAGS)
    141168        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
     169        INSTRUMENTATION = -finstrument-functions
    142170endif
    143171
     
    145173        CFLAGS = $(GCC_CFLAGS)
    146174        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
     175        INSTRUMENTATION = -finstrument-functions
    147176endif
    148177
     
    150179        CFLAGS = $(ICC_CFLAGS)
    151180        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
     181        INSTRUMENTATION =
    152182endif
    153183
     
    156186        DEFS += $(CONFIG_DEFS)
    157187        DEPEND_DEFS = $(DEFS)
     188        INSTRUMENTATION =
    158189endif
    159190
     
    161192        CFLAGS = $(CLANG_CFLAGS)
    162193        DEPEND_DEFS = $(DEFS) $(CONFIG_DEFS)
    163 endif
     194        INSTRUMENTATION =
     195endif
     196
    164197
    165198## Generic kernel sources
     
    180213        generic/src/debug/symtab.c \
    181214        generic/src/debug/stacktrace.c \
     215        generic/src/debug/panic.c \
     216        generic/src/debug/debug.c \
    182217        generic/src/interrupt/interrupt.c \
    183218        generic/src/main/main.c \
     
    220255        generic/src/synch/spinlock.c \
    221256        generic/src/synch/condvar.c \
    222         generic/src/synch/rwlock.c \
    223257        generic/src/synch/mutex.c \
    224258        generic/src/synch/semaphore.c \
     
    273307                test/mm/slab1.c \
    274308                test/mm/slab2.c \
    275                 test/synch/rwlock1.c \
    276                 test/synch/rwlock2.c \
    277                 test/synch/rwlock3.c \
    278                 test/synch/rwlock4.c \
    279                 test/synch/rwlock5.c \
    280309                test/synch/semaphore1.c \
    281310                test/synch/semaphore2.c \
     
    339368endif
    340369
     370## Sources where instrumentation is enabled
     371#
     372
     373ifeq ($(CONFIG_TRACE),y)
     374        INSTRUMENTED_SOURCES = \
     375                generic/src/adt/btree.c \
     376                generic/src/cpu/cpu.c \
     377                generic/src/ddi/ddi.c \
     378                generic/src/interrupt/interrupt.c \
     379                generic/src/main/main.c \
     380                generic/src/main/kinit.c \
     381                generic/src/proc/the.c \
     382                generic/src/proc/tasklet.c \
     383                generic/src/mm/frame.c \
     384                generic/src/mm/page.c \
     385                generic/src/mm/tlb.c \
     386                generic/src/mm/as.c \
     387                generic/src/mm/slab.c \
     388                generic/src/sysinfo/sysinfo.c \
     389                generic/src/console/kconsole.c
     390else
     391        INSTRUMENTED_SOURCES =
     392endif
     393
    341394GENERIC_OBJECTS := $(addsuffix .o,$(basename $(GENERIC_SOURCES)))
    342395ARCH_OBJECTS := $(addsuffix .o,$(basename $(ARCH_SOURCES)))
    343396GENARCH_OBJECTS := $(addsuffix .o,$(basename $(GENARCH_SOURCES)))
    344397
     398LFLAGS_LTO := $(addprefix -Xlinker ,$(LFLAGS))
     399
    345400ifeq ($(CONFIG_SYMTAB),y)
    346401        SYMTAB_OBJECTS := generic/src/debug/real_map.o
     
    353408
    354409$(DISASM): $(RAW)
     410ifeq ($(CONFIG_LINE_DEBUG),y)
     411        $(OBJDUMP) -d -S $< > $@
     412else
    355413        $(OBJDUMP) -d $< > $@
     414endif
    356415
    357416$(RAW): $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(SYMTAB_OBJECTS)
    358         $(LD) -N $(LFLAGS) -T $(LINK) -M -Map $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     417ifeq ($(CONFIG_LTO),y)
     418        $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     419else
     420        $(LD) $(LFLAGS) -Map $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
     421endif
    359422ifeq ($(CONFIG_STRIP_BINARIES),y)
    360         $(STRIP) $(RAW) 
     423        $(STRIP) $(RAW)
    361424endif
    362425
     
    365428
    366429%.o: %.S $(DEPEND)
    367         $(GCC) $(DEFS) $(GCC_CFLAGS) -D__ASM__ -c $< -o $@
     430        $(GCC) $(DEFS) $(GCC_CFLAGS) -D__ASM__ -c -o $@ $<
    368431ifeq ($(PRECHECK),y)
    369432        $(JOBFILE) $(JOB) $< $@ as asm/preproc $(DEFS) $(GCC_CFLAGS) -D__ASM__
     
    382445
    383446test/fpu/%.o: test/fpu/%.c $(DEPEND)
    384         $(CC) $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) -c $< -o $@
     447        $(CC) $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) -c -o $@ $<
    385448ifeq ($(PRECHECK),y)
    386449        $(JOBFILE) $(JOB) $< $@ cc test $(DEFS) $(CFLAGS) $(EXTRA_FLAGS)
     
    392455
    393456%.o: %.c $(DEPEND)
    394         $(CC) $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) $(FPU_NO_CFLAGS) -c $< -o $@
     457        $(CC) $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) $(FPU_NO_CFLAGS) $(if $(findstring $<,$(INSTRUMENTED_SOURCES)),$(INSTRUMENTATION)) -c -o $@ $<
    395458ifeq ($(PRECHECK),y)
    396459        $(JOBFILE) $(JOB) $< $@ cc core $(DEFS) $(CFLAGS) $(EXTRA_FLAGS) $(FPU_NO_CFLAGS)
     
    402465$(REAL_MAP).bin: $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS)
    403466        echo $(SYMTAB_SECTION) | $(AS) $(AFLAGS) -o $(EMPTY_MAP)
    404         $(LD) -N $(LFLAGS) -T $(LINK) -M -Map $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     467ifeq ($(CONFIG_LTO),y)
     468        $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     469else
     470        $(LD) $(LFLAGS) -Map $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(EMPTY_MAP)
     471endif
    405472        $(OBJDUMP) -t $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) > $(DUMP)
    406473        $(GENMAP) $(MAP_PREV) $(DUMP) $@
     
    410477       
    411478        echo $(SYMTAB_SECTION)" .incbin \"$@\"" | $(AS) $(AFLAGS) -o $(SIZEOK_MAP)
    412         $(LD) -N $(LFLAGS) -T $(LINK) -M -Map $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
     479ifeq ($(CONFIG_LTO),y)
     480        $(GCC) $(LFLAGS_LTO) -Xlinker -Map -Xlinker $(MAP_PREV) $(DEFS) $(GCC_CFLAGS) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
     481else
     482        $(LD) $(LFLAGS) -Map $(MAP_PREV) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SIZEOK_MAP)
     483endif
    413484        $(OBJDUMP) -t $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) > $(DUMP)
    414485        $(GENMAP) $(MAP_PREV) $(DUMP) $@
Note: See TracChangeset for help on using the changeset viewer.