[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [UNIKRAFT PATCH] build: choose arch-includes at makefile level



Instead of adding multiple ifdefs in the headers in order to choose a
header specific to current architecture, include
<uk/asm/arch_specific_header.h>. This will automatically resolve to
the correct header, via -I flags provided to compiler.

This also moves the arch headers in
arch/<arch_family>/<arch_name>/uk/asm

Signed-off-by: Yuri Volchkov <yuri.volchkov@xxxxxxxxx>
---
 arch/arm/arm/Makefile.uk                      |  4 +++
 .../arm/arm/include/uk/asm}/atomic.h          |  0
 .../arm/arm/include/uk/asm}/intsizes.h        |  0
 .../arm/arm/include/uk/asm}/lcpu.h            |  0
 .../arm/arm/include/uk/asm}/limits.h          |  0
 .../arm/arm/include/uk/asm}/types.h           |  0
 arch/arm/arm64/Makefile.uk                    |  4 +++
 .../arm/arm64/include/uk/asm}/atomic.h        |  0
 .../arm/arm64/include/uk/asm}/intsizes.h      |  0
 .../arm/arm64/include/uk/asm}/lcpu.h          |  0
 .../arm/arm64/include/uk/asm}/limits.h        |  0
 .../arm/arm64/include/uk/asm}/types.h         |  0
 arch/x86/x86_64/Makefile.uk                   |  5 ++++
 .../x86/x86_64/include/uk/asm}/atomic.h       |  0
 .../x86/x86_64/include/uk/asm}/intsizes.h     |  0
 .../x86/x86_64/include/uk/asm}/lcpu.h         |  0
 .../x86/x86_64/include/uk/asm}/limits.h       |  0
 .../x86/x86_64/include/uk/asm}/types.h        |  0
 include/uk/arch/atomic.h                      | 13 +---------
 include/uk/arch/lcpu.h                        | 13 +---------
 include/uk/arch/limits.h                      | 26 ++-----------------
 include/uk/arch/types.h                       | 18 ++-----------
 22 files changed, 19 insertions(+), 64 deletions(-)
 rename {include/uk/arch/arm/arm => arch/arm/arm/include/uk/asm}/atomic.h (100%)
 rename {include/uk/arch/arm/arm => arch/arm/arm/include/uk/asm}/intsizes.h 
(100%)
 rename {include/uk/arch/arm/arm => arch/arm/arm/include/uk/asm}/lcpu.h (100%)
 rename {include/uk/arch/arm/arm => arch/arm/arm/include/uk/asm}/limits.h (100%)
 rename {include/uk/arch/arm/arm => arch/arm/arm/include/uk/asm}/types.h (100%)
 rename {include/uk/arch/arm/arm64 => arch/arm/arm64/include/uk/asm}/atomic.h 
(100%)
 rename {include/uk/arch/arm/arm64 => arch/arm/arm64/include/uk/asm}/intsizes.h 
(100%)
 rename {include/uk/arch/arm/arm64 => arch/arm/arm64/include/uk/asm}/lcpu.h 
(100%)
 rename {include/uk/arch/arm/arm64 => arch/arm/arm64/include/uk/asm}/limits.h 
(100%)
 rename {include/uk/arch/arm/arm64 => arch/arm/arm64/include/uk/asm}/types.h 
(100%)
 rename {include/uk/arch/x86/x86_64 => arch/x86/x86_64/include/uk/asm}/atomic.h 
(100%)
 rename {include/uk/arch/x86/x86_64 => 
arch/x86/x86_64/include/uk/asm}/intsizes.h (100%)
 rename {include/uk/arch/x86/x86_64 => arch/x86/x86_64/include/uk/asm}/lcpu.h 
(100%)
 rename {include/uk/arch/x86/x86_64 => arch/x86/x86_64/include/uk/asm}/limits.h 
(100%)
 rename {include/uk/arch/x86/x86_64 => arch/x86/x86_64/include/uk/asm}/types.h 
(100%)

