arch is defined as an architecture flag so that optimisations or
necessary differences can be accommodated. When we are unable to
determine the architecture it is incorrect to assign it the value of an
operating system.  Instead lets label it correctly as a default and add
an error to the user when an unknown arch is encountered.

Signed-off-by: Mike Holmes <[email protected]>
---
 configure.ac                                       | 25 ++++++++++++++++------
 platform/linux-generic/Makefile.am                 | 17 +++++++++------
 platform/linux-generic/Makefile.inc                |  4 ++--
 platform/linux-generic/arch/arm/odp/api/cpu_arch.h |  1 +
 platform/linux-generic/arch/arm/odp_cpu_arch.c     |  1 +
 .../linux-generic/arch/arm/odp_sysinfo_parse.c     |  1 +
 .../arch/{linux => default}/odp/api/cpu_arch.h     |  0
 .../arch/{linux => default}/odp_cpu_arch.c         |  0
 .../arch/{linux => default}/odp_sysinfo_parse.c    |  0
 platform/linux-generic/arch/powerpc/odp_cpu_arch.c |  2 +-
 10 files changed, 34 insertions(+), 17 deletions(-)
 create mode 120000 platform/linux-generic/arch/arm/odp/api/cpu_arch.h
 create mode 120000 platform/linux-generic/arch/arm/odp_cpu_arch.c
 create mode 120000 platform/linux-generic/arch/arm/odp_sysinfo_parse.c
 rename platform/linux-generic/arch/{linux => default}/odp/api/cpu_arch.h (100%)
 rename platform/linux-generic/arch/{linux => default}/odp_cpu_arch.c (100%)
 rename platform/linux-generic/arch/{linux => default}/odp_sysinfo_parse.c 
(100%)

diff --git a/configure.ac b/configure.ac
index 5e7e380..3ea33ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -59,13 +59,24 @@ AX_VALGRIND_CHECK
 # Which architecture optimizations will we use
 ##########################################################################
 AS_CASE([$host],
-  [x86*], [ARCH=x86],
-  [i686*], [ARCH=x86],
-  [mips64*], [ARCH=mips64],
-  [powerpc*], [ARCH=powerpc],
-  [ARCH=linux]
+  [x86*], [ARCH_DIR=x86],
+  [i686*], [ARCH_DIR=x86],
+  [mips64*], [ARCH_DIR=mips64],
+  [powerpc*], [ARCH_DIR=powerpc],
+  [aarch64*], [ARCH_DIR=arm],
+  [arm*], [ARCH_DIR=arm],
+  [ARCH_DIR=undefined]
 )
-AC_SUBST([ARCH])
+AC_SUBST([ARCH_DIR])
+
+##########################################################################
+# Warn on the defaults if arch is undefined
+##########################################################################
+if test "${ARCH_DIR}" == "undefined";
+then
+    echo "ARCH_DIR is undefined, please add your ARCH_DIR based on 
host=${host}"
+    exit 1
+fi
 
 ##########################################################################
 # Set correct pkgconfig version
