26 lines
1.1 KiB
Diff
26 lines
1.1 KiB
Diff
This patch fixes multiple definitions of 'extern inline' functions.
|
|
|
|
c99 and gnu90 have slightly different semantics
|
|
WRT symbol definition: http://www.greenend.org.uk/rjk/tech/inline.html
|
|
|
|
gcc-4 defaults to gnu90 and works, gcc-6 defaults to gnu-99
|
|
and fails to link aboot as:
|
|
alpha-unknown-linux-gnu-ld: Disabling relaxation: it will not work with multiple definitions
|
|
lib/libaboot.a(isolib.o): In function `prefetchw':
|
|
(.text+0x60): multiple definition of `prefetchw'
|
|
fs/ext2.o:(.text+0xe68): first defined here
|
|
|
|
The change is to force gnu90 explicitly.
|
|
diff --git a/Makefile b/Makefile
|
|
index b4245af..634ac87 100644
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -40,6 +40,6 @@ ifeq ($(TESTING),)
|
|
CPPFLAGS = $(CFGDEFS) -I$(TOP)/include -I$(KSRC)/include
|
|
-CFLAGS = $(CPPFLAGS) -D__KERNEL__ -Os -Wall -fno-builtin -mno-fp-regs
|
|
+CFLAGS = $(CPPFLAGS) -std=gnu90 -D__KERNEL__ -Os -Wall -fno-builtin -mno-fp-regs
|
|
else
|
|
CPPFLAGS = -DTESTING $(CFGDEFS) -I$(TOP)/include -I$(KSRC)/include
|
|
-CFLAGS = $(CPPFLAGS) -O -g3 -Wall -D__KERNEL__ -ffixed-8
|
|
+CFLAGS = $(CPPFLAGS) -std=gnu90 -O -g3 -Wall -D__KERNEL__ -ffixed-8
|
|
endif
|