diff --git a/arch/arm/arm/Makefile.uk b/arch/arm/arm/Makefile.uk
index 9aef849..3c5dd1f 100644
--- a/arch/arm/arm/Makefile.uk
+++ b/arch/arm/arm/Makefile.uk
@@ -5,6 +5,10 @@ CFLAGS   += -marm -fms-extensions
 CXXFLAGS += -D__ARM_32__
 CXXFLAGS += -marm -fms-extensions
 
+CINCLUDES   += -I$(CONFIG_UK_BASE)/arch/arm/arm/include
+ASINCLUDES  += -I$(CONFIG_UK_BASE)/arch/arm/arm/include
+CXXINCLUDES += -I$(CONFIG_UK_BASE)/arch/arm/arm/include
+
 # Set GCC flags for MARCH_ARM32_GENERICV7. GCC supports -mtune=generic-armv7-a 
from 4.7
 ifeq ($(CONFIG_MARCH_ARM32_GENERICV7),y)
 $(call error_if_gcc_version_lt,4,7)
diff --git a/include/uk/arch/arm/arm/atomic.h 
b/arch/arm/arm/include/uk/asm/atomic.h
similarity index 100%
rename from include/uk/arch/arm/arm/atomic.h
rename to arch/arm/arm/include/uk/asm/atomic.h
diff --git a/include/uk/arch/arm/arm/intsizes.h 
b/arch/arm/arm/include/uk/asm/intsizes.h
similarity index 100%
rename from include/uk/arch/arm/arm/intsizes.h
rename to arch/arm/arm/include/uk/asm/intsizes.h
diff --git a/include/uk/arch/arm/arm/lcpu.h b/arch/arm/arm/include/uk/asm/lcpu.h
similarity index 100%
rename from include/uk/arch/arm/arm/lcpu.h
rename to arch/arm/arm/include/uk/asm/lcpu.h
diff --git a/include/uk/arch/arm/arm/limits.h 
b/arch/arm/arm/include/uk/asm/limits.h
similarity index 100%
rename from include/uk/arch/arm/arm/limits.h
rename to arch/arm/arm/include/uk/asm/limits.h
diff --git a/include/uk/arch/arm/arm/types.h 
b/arch/arm/arm/include/uk/asm/types.h
similarity index 100%
rename from include/uk/arch/arm/arm/types.h
rename to arch/arm/arm/include/uk/asm/types.h
diff --git a/arch/arm/arm64/Makefile.uk b/arch/arm/arm64/Makefile.uk
index 54b1b01..eb73cac 100644
--- a/arch/arm/arm64/Makefile.uk
+++ b/arch/arm/arm64/Makefile.uk
@@ -7,6 +7,10 @@ ASFLAGS  += -D__ARM_64__ -mgeneral-regs-only
 CFLAGS   += -D__ARM_64__ -fms-extensions -mgeneral-regs-only
 CXXFLAGS += -D__ARM_64__ -fms-extensions -mgeneral-regs-only
 
+CINCLUDES   += -I$(CONFIG_UK_BASE)/arch/arm/arm64/include
+ASINCLUDES  += -I$(CONFIG_UK_BASE)/arch/arm/arm64/include
+CXXINCLUDES += -I$(CONFIG_UK_BASE)/arch/arm/arm64/include
+
 # GCC support -mcpu=native for arm64 from 6.0
 ifeq ($(CONFIG_MARCH_ARM64_NATIVE),y)
 $(call error_if_gcc_version_lt,6,0)
