[v2,4/8] eal: move arch-specific header files

Message ID 20200327011540.954014-5-thomas@monjalon.net (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series eal: reorganize directories layout |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Thomas Monjalon March 27, 2020, 1:15 a.m. UTC
  The arch-specific directories arm, ppc and x86 in common/include/arch/
are moved as include/ sub-directories of respective arch directories:
	- arm/include/
	- ppc/include/
	- x86/include/

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 MAINTAINERS                                           | 10 +++-------
 config/arm/meson.build                                |  2 +-
 config/common_armv8a_linux                            |  2 +-
 devtools/build-tags.sh                                | 11 ++++-------
 .../include/arch/arm => arm/include}/meson.build      |  7 +++++--
 .../include/arch/arm => arm/include}/rte_atomic.h     |  0
 .../include/arch/arm => arm/include}/rte_atomic_32.h  |  0
 .../include/arch/arm => arm/include}/rte_atomic_64.h  |  0
 .../include/arch/arm => arm/include}/rte_byteorder.h  |  0
 .../include/arch/arm => arm/include}/rte_cpuflags.h   |  0
 .../arch/arm => arm/include}/rte_cpuflags_32.h        |  0
 .../arch/arm => arm/include}/rte_cpuflags_64.h        |  0
 .../include/arch/arm => arm/include}/rte_cycles.h     |  0
 .../include/arch/arm => arm/include}/rte_cycles_32.h  |  0
 .../include/arch/arm => arm/include}/rte_cycles_64.h  |  0
 .../{common/include/arch/arm => arm/include}/rte_io.h |  0
 .../include/arch/arm => arm/include}/rte_io_64.h      |  0
 .../include/arch/arm => arm/include}/rte_mcslock.h    |  0
 .../include/arch/arm => arm/include}/rte_memcpy.h     |  0
 .../include/arch/arm => arm/include}/rte_memcpy_32.h  |  0
 .../include/arch/arm => arm/include}/rte_memcpy_64.h  |  0
 .../include/arch/arm => arm/include}/rte_pause.h      |  0
 .../include/arch/arm => arm/include}/rte_pause_32.h   |  0
 .../include/arch/arm => arm/include}/rte_pause_64.h   |  0
 .../include/arch/arm => arm/include}/rte_prefetch.h   |  0
 .../arch/arm => arm/include}/rte_prefetch_32.h        |  0
 .../arch/arm => arm/include}/rte_prefetch_64.h        |  0
 .../include/arch/arm => arm/include}/rte_rwlock.h     |  0
 .../include/arch/arm => arm/include}/rte_spinlock.h   |  0
 .../include/arch/arm => arm/include}/rte_ticketlock.h |  0
 .../include/arch/arm => arm/include}/rte_vect.h       |  0
 lib/librte_eal/arm/meson.build                        |  2 ++
 lib/librte_eal/common/Makefile                        |  4 ++--
 lib/librte_eal/common/include/arch/ppc                |  1 -
 lib/librte_eal/common/meson.build                     |  6 +-----
 lib/librte_eal/meson.build                            |  2 +-
 .../include/arch/ppc_64 => ppc/include}/meson.build   |  7 +++++--
 .../include/arch/ppc_64 => ppc/include}/rte_atomic.h  |  0
 .../arch/ppc_64 => ppc/include}/rte_byteorder.h       |  0
 .../arch/ppc_64 => ppc/include}/rte_cpuflags.h        |  0
 .../include/arch/ppc_64 => ppc/include}/rte_cycles.h  |  0
 .../include/arch/ppc_64 => ppc/include}/rte_io.h      |  0
 .../include/arch/ppc_64 => ppc/include}/rte_mcslock.h |  0
 .../include/arch/ppc_64 => ppc/include}/rte_memcpy.h  |  0
 .../include/arch/ppc_64 => ppc/include}/rte_pause.h   |  0
 .../arch/ppc_64 => ppc/include}/rte_prefetch.h        |  0
 .../include/arch/ppc_64 => ppc/include}/rte_rwlock.h  |  0
 .../arch/ppc_64 => ppc/include}/rte_spinlock.h        |  0
 .../arch/ppc_64 => ppc/include}/rte_ticketlock.h      |  0
 .../include/arch/ppc_64 => ppc/include}/rte_vect.h    |  0
 lib/librte_eal/ppc/meson.build                        |  2 ++
 .../include/arch/x86 => x86/include}/meson.build      |  7 +++++--
 .../include/arch/x86 => x86/include}/rte_atomic.h     |  0
 .../include/arch/x86 => x86/include}/rte_atomic_32.h  |  0
 .../include/arch/x86 => x86/include}/rte_atomic_64.h  |  0
 .../include/arch/x86 => x86/include}/rte_byteorder.h  |  0
 .../arch/x86 => x86/include}/rte_byteorder_32.h       |  0
 .../arch/x86 => x86/include}/rte_byteorder_64.h       |  0
 .../include/arch/x86 => x86/include}/rte_cpuflags.h   |  0
 .../include/arch/x86 => x86/include}/rte_cycles.h     |  0
 .../{common/include/arch/x86 => x86/include}/rte_io.h |  0
 .../include/arch/x86 => x86/include}/rte_mcslock.h    |  0
 .../include/arch/x86 => x86/include}/rte_memcpy.h     |  0
 .../include/arch/x86 => x86/include}/rte_pause.h      |  0
 .../include/arch/x86 => x86/include}/rte_prefetch.h   |  0
 .../include/arch/x86 => x86/include}/rte_rtm.h        |  0
 .../include/arch/x86 => x86/include}/rte_rwlock.h     |  0
 .../include/arch/x86 => x86/include}/rte_spinlock.h   |  0
 .../include/arch/x86 => x86/include}/rte_ticketlock.h |  0
 .../include/arch/x86 => x86/include}/rte_vect.h       |  0
 lib/librte_eal/x86/meson.build                        |  2 ++
 71 files changed, 34 insertions(+), 31 deletions(-)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/meson.build (79%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_atomic.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_atomic_32.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_atomic_64.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_byteorder.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_cpuflags.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_cpuflags_32.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_cpuflags_64.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_cycles.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_cycles_32.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_cycles_64.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_io.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_io_64.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_mcslock.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_memcpy.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_memcpy_32.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_memcpy_64.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_pause.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_pause_32.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_pause_64.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_prefetch.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_prefetch_32.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_prefetch_64.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_rwlock.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_spinlock.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_ticketlock.h (100%)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/rte_vect.h (100%)
 delete mode 120000 lib/librte_eal/common/include/arch/ppc
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/meson.build (67%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_atomic.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_byteorder.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_cpuflags.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_cycles.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_io.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_mcslock.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_memcpy.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_pause.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_prefetch.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_rwlock.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_spinlock.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_ticketlock.h (100%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/rte_vect.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/meson.build (73%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_atomic.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_atomic_32.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_atomic_64.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_byteorder.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_byteorder_32.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_byteorder_64.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_cpuflags.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_cycles.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_io.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_mcslock.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_memcpy.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_pause.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_prefetch.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_rtm.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_rwlock.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_spinlock.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_ticketlock.h (100%)
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/rte_vect.h (100%)
  

Comments

Gavin Hu March 27, 2020, 2:39 a.m. UTC | #1
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
  
David Christensen March 27, 2020, 5:47 p.m. UTC | #2
On 3/26/20 6:15 PM, Thomas Monjalon wrote:
> The arch-specific directories arm, ppc and x86 in common/include/arch/
> are moved as include/ sub-directories of respective arch directories:
> 	- arm/include/
> 	- ppc/include/
> 	- x86/include/
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>

Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
  

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index a1f1a22833..89aff59ccf 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -168,9 +168,8 @@  Environment Abstraction Layer
 T: git://dpdk.org/dpdk
 
 EAL API and common code
-F: lib/librte_eal/common/*
-F: lib/librte_eal/common/include/*
-F: lib/librte_eal/common/include/generic/
+F: lib/librte_eal/common/
+F: lib/librte_eal/common/include/
 F: lib/librte_eal/rte_eal_version.map
 F: doc/guides/prog_guide/env_abstraction_layer.rst
 F: app/test/test_alarm.c
@@ -262,12 +261,11 @@  ARM v7
 M: Jan Viktorin <viktorin@rehivetech.com>
 M: Gavin Hu <gavin.hu@arm.com>
 F: lib/librte_eal/arm/
-F: lib/librte_eal/common/include/arch/arm/
 
 ARM v8
 M: Jerin Jacob <jerinj@marvell.com>
 M: Gavin Hu <gavin.hu@arm.com>
-F: lib/librte_eal/common/include/arch/arm/*_64.h
+F: lib/librte_eal/arm/include/*_64.h
 F: lib/librte_net/net_crc_neon.h
 F: lib/librte_acl/acl_run_neon.*
 F: lib/librte_bpf/bpf_jit_arm64.c
@@ -282,7 +280,6 @@  F: drivers/net/virtio/virtio_rxtx_simple_neon.c
 IBM POWER (alpha)
 M: David Christensen <drc@linux.vnet.ibm.com>
 F: lib/librte_eal/ppc/
-F: lib/librte_eal/common/include/arch/ppc_64/
 F: drivers/net/i40e/i40e_rxtx_vec_altivec.c
 F: examples/l3fwd/*altivec.h
 
@@ -290,7 +287,6 @@  Intel x86
 M: Bruce Richardson <bruce.richardson@intel.com>
 M: Konstantin Ananyev <konstantin.ananyev@intel.com>
 F: lib/librte_eal/x86/
-F: lib/librte_eal/common/include/arch/x86/
 
 Linux EAL (with overlaps)
 F: lib/librte_eal/linux/Makefile
diff --git a/config/arm/meson.build b/config/arm/meson.build
index 7e22358358..6e75e6d97e 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -11,7 +11,7 @@  arm_force_default_march = (machine == 'default')
 flags_common_default = [
 	# Accelarate rte_memcpy. Be sure to run unit test (memcpy_perf_autotest)
 	# to determine the best threshold in code. Refer to notes in source file
-	# (lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h) for more info.
+	# (lib/librte_eal/arm/include/rte_memcpy_64.h) for more info.
 	['RTE_ARCH_ARM64_MEMCPY', false],
 	#	['RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD', 2048],
 	#	['RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD', 512],
diff --git a/config/common_armv8a_linux b/config/common_armv8a_linux
index 020f8f006c..e942657a0f 100644
--- a/config/common_armv8a_linux
+++ b/config/common_armv8a_linux
@@ -21,7 +21,7 @@  CONFIG_RTE_USE_C11_MEM_MODEL=y
 
 # Accelarate rte_memcpy. Be sure to run unit test (memcpy_perf_autotest)
 # to determine the best threshold in code. Refer to notes in source file
-# (lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h) for more info.
+# (lib/librte_eal/arm/include/rte_memcpy_64.h) for more info.
 CONFIG_RTE_ARCH_ARM64_MEMCPY=n
 #CONFIG_RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD=2048
 #CONFIG_RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD=512
diff --git a/devtools/build-tags.sh b/devtools/build-tags.sh
index 8221f90f70..276fff647b 100755
--- a/devtools/build-tags.sh
+++ b/devtools/build-tags.sh
@@ -79,28 +79,26 @@  bsd_sources()
 
 arm_common()
 {
-	find_sources "lib/librte_eal/arm" '*.[chS]'
 	find_sources "$source_dirs" '*neon*.[chS]'
 }
 
 arm_32_sources()
 {
 	arm_common
-	find_sources "lib/librte_eal/common/include/arch/arm" '*.[chS]' \
+	find_sources "lib/librte_eal/arm" '*.[chS]' \
 					"$skip_64b_files"
 }
 
 arm_64_sources()
 {
 	arm_common
-	find_sources "lib/librte_eal/common/include/arch/arm" '*.[chS]' \
+	find_sources "lib/librte_eal/arm" '*.[chS]' \
 					 "$skip_32b_files"
 	find_sources "$source_dirs" '*arm64.[chS]'
 }
 
 x86_common()
 {
-	find_sources "lib/librte_eal/x86" '*.[chS]'
 	find_sources "examples/performance-thread/common/arch/x86" '*.[chS]'
 	find_sources "$source_dirs" '*_sse*.[chS]'
 	find_sources "$source_dirs" '*_avx*.[chS]'
@@ -110,21 +108,20 @@  x86_common()
 x86_32_sources()
 {
 	x86_common
-	find_sources "lib/librte_eal/common/include/arch/x86" '*.[chS]' \
+	find_sources "lib/librte_eal/x86" '*.[chS]' \
 					"$skip_64b_files"
 }
 
 x86_64_sources()
 {
 	x86_common
-	find_sources "lib/librte_eal/common/include/arch/x86" '*.[chS]' \
+	find_sources "lib/librte_eal/x86" '*.[chS]' \
 					"$skip_32b_files"
 }
 
 ppc_64_sources()
 {
 	find_sources "lib/librte_eal/ppc" '*.[chS]'
-	find_sources "lib/librte_eal/common/include/arch/ppc_64" '*.[chS]'
 	find_sources "$source_dirs" '*altivec*.[chS]'
 }
 
diff --git a/lib/librte_eal/common/include/arch/arm/meson.build b/lib/librte_eal/arm/include/meson.build
similarity index 79%
rename from lib/librte_eal/common/include/arch/arm/meson.build
rename to lib/librte_eal/arm/include/meson.build
index 77893fa359..1721743240 100644
--- a/lib/librte_eal/common/include/arch/arm/meson.build
+++ b/lib/librte_eal/arm/include/meson.build
@@ -1,7 +1,9 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation.
 
-install_headers(
+includes += include_directories('.')
+
+arch_headers = files(
 	'rte_atomic_32.h',
 	'rte_atomic_64.h',
 	'rte_atomic.h',
@@ -26,4 +28,5 @@  install_headers(
 	'rte_rwlock.h',
 	'rte_spinlock.h',
 	'rte_vect.h',
-	subdir: get_option('include_subdir_arch'))
+)
+install_headers(arch_headers, subdir: get_option('include_subdir_arch'))
diff --git a/lib/librte_eal/common/include/arch/arm/rte_atomic.h b/lib/librte_eal/arm/include/rte_atomic.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_atomic.h
rename to lib/librte_eal/arm/include/rte_atomic.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_atomic_32.h b/lib/librte_eal/arm/include/rte_atomic_32.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_atomic_32.h
rename to lib/librte_eal/arm/include/rte_atomic_32.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_atomic_64.h b/lib/librte_eal/arm/include/rte_atomic_64.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_atomic_64.h
rename to lib/librte_eal/arm/include/rte_atomic_64.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_byteorder.h b/lib/librte_eal/arm/include/rte_byteorder.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_byteorder.h
rename to lib/librte_eal/arm/include/rte_byteorder.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_cpuflags.h b/lib/librte_eal/arm/include/rte_cpuflags.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_cpuflags.h
rename to lib/librte_eal/arm/include/rte_cpuflags.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_cpuflags_32.h b/lib/librte_eal/arm/include/rte_cpuflags_32.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_cpuflags_32.h
rename to lib/librte_eal/arm/include/rte_cpuflags_32.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_cpuflags_64.h b/lib/librte_eal/arm/include/rte_cpuflags_64.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_cpuflags_64.h
rename to lib/librte_eal/arm/include/rte_cpuflags_64.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_cycles.h b/lib/librte_eal/arm/include/rte_cycles.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_cycles.h
rename to lib/librte_eal/arm/include/rte_cycles.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_cycles_32.h b/lib/librte_eal/arm/include/rte_cycles_32.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_cycles_32.h
rename to lib/librte_eal/arm/include/rte_cycles_32.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_cycles_64.h b/lib/librte_eal/arm/include/rte_cycles_64.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_cycles_64.h
rename to lib/librte_eal/arm/include/rte_cycles_64.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_io.h b/lib/librte_eal/arm/include/rte_io.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_io.h
rename to lib/librte_eal/arm/include/rte_io.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_io_64.h b/lib/librte_eal/arm/include/rte_io_64.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_io_64.h
rename to lib/librte_eal/arm/include/rte_io_64.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_mcslock.h b/lib/librte_eal/arm/include/rte_mcslock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_mcslock.h
rename to lib/librte_eal/arm/include/rte_mcslock.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_memcpy.h b/lib/librte_eal/arm/include/rte_memcpy.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_memcpy.h
rename to lib/librte_eal/arm/include/rte_memcpy.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_memcpy_32.h b/lib/librte_eal/arm/include/rte_memcpy_32.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_memcpy_32.h
rename to lib/librte_eal/arm/include/rte_memcpy_32.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h b/lib/librte_eal/arm/include/rte_memcpy_64.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h
rename to lib/librte_eal/arm/include/rte_memcpy_64.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_pause.h b/lib/librte_eal/arm/include/rte_pause.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_pause.h
rename to lib/librte_eal/arm/include/rte_pause.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_pause_32.h b/lib/librte_eal/arm/include/rte_pause_32.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_pause_32.h
rename to lib/librte_eal/arm/include/rte_pause_32.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_pause_64.h b/lib/librte_eal/arm/include/rte_pause_64.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_pause_64.h
rename to lib/librte_eal/arm/include/rte_pause_64.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_prefetch.h b/lib/librte_eal/arm/include/rte_prefetch.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_prefetch.h
rename to lib/librte_eal/arm/include/rte_prefetch.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_prefetch_32.h b/lib/librte_eal/arm/include/rte_prefetch_32.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_prefetch_32.h
rename to lib/librte_eal/arm/include/rte_prefetch_32.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_prefetch_64.h b/lib/librte_eal/arm/include/rte_prefetch_64.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_prefetch_64.h
rename to lib/librte_eal/arm/include/rte_prefetch_64.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_rwlock.h b/lib/librte_eal/arm/include/rte_rwlock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_rwlock.h
rename to lib/librte_eal/arm/include/rte_rwlock.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_spinlock.h b/lib/librte_eal/arm/include/rte_spinlock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_spinlock.h
rename to lib/librte_eal/arm/include/rte_spinlock.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_ticketlock.h b/lib/librte_eal/arm/include/rte_ticketlock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_ticketlock.h
rename to lib/librte_eal/arm/include/rte_ticketlock.h
diff --git a/lib/librte_eal/common/include/arch/arm/rte_vect.h b/lib/librte_eal/arm/include/rte_vect.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/rte_vect.h
rename to lib/librte_eal/arm/include/rte_vect.h
diff --git a/lib/librte_eal/arm/meson.build b/lib/librte_eal/arm/meson.build
index f8f7dea9b2..d62875ebae 100644
--- a/lib/librte_eal/arm/meson.build
+++ b/lib/librte_eal/arm/meson.build
@@ -1,6 +1,8 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation.
 
+subdir('include')
+
 sources += files(
 	'rte_cpuflags.c',
 	'rte_cycles.c',
diff --git a/lib/librte_eal/common/Makefile b/lib/librte_eal/common/Makefile
index c2c6d92cd3..6c52f50106 100644
--- a/lib/librte_eal/common/Makefile
+++ b/lib/librte_eal/common/Makefile
@@ -27,11 +27,11 @@  GENERIC_INC += rte_vect.h rte_pause.h rte_io.h
 
 # defined in mk/arch/$(RTE_ARCH)/rte.vars.mk
 ARCH_DIR ?= $(RTE_ARCH)
-ARCH_INC := $(sort $(notdir $(wildcard $(RTE_SDK)/lib/librte_eal/common/include/arch/$(ARCH_DIR)/*.h)))
+ARCH_INC := $(sort $(notdir $(wildcard $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)/include/*.h)))
 
 SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include := $(addprefix include/,$(INC))
 SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include += \
-	$(addprefix include/arch/$(ARCH_DIR)/,$(ARCH_INC))
+	$(addprefix ../$(ARCH_DIR)/include/,$(ARCH_INC))
 SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include/generic := \
 	$(addprefix include/generic/,$(GENERIC_INC))
 
diff --git a/lib/librte_eal/common/include/arch/ppc b/lib/librte_eal/common/include/arch/ppc
deleted file mode 120000
index 2db6a0c918..0000000000
--- a/lib/librte_eal/common/include/arch/ppc
+++ /dev/null
@@ -1 +0,0 @@ 
-ppc_64
\ No newline at end of file
diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index e666618f7f..94dfc5fe74 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -1,8 +1,7 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-eal_inc += include_directories('.', 'include',
-		join_paths('include/arch', arch_subdir))
+eal_inc += include_directories('.', 'include')
 
 common_objs = []
 common_sources = files(
@@ -98,6 +97,3 @@  generic_headers = files(
 	'include/generic/rte_ticketlock.h',
 	'include/generic/rte_vect.h')
 install_headers(generic_headers, subdir: 'generic')
-
-# get and install the architecture specific headers
-subdir(join_paths('include/arch', arch_subdir))
diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build
index 16a4f9825e..0c3d46574e 100644
--- a/lib/librte_eal/meson.build
+++ b/lib/librte_eal/meson.build
@@ -28,4 +28,4 @@  endif
 sources += common_sources + env_sources
 objs = common_objs + env_objs
 headers = common_headers + env_headers
-includes = eal_inc
+includes += eal_inc
diff --git a/lib/librte_eal/common/include/arch/ppc_64/meson.build b/lib/librte_eal/ppc/include/meson.build
similarity index 67%
rename from lib/librte_eal/common/include/arch/ppc_64/meson.build
rename to lib/librte_eal/ppc/include/meson.build
index 00f9611768..3a91c984c4 100644
--- a/lib/librte_eal/common/include/arch/ppc_64/meson.build
+++ b/lib/librte_eal/ppc/include/meson.build
@@ -1,7 +1,9 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
-install_headers(
+includes += include_directories('.')
+
+arch_headers = files(
 	'rte_atomic.h',
 	'rte_byteorder.h',
 	'rte_cpuflags.h',
@@ -13,4 +15,5 @@  install_headers(
 	'rte_rwlock.h',
 	'rte_spinlock.h',
 	'rte_vect.h',
-	subdir: get_option('include_subdir_arch'))
+)
+install_headers(arch_headers, subdir: get_option('include_subdir_arch'))
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_atomic.h b/lib/librte_eal/ppc/include/rte_atomic.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_atomic.h
rename to lib/librte_eal/ppc/include/rte_atomic.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_byteorder.h b/lib/librte_eal/ppc/include/rte_byteorder.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_byteorder.h
rename to lib/librte_eal/ppc/include/rte_byteorder.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_cpuflags.h b/lib/librte_eal/ppc/include/rte_cpuflags.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_cpuflags.h
rename to lib/librte_eal/ppc/include/rte_cpuflags.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_cycles.h b/lib/librte_eal/ppc/include/rte_cycles.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_cycles.h
rename to lib/librte_eal/ppc/include/rte_cycles.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_io.h b/lib/librte_eal/ppc/include/rte_io.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_io.h
rename to lib/librte_eal/ppc/include/rte_io.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_mcslock.h b/lib/librte_eal/ppc/include/rte_mcslock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_mcslock.h
rename to lib/librte_eal/ppc/include/rte_mcslock.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h b/lib/librte_eal/ppc/include/rte_memcpy.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h
rename to lib/librte_eal/ppc/include/rte_memcpy.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h b/lib/librte_eal/ppc/include/rte_pause.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
rename to lib/librte_eal/ppc/include/rte_pause.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_prefetch.h b/lib/librte_eal/ppc/include/rte_prefetch.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_prefetch.h
rename to lib/librte_eal/ppc/include/rte_prefetch.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_rwlock.h b/lib/librte_eal/ppc/include/rte_rwlock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_rwlock.h
rename to lib/librte_eal/ppc/include/rte_rwlock.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_spinlock.h b/lib/librte_eal/ppc/include/rte_spinlock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_spinlock.h
rename to lib/librte_eal/ppc/include/rte_spinlock.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_ticketlock.h b/lib/librte_eal/ppc/include/rte_ticketlock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_ticketlock.h
rename to lib/librte_eal/ppc/include/rte_ticketlock.h
diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_vect.h b/lib/librte_eal/ppc/include/rte_vect.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/ppc_64/rte_vect.h
rename to lib/librte_eal/ppc/include/rte_vect.h
diff --git a/lib/librte_eal/ppc/meson.build b/lib/librte_eal/ppc/meson.build
index 695b171516..f4b6d95c42 100644
--- a/lib/librte_eal/ppc/meson.build
+++ b/lib/librte_eal/ppc/meson.build
@@ -1,6 +1,8 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+subdir('include')
+
 sources += files(
 	'rte_cpuflags.c',
 	'rte_cycles.c',
diff --git a/lib/librte_eal/common/include/arch/x86/meson.build b/lib/librte_eal/x86/include/meson.build
similarity index 73%
rename from lib/librte_eal/common/include/arch/x86/meson.build
rename to lib/librte_eal/x86/include/meson.build
index bc8ffea1ee..d336d522c0 100644
--- a/lib/librte_eal/common/include/arch/x86/meson.build
+++ b/lib/librte_eal/x86/include/meson.build
@@ -1,7 +1,9 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-install_headers(
+includes += include_directories('.')
+
+arch_headers = files(
 	'rte_atomic_32.h',
 	'rte_atomic_64.h',
 	'rte_atomic.h',
@@ -18,4 +20,5 @@  install_headers(
 	'rte_rwlock.h',
 	'rte_spinlock.h',
 	'rte_vect.h',
-	subdir: get_option('include_subdir_arch'))
+)
+install_headers(arch_headers, subdir: get_option('include_subdir_arch'))
diff --git a/lib/librte_eal/common/include/arch/x86/rte_atomic.h b/lib/librte_eal/x86/include/rte_atomic.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_atomic.h
rename to lib/librte_eal/x86/include/rte_atomic.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_atomic_32.h b/lib/librte_eal/x86/include/rte_atomic_32.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_atomic_32.h
rename to lib/librte_eal/x86/include/rte_atomic_32.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h b/lib/librte_eal/x86/include/rte_atomic_64.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_atomic_64.h
rename to lib/librte_eal/x86/include/rte_atomic_64.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_byteorder.h b/lib/librte_eal/x86/include/rte_byteorder.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_byteorder.h
rename to lib/librte_eal/x86/include/rte_byteorder.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_byteorder_32.h b/lib/librte_eal/x86/include/rte_byteorder_32.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_byteorder_32.h
rename to lib/librte_eal/x86/include/rte_byteorder_32.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_byteorder_64.h b/lib/librte_eal/x86/include/rte_byteorder_64.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_byteorder_64.h
rename to lib/librte_eal/x86/include/rte_byteorder_64.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_cpuflags.h b/lib/librte_eal/x86/include/rte_cpuflags.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_cpuflags.h
rename to lib/librte_eal/x86/include/rte_cpuflags.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_cycles.h b/lib/librte_eal/x86/include/rte_cycles.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_cycles.h
rename to lib/librte_eal/x86/include/rte_cycles.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_io.h b/lib/librte_eal/x86/include/rte_io.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_io.h
rename to lib/librte_eal/x86/include/rte_io.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_mcslock.h b/lib/librte_eal/x86/include/rte_mcslock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_mcslock.h
rename to lib/librte_eal/x86/include/rte_mcslock.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/x86/include/rte_memcpy.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_memcpy.h
rename to lib/librte_eal/x86/include/rte_memcpy.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_pause.h b/lib/librte_eal/x86/include/rte_pause.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_pause.h
rename to lib/librte_eal/x86/include/rte_pause.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_prefetch.h b/lib/librte_eal/x86/include/rte_prefetch.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_prefetch.h
rename to lib/librte_eal/x86/include/rte_prefetch.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_rtm.h b/lib/librte_eal/x86/include/rte_rtm.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_rtm.h
rename to lib/librte_eal/x86/include/rte_rtm.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_rwlock.h b/lib/librte_eal/x86/include/rte_rwlock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_rwlock.h
rename to lib/librte_eal/x86/include/rte_rwlock.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_spinlock.h b/lib/librte_eal/x86/include/rte_spinlock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_spinlock.h
rename to lib/librte_eal/x86/include/rte_spinlock.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_ticketlock.h b/lib/librte_eal/x86/include/rte_ticketlock.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_ticketlock.h
rename to lib/librte_eal/x86/include/rte_ticketlock.h
diff --git a/lib/librte_eal/common/include/arch/x86/rte_vect.h b/lib/librte_eal/x86/include/rte_vect.h
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/rte_vect.h
rename to lib/librte_eal/x86/include/rte_vect.h
diff --git a/lib/librte_eal/x86/meson.build b/lib/librte_eal/x86/meson.build
index 252699eebd..e78f29002e 100644
--- a/lib/librte_eal/x86/meson.build
+++ b/lib/librte_eal/x86/meson.build
@@ -1,6 +1,8 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+subdir('include')
+
 sources += files(
 	'rte_cpuflags.c',
 	'rte_cycles.c',