@@ -226,7 +237,7 @@ AC_MSG_RESULT([
 
        Library version:        ${ODP_LIBSO_VERSION}
 
-       arch                    ${ARCH}
+       ARCH_DIR                ${ARCH_DIR}
        with_platform:          ${with_platform}
        prefix:                 ${prefix}
        sysconfdir:             ${sysconfdir}
diff --git a/platform/linux-generic/Makefile.am 
b/platform/linux-generic/Makefile.am
index b3e0d28..5081e51 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -58,7 +58,7 @@ odpapiinclude_HEADERS = \
                  $(srcdir)/include/odp/api/version.h \
                  $(srcdir)/include/odp/api/visibility_begin.h \
                  $(srcdir)/include/odp/api/visibility_end.h \
-                 $(srcdir)/arch/@ARCH@/odp/api/cpu_arch.h
+                 $(srcdir)/arch/@ARCH_DIR@/odp/api/cpu_arch.h
 
 odpapiplatincludedir= $(includedir)/odp/api/plat
 odpapiplatinclude_HEADERS = \
@@ -175,13 +175,13 @@ __LIB__libodp_linux_la_SOURCES = \
                           odp_traffic_mngr.c \
                           odp_version.c \
                           odp_weak.c \
-                          arch/@ARCH@/odp_cpu_arch.c \
-                          arch/@ARCH@/odp_sysinfo_parse.c
+                          arch/@ARCH_DIR@/odp_cpu_arch.c \
+                          arch/@ARCH_DIR@/odp_sysinfo_parse.c
 
 EXTRA_DIST = \
-            arch/linux/odp/api/cpu_arch.h \
-            arch/linux/odp_cpu_arch.c \
-            arch/linux/odp_sysinfo_parse.c \
+            arch/default/odp/api/cpu_arch.h \
+            arch/default/odp_cpu_arch.c \
+            arch/default/odp_sysinfo_parse.c \
             arch/mips64/odp/api/cpu_arch.h \
             arch/mips64/odp_cpu_arch.c \
             arch/mips64/odp_sysinfo_parse.c \
@@ -190,7 +190,10 @@ EXTRA_DIST = \
             arch/powerpc/odp_sysinfo_parse.c \
             arch/x86/odp/api/cpu_arch.h \
             arch/x86/odp_cpu_arch.c \
-            arch/x86/odp_sysinfo_parse.c
+            arch/x86/odp_sysinfo_parse.c \
+            arch/arm/odp/api/cpu_arch.h \
+            arch/arm/odp_cpu_arch.c \
+            arch/arm/odp_sysinfo_parse.c
 
 if HAVE_PCAP
 __LIB__libodp_linux_la_SOURCES += pktio/pcap.c
diff --git a/platform/linux-generic/Makefile.inc 
b/platform/linux-generic/Makefile.inc
index 048c8bb..876519b 100644
--- a/platform/linux-generic/Makefile.inc
+++ b/platform/linux-generic/Makefile.inc
@@ -1,2 +1,2 @@
-AM_CFLAGS   += -I$(top_srcdir)/platform/$(with_platform)/arch/$(ARCH)
-AM_CXXFLAGS += -I$(top_srcdir)/platform/$(with_platform)/arch/$(ARCH)
+AM_CFLAGS   += -I$(top_srcdir)/platform/$(with_platform)/arch/$(ARCH_DIR)
+AM_CXXFLAGS += -I$(top_srcdir)/platform/$(with_platform)/arch/$(ARCH_DIR)
diff --git a/platform/linux-generic/arch/arm/odp/api/cpu_arch.h 
b/platform/linux-generic/arch/arm/odp/api/cpu_arch.h
new file mode 120000
index 0000000..e86e132
--- /dev/null
+++ b/platform/linux-generic/arch/arm/odp/api/cpu_arch.h
@@ -0,0 +1 @@
+../../../default/odp/api/cpu_arch.h
\ No newline at end of file
diff --git a/platform/linux-generic/arch/arm/odp_cpu_arch.c 
b/platform/linux-generic/arch/arm/odp_cpu_arch.c
new file mode 120000
index 0000000..deebc47
--- /dev/null
+++ b/platform/linux-generic/arch/arm/odp_cpu_arch.c
@@ -0,0 +1 @@
+../default/odp_cpu_arch.c
\ No newline at end of file
diff --git a/platform/linux-generic/arch/arm/odp_sysinfo_parse.c 
b/platform/linux-generic/arch/arm/odp_sysinfo_parse.c
new file mode 120000
index 0000000..39962b8
--- /dev/null
+++ b/platform/linux-generic/arch/arm/odp_sysinfo_parse.c
@@ -0,0 +1 @@
+../default/odp_sysinfo_parse.c
\ No newline at end of file
diff --git a/platform/linux-generic/arch/linux/odp/api/cpu_arch.h 
b/platform/linux-generic/arch/default/odp/api/cpu_arch.h
similarity index 100%
rename from platform/linux-generic/arch/linux/odp/api/cpu_arch.h
rename to platform/linux-generic/arch/default/odp/api/cpu_arch.h
diff --git a/platform/linux-generic/arch/linux/odp_cpu_arch.c 
b/platform/linux-generic/arch/default/odp_cpu_arch.c
similarity index 100%
rename from platform/linux-generic/arch/linux/odp_cpu_arch.c
rename to platform/linux-generic/arch/default/odp_cpu_arch.c
diff --git a/platform/linux-generic/arch/linux/odp_sysinfo_parse.c 
b/platform/linux-generic/arch/default/odp_sysinfo_parse.c
similarity index 100%
rename from platform/linux-generic/arch/linux/odp_sysinfo_parse.c
rename to platform/linux-generic/arch/default/odp_sysinfo_parse.c
diff --git a/platform/linux-generic/arch/powerpc/odp_cpu_arch.c 
b/platform/linux-generic/arch/powerpc/odp_cpu_arch.c
index c5fe400..deebc47 120000
--- a/platform/linux-generic/arch/powerpc/odp_cpu_arch.c
+++ b/platform/linux-generic/arch/powerpc/odp_cpu_arch.c
@@ -1 +1 @@
-../linux/odp_cpu_arch.c
\ No newline at end of file
+../default/odp_cpu_arch.c
\ No newline at end of file
-- 
2.7.4

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to