diff --git a/include/uk/arch/arm/arm64/atomic.h 
b/arch/arm/arm64/include/uk/asm/atomic.h
similarity index 100%
rename from include/uk/arch/arm/arm64/atomic.h
rename to arch/arm/arm64/include/uk/asm/atomic.h
diff --git a/include/uk/arch/arm/arm64/intsizes.h 
b/arch/arm/arm64/include/uk/asm/intsizes.h
similarity index 100%
rename from include/uk/arch/arm/arm64/intsizes.h
rename to arch/arm/arm64/include/uk/asm/intsizes.h
diff --git a/include/uk/arch/arm/arm64/lcpu.h 
b/arch/arm/arm64/include/uk/asm/lcpu.h
similarity index 100%
rename from include/uk/arch/arm/arm64/lcpu.h
rename to arch/arm/arm64/include/uk/asm/lcpu.h
diff --git a/include/uk/arch/arm/arm64/limits.h 
b/arch/arm/arm64/include/uk/asm/limits.h
similarity index 100%
rename from include/uk/arch/arm/arm64/limits.h
rename to arch/arm/arm64/include/uk/asm/limits.h
diff --git a/include/uk/arch/arm/arm64/types.h 
b/arch/arm/arm64/include/uk/asm/types.h
similarity index 100%
rename from include/uk/arch/arm/arm64/types.h
rename to arch/arm/arm64/include/uk/asm/types.h
diff --git a/arch/x86/x86_64/Makefile.uk b/arch/x86/x86_64/Makefile.uk
index 6b03f7a..9d540c0 100644
--- a/arch/x86/x86_64/Makefile.uk
+++ b/arch/x86/x86_64/Makefile.uk
@@ -5,6 +5,11 @@ CFLAGS   += -m64 -mno-red-zone -fno-reorder-blocks 
-fno-asynchronous-unwind-tabl
 CXXFLAGS += -D__X86_64__
 CXXFLAGS += -m64 -mno-red-zone -fno-reorder-blocks 
-fno-asynchronous-unwind-tables
 
+CINCLUDES   += -I$(CONFIG_UK_BASE)/arch/x86/x86_64/include
+ASINCLUDES  += -I$(CONFIG_UK_BASE)/arch/x86/x86_64/include
+CXXINCLUDES += -I$(CONFIG_UK_BASE)/arch/x86/x86_64/include
+
+
 CFLAGS-$(CONFIG_MARCH_X86_64_GENERIC)      += -mtune=generic
 CXXFLAGS-$(CONFIG_MARCH_X86_64_GENERIC)    += -mtune=generic
 CFLAGS-$(CONFIG_MARCH_X86_64_NOCONA)       += -march=nocona
