diff --git a/repos/base-linux/lib/import/import-syscall-linux.mk b/repos/base-linux/lib/import/import-syscall-linux.mk index f873dafb99..93495c4363 100644 --- a/repos/base-linux/lib/import/import-syscall-linux.mk +++ b/repos/base-linux/lib/import/import-syscall-linux.mk @@ -25,3 +25,7 @@ HOST_INC_DIR += /usr/include/aarch64-linux-gnu # CC_OPT += -D_GNU_SOURCE +# +# Enable definition of __STDC_HOSTED__ +# +CC_OPT_FREESTANDING = diff --git a/repos/base/mk/global.mk b/repos/base/mk/global.mk index 6d0dc55043..62b34a7612 100644 --- a/repos/base/mk/global.mk +++ b/repos/base/mk/global.mk @@ -98,6 +98,11 @@ ifneq ($(STDLIB),yes) LD_OPT_NOSTDLIB := -nostdlib -Wl,-nostdlib endif +# +# Prevent the definition of __STDC_HOSTED__ by default +# +CC_OPT_FREESTANDING ?= -ffreestanding + # # Add coverage options # @@ -166,7 +171,8 @@ CC_ADA_WARN ?= -gnatwa $(CC_ADA_WARN_STRICT) # # Aggregate compiler options that are common for C and C++ # -CC_OPT += $(CC_OPT_NOSTDINC) -g $(CC_MARCH) $(CC_OLEVEL) $(CC_OPT_DEP) $(CC_WARN) +CC_OPT += $(CC_OPT_NOSTDINC) $(CC_OPT_FREESTANDING) -g \ + $(CC_MARCH) $(CC_OLEVEL) $(CC_OPT_DEP) $(CC_WARN) # # Incorporate source-file-specific compiler options diff --git a/repos/libports/lib/import/import-libc.mk b/repos/libports/lib/import/import-libc.mk index 98113f5745..ef14d7e6e8 100644 --- a/repos/libports/lib/import/import-libc.mk +++ b/repos/libports/lib/import/import-libc.mk @@ -51,6 +51,11 @@ endif # REP_INC_DIR += include/libc-genode +# +# Enable definition of __STDC_HOSTED__ +# +CC_OPT_FREESTANDING = + # # Prevent gcc headers from defining __size_t. This definition is done in # machine/_types.h. diff --git a/repos/libports/lib/mk/libgcov.mk b/repos/libports/lib/mk/libgcov.mk index 0f8b111b69..9fdd89f8b5 100644 --- a/repos/libports/lib/mk/libgcov.mk +++ b/repos/libports/lib/mk/libgcov.mk @@ -35,6 +35,8 @@ LIBGCOV_INTERFACE = _gcov_dump \ LIBGCOV_DRIVER = _gcov +CC_OPT_FREESTANDING = + CC_OPT += -fbuilding-libgcc -DIN_GCC -DIN_LIBGCC2 CC_OPT += $(addprefix -DL,$(LIBGCOV_MERGE)) diff --git a/repos/libports/lib/mk/x86emu.mk b/repos/libports/lib/mk/x86emu.mk index 27de24f25f..6fccb59f16 100644 --- a/repos/libports/lib/mk/x86emu.mk +++ b/repos/libports/lib/mk/x86emu.mk @@ -6,6 +6,8 @@ X86EMU_DIR := $(call select_from_ports,x86emu)/src/lib/x86emu/contrib INC_DIR += $(X86EMU_DIR) $(REP_DIR)/include/x86emu CC_OPT += -fomit-frame-pointer -Wno-maybe-uninitialized +CC_OPT_FREESTANDING = + SRC_C = decode.c fpu.c ops.c ops2.c prim_ops.c sys.c vpath %.c $(X86EMU_DIR)