Inline alters stack usage, so don't let gcc uninline.
Also, gcc seems to include multiple copies of uninlined functions when
using -combine.
With inlining forced on, the no null check optimization causes
problems, so disable it.
# Default compiler flags
COMMONCFLAGS = -Wall -Os -MD -m32 -march=i386 -mregparm=2 \
- -ffreestanding -fwhole-program -fomit-frame-pointer
+ -ffreestanding -fwhole-program -fomit-frame-pointer \
+ -fno-delete-null-pointer-checks
COMMONCFLAGS += $(call cc-option,$(CC),-nopie,)
COMMONCFLAGS += $(call cc-option,$(CC),-fno-stack-protector,)
COMMONCFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,)
#define barrier() __asm__ __volatile__("": : :"memory")
+#define inline inline __attribute__((always_inline))
+
#define __stringify_1(x) #x
#define __stringify(x) __stringify_1(x)