mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-09-01 02:29:03 +00:00
This patch implements a simple, lightweight form of protection domains using a pluggable framework. Currently, the following plugin is available: - Flat memory model with paging. The overall goal of a protection domain implementation within this framework is to define a set of resources that should be accessible to each protection domain and to prevent that protection domain from accessing other resources. The details of each implementation of protection domains may differ substantially, but they should all be guided by the principle of least privilege. However, that idealized principle is balanced against the practical objectives of limiting the number of relatively time-consuming context switches and minimizing changes to existing code. For additional information, please refer to cpu/x86/mm/README.md. This patch also causes the C compiler to be used as the default linker and assembler.
45 lines
1.6 KiB
Makefile
45 lines
1.6 KiB
Makefile
CONTIKI_CPU_DIRS += . init/common
|
|
|
|
CONTIKI_SOURCEFILES += gdt.c helpers.S idt.c cpu.c
|
|
|
|
CC = gcc
|
|
LD = $(CC)
|
|
# Use gcc to invoke the assembler so that the preprocessor will be run on each
|
|
# file first, enabling us to use macros within assembly language files:
|
|
AS = $(CC)
|
|
OBJCOPY = objcopy
|
|
SIZE = size
|
|
STRIP = strip
|
|
|
|
# Omit exception handling unwind tables (see
|
|
# http://wiki.dwarfstd.org/index.php?title=Exception_Handling). Removing these
|
|
# tables saves space and has not caused any readily-apparent functional
|
|
# changes.
|
|
#
|
|
# Furthermore, the .eh_frame and .eh_frame_hdr sections that are otherwise
|
|
# generated are treated as code sections by the UEFI GenFw program, since they
|
|
# are read-only alloc sections. They get grouped with the actual code
|
|
# sections, ahead of the data sections. This perturbs symbols and complicates
|
|
# debugging.
|
|
#
|
|
# Synchronize the unwind table options here with the CFLAGS and CXXFLAGS in
|
|
# ./bsp/libc/build_newlib.sh.
|
|
CFLAGS += -Wall -fno-asynchronous-unwind-tables -fno-unwind-tables
|
|
LDFLAGS += -Wl,-Map=contiki-$(TARGET).map,--build-id=none
|
|
|
|
ifeq ($(BUILD_RELEASE),1)
|
|
CFLAGS += -Os -fno-strict-aliasing -ffunction-sections -fdata-sections
|
|
# XXX: --gc-sections can be very tricky sometimes. If somehow the release
|
|
# binary seems to be broken, check if removing this option fixes the issue.
|
|
# Applying the --strip-all option to the UEFI build may induce an "Invalid operation" error.
|
|
# The UEFI GenFw program strips symbols.
|
|
MULTIBOOT_LDFLAGS += -Wl,--strip-all,--gc-sections
|
|
else
|
|
CFLAGS += -O0
|
|
ifeq ($(findstring clang,$(CC)),clang)
|
|
CFLAGS += -g
|
|
else
|
|
CFLAGS += -ggdb3
|
|
endif
|
|
endif
|