diff --git a/include/uk/arch/x86/x86_64/atomic.h 
b/arch/x86/x86_64/include/uk/asm/atomic.h
similarity index 100%
rename from include/uk/arch/x86/x86_64/atomic.h
rename to arch/x86/x86_64/include/uk/asm/atomic.h
diff --git a/include/uk/arch/x86/x86_64/intsizes.h 
b/arch/x86/x86_64/include/uk/asm/intsizes.h
similarity index 100%
rename from include/uk/arch/x86/x86_64/intsizes.h
rename to arch/x86/x86_64/include/uk/asm/intsizes.h
diff --git a/include/uk/arch/x86/x86_64/lcpu.h 
b/arch/x86/x86_64/include/uk/asm/lcpu.h
similarity index 100%
rename from include/uk/arch/x86/x86_64/lcpu.h
rename to arch/x86/x86_64/include/uk/asm/lcpu.h
diff --git a/include/uk/arch/x86/x86_64/limits.h 
b/arch/x86/x86_64/include/uk/asm/limits.h
similarity index 100%
rename from include/uk/arch/x86/x86_64/limits.h
rename to arch/x86/x86_64/include/uk/asm/limits.h
diff --git a/include/uk/arch/x86/x86_64/types.h 
b/arch/x86/x86_64/include/uk/asm/types.h
similarity index 100%
rename from include/uk/arch/x86/x86_64/types.h
rename to arch/x86/x86_64/include/uk/asm/types.h
diff --git a/include/uk/arch/atomic.h b/include/uk/arch/atomic.h
index 7cd34b8..d4abeb7 100644
--- a/include/uk/arch/atomic.h
+++ b/include/uk/arch/atomic.h
@@ -36,18 +36,7 @@
 extern "C" {
 #endif
 
-#ifdef __X86_32__
-#include <uk/arch/x86/x86/atomic.h>
-#endif
-#ifdef __X86_64__
-#include <uk/arch/x86/x86_64/atomic.h>
-#endif
-#ifdef __ARM_32__
-#include <uk/arch/arm/arm/atomic.h>
-#endif
-#ifdef __ARM_64__
-#include <uk/arch/arm/arm64/atomic.h>
-#endif
+#include <uk/asm/atomic.h>
 
 /**
  * Perform a atomic load operation.
diff --git a/include/uk/arch/lcpu.h b/include/uk/arch/lcpu.h
index a9e10d2..83ea6ec 100644
--- a/include/uk/arch/lcpu.h
+++ b/include/uk/arch/lcpu.h
@@ -42,18 +42,7 @@
 extern "C" {
 #endif
 
-#ifdef __X86_32__
-#include <uk/arch/x86/x86/lcpu.h>
-#endif
-#ifdef __X86_64__
-#include <uk/arch/x86/x86_64/lcpu.h>
-#endif
-#ifdef __ARM_32__
-#include <uk/arch/arm/arm/lcpu.h>
-#endif
-#ifdef __ARM_64__
-#include <uk/arch/arm/arm64/lcpu.h>
-#endif
+#include <uk/asm/lcpu.h>
 
 #ifndef likely
 #define likely(x)   (__builtin_expect((!!(x)), 1))
diff --git a/include/uk/arch/limits.h b/include/uk/arch/limits.h
index a0683ad..f1b5831 100644
--- a/include/uk/arch/limits.h
+++ b/include/uk/arch/limits.h
@@ -36,33 +36,11 @@
 #ifndef __UKARCH_LIMITS_H__
 #define __UKARCH_LIMITS_H__
 
-#ifdef __X86_32__
-#include <uk/arch/x86/x86/limits.h>
-#endif
-#ifdef __X86_64__
-#include <uk/arch/x86/x86_64/limits.h>
-#endif
-#ifdef __ARM_32__
-#include <uk/arch/arm/arm/limits.h>
-#endif
-#ifdef __ARM_64__
-#include <uk/arch/arm/arm64/limits.h>
-#endif
+#include <uk/asm/limits.h>
 
 #ifndef __ASSEMBLY__
 
-#ifdef __X86_32__
-#include <uk/arch/x86/x86/intsizes.h>
-#endif
-#ifdef __X86_64__
-#include <uk/arch/x86/x86_64/intsizes.h>
-#endif
-#ifdef __ARM_32__
-#include <uk/arch/arm/arm/intsizes.h>
-#endif
-#ifdef __ARM_64__
-#include <uk/arch/arm/arm64/intsizes.h>
-#endif
+#include <uk/asm/intsizes.h>
 
 #if (defined __C_IS_8)
 #define __C_MAX             (127)
diff --git a/include/uk/arch/types.h b/include/uk/arch/types.h
index 8b97baf..af6c3e3 100644
--- a/include/uk/arch/types.h
+++ b/include/uk/arch/types.h
@@ -40,22 +40,8 @@
 extern "C" {
 #endif
 
-#ifdef __X86_32__
-#include <uk/arch/x86/x86/intsizes.h>
-#include <uk/arch/x86/x86/types.h>
-#endif
-#ifdef __X86_64__
-#include <uk/arch/x86/x86_64/intsizes.h>
-#include <uk/arch/x86/x86_64/types.h>
-#endif
-#ifdef __ARM_32__
-#include <uk/arch/arm/arm/intsizes.h>
-#include <uk/arch/arm/arm/types.h>
-#endif
-#ifdef __ARM_64__
-#include <uk/arch/arm/arm64/intsizes.h>
-#include <uk/arch/arm/arm64/types.h>
-#endif
+#include <uk/asm/intsizes.h>
+#include <uk/asm/types.h>
 
 #ifndef __ASSEMBLY__
 
-- 
2.18.0


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.