]> xenbits.xensource.com Git - unikraft/libs/newlib.git/commitdiff
Makefile.uk: Use -ffreestanding as internal build option RELEASE-0.13.0 RELEASE-0.13.1
authorRazvan Deaconescu <razvand@unikraft.io>
Thu, 11 May 2023 11:50:37 +0000 (14:50 +0300)
committerUnikraft <monkey@unikraft.io>
Mon, 15 May 2023 06:42:05 +0000 (06:42 +0000)
As a standard C library (libc), newlib is to be built in a freestanding
environment (i.e. not relying on a libc). For that, build internal
newlib source code files with the `-ffreestanding` option. Otherwise, a
hosted environment will be used; in a hosted environment, certain
optimizations may be enabled by the compiler, and they may cause issues
(such as an infinite set of calls).

Signed-off-by: Razvan Deaconescu <razvand@unikraft.io>
Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com>
Reviewed-by: Eduard Vintilă <eduard.vintila47@gmail.com>
Approved-by: Marc Rittinghaus <marc.rittinghaus@unikraft.io>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #33

Makefile.uk

index 87fdf2fee2319447da062af0ba566e29b3b9679d..992505361c523998e8e2c89ef1aad44b8ca08dca 100644 (file)
@@ -118,16 +118,17 @@ LIBNEWLIB_SUPPRESS_FLAGS-$(call gcc_version_ge,6,0) += -Wno-misleading-indentati
 LIBNEWLIB_SUPPRESS_FLAGS-$(call gcc_version_ge,6,0) += -Wno-shift-negative-value
 LIBNEWLIB_SUPPRESS_FLAGS-$(call gcc_version_ge,7,0) += -Wno-implicit-fallthrough
 
+LIBNEWLIB_FLAGS                        += -ffreestanding
 LIBNEWLIB_NO_BUILTINS          += -D__NO_SYSCALLS__ -fno-builtin
 
-LIBNEWLIBC_CFLAGS-y   += $(LIBNEWLIB_SUPPRESS_FLAGS-y) $(LIBNEWLIB_NO_BUILTINS)
-LIBNEWLIBM_CFLAGS-y   += $(LIBNEWLIB_SUPPRESS_FLAGS-y) $(LIBNEWLIB_NO_BUILTINS)
-LIBNEWLIBC_CXXFLAGS-y += $(LIBNEWLIB_SUPPRESS_FLAGS-y) $(LIBNEWLIB_NO_BUILTINS)
-LIBNEWLIBM_CXXFLAGS-y += $(LIBNEWLIB_SUPPRESS_FLAGS-y) $(LIBNEWLIB_NO_BUILTINS)
+LIBNEWLIBC_CFLAGS-y   += $(LIBNEWLIB_SUPPRESS_FLAGS-y) $(LIBNEWLIB_FLAGS) $(LIBNEWLIB_NO_BUILTINS)
+LIBNEWLIBM_CFLAGS-y   += $(LIBNEWLIB_SUPPRESS_FLAGS-y) $(LIBNEWLIB_FLAGS) $(LIBNEWLIB_NO_BUILTINS)
+LIBNEWLIBC_CXXFLAGS-y += $(LIBNEWLIB_SUPPRESS_FLAGS-y) $(LIBNEWLIB_FLAGS) $(LIBNEWLIB_NO_BUILTINS)
+LIBNEWLIBM_CXXFLAGS-y += $(LIBNEWLIB_SUPPRESS_FLAGS-y) $(LIBNEWLIB_FLAGS) $(LIBNEWLIB_NO_BUILTINS)
 
 LIBNEWLIBGLUE_SUPPRESS_FLAGS-y += -Wno-unused-parameter
-LIBNEWLIBGLUE_CFLAGS-y   += $(LIBNEWLIBGLUE_SUPPRESS_FLAGS-y)
-LIBNEWLIBGLUE_CXXFLAGS-y += $(LIBNEWLIBGLUE_SUPPRESS_FLAGS-y)
+LIBNEWLIBGLUE_CFLAGS-y   += $(LIBNEWLIBGLUE_SUPPRESS_FLAGS-y) $(LIBNEWLIB_FLAGS)
+LIBNEWLIBGLUE_CXXFLAGS-y += $(LIBNEWLIBGLUE_SUPPRESS_FLAGS-y) $(LIBNEWLIB_FLAGS)
 
 LIBNEWLIB_GLOBAL_SUPPRESS_FLAGS-y += -Wno-char-subscripts
 CFLAGS-$(CONFIG_LIBNEWLIBC)   += $(LIBNEWLIB_GLOBAL_SUPPRESS_FLAGS-y)