DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] eal: reorganize directories layout
@ 2020-03-20  0:12 Thomas Monjalon
  2020-03-20  9:34 ` Bruce Richardson
  2020-03-27  1:15 ` [dpdk-dev] [PATCH v2 0/8] " Thomas Monjalon
  0 siblings, 2 replies; 22+ messages in thread
From: Thomas Monjalon @ 2020-03-20  0:12 UTC (permalink / raw)
  To: dev
  Cc: david.marchand, Neil Horman, John McNamara, Marko Kovacevic,
	Hemant Agrawal, Sachin Saxena, Matan Azrad, Shahaf Shuler,
	Viacheslav Ovsiienko, Gagandeep Singh, Akhil Goyal, Nipun Gupta,
	Maxime Coquelin, Zhihong Wang, Xiaolong Ye, Ferruh Yigit,
	Cristian Dumitrescu, Jan Viktorin, Gavin Hu, Jerin Jacob,
	Harry van Haaren, Bruce Richardson, Anatoly Burakov, Phil Yang,
	Joyce Kong, Mattias Rönnblom, David Christensen,
	Harini Ramakrishnan, Omar Cardona, Pallavi Kadam, Ranjit Menon,
	Konstantin Ananyev, Olivier Matz

Some clean-up is done in EAL sub-directories.
The goal is to make organization easier to understand,
and to prepare moving some files from common to Unix-only place.

Since the kernel modules are moved to kernel/ directory,
there is no need anymore for the sub-directory eal/ in
linux/, freebsd/ and windows/.

The EAL API (with doxygen documentation) is moved from
common/include/ to include/, which makes more clear that
it is the global API for all environments and architectures.
Note that the arch-specific and os-specific include files are not
in this global include directory, but include/generic/ should
cover the doxygen documentation for them.

The arch-specific directories arm, ppc_64 and x86 in common/arch/
and in common/include/arch are moved at the same level as the
os-specific directories, adding an include/ sub-directory.
It makes more clear that EAL is covering a matrix combining OS and arch.
Note that ppc_64 is renamed to ppc.

These moves offer the opportunity to simplify the make and meson files.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>

---

This change was proposed to the Technical Board in advance:
http://mails.dpdk.org/archives/dev/2020-January/156732.html

If required, the patch may be split:
   1/ remove FreeBSD kernel Makefile
   2/ move arch .c files
   3/ move arch .h files
   4/ move common and generic includes
   5/ move os/eal/ to os/

---
---
 MAINTAINERS                                   |  53 ++++-----
 buildtools/pmdinfogen/meson.build             |   2 +-
 config/arm/meson.build                        |   2 +-
 config/common_armv8a_linux                    |   2 +-
 config/meson.build                            |   2 +-
 devtools/build-tags.sh                        |  14 +--
 doc/api/doxy-api.conf.in                      |   4 +-
 doc/guides/rel_notes/known_issues.rst         |   2 +-
 drivers/bus/dpaa/Makefile                     |   2 +-
 drivers/common/mlx5/meson.build               |   2 +-
 drivers/crypto/caam_jr/Makefile               |   2 +-
 drivers/crypto/dpaa_sec/Makefile              |   2 +-
 drivers/event/dpaa/Makefile                   |   2 +-
 drivers/net/dpaa/Makefile                     |   2 +-
 drivers/net/virtio/meson.build                |   2 +-
 kernel/linux/igb_uio/meson.build              |   2 +-
 kernel/linux/kni/meson.build                  |   4 +-
 lib/librte_cfgfile/Makefile                   |   2 +-
 lib/librte_eal/Makefile                       |   6 +-
 .../arch/arm => arm/include}/meson.build      |   0
 .../arch/arm => arm/include}/rte_atomic.h     |   0
 .../arch/arm => arm/include}/rte_atomic_32.h  |   0
 .../arch/arm => arm/include}/rte_atomic_64.h  |   0
 .../arch/arm => arm/include}/rte_byteorder.h  |   0
 .../arch/arm => arm/include}/rte_cpuflags.h   |   0
 .../arm => arm/include}/rte_cpuflags_32.h     |   0
 .../arm => arm/include}/rte_cpuflags_64.h     |   0
 .../arch/arm => arm/include}/rte_cycles.h     |   0
 .../arch/arm => arm/include}/rte_cycles_32.h  |   0
 .../arch/arm => arm/include}/rte_cycles_64.h  |   0
 .../include/arch/arm => arm/include}/rte_io.h |   0
 .../arch/arm => arm/include}/rte_io_64.h      |   0
 .../arch/arm => arm/include}/rte_mcslock.h    |   0
 .../arch/arm => arm/include}/rte_memcpy.h     |   0
 .../arch/arm => arm/include}/rte_memcpy_32.h  |   0
 .../arch/arm => arm/include}/rte_memcpy_64.h  |   0
 .../arch/arm => arm/include}/rte_pause.h      |   0
 .../arch/arm => arm/include}/rte_pause_32.h   |   0
 .../arch/arm => arm/include}/rte_pause_64.h   |   0
 .../arch/arm => arm/include}/rte_prefetch.h   |   0
 .../arm => arm/include}/rte_prefetch_32.h     |   0
 .../arm => arm/include}/rte_prefetch_64.h     |   0
 .../arch/arm => arm/include}/rte_rwlock.h     |   0
 .../arch/arm => arm/include}/rte_spinlock.h   |   0
 .../arch/arm => arm/include}/rte_ticketlock.h |   0
 .../arch/arm => arm/include}/rte_vect.h       |   0
 lib/librte_eal/arm/meson.build                |  13 +++
 .../{common/arch => }/arm/rte_cpuflags.c      |   0
 .../{common/arch => }/arm/rte_cycles.c        |   0
 .../{common/arch => }/arm/rte_hypervisor.c    |   0
 lib/librte_eal/common/Makefile                |  38 -------
 lib/librte_eal/common/arch/arm/meson.build    |   5 -
 lib/librte_eal/common/arch/ppc_64/meson.build |   5 -
 lib/librte_eal/common/arch/x86/meson.build    |   5 -
 lib/librte_eal/common/meson.build             |  92 ++++------------
 lib/librte_eal/common/rte_service.c           |   2 +-
 lib/librte_eal/freebsd/BSDmakefile.meson      |  14 ---
 lib/librte_eal/freebsd/Makefile               |  90 +++++++++++++++-
 lib/librte_eal/freebsd/{eal => }/eal.c        |   0
 lib/librte_eal/freebsd/eal/Makefile           |  93 ----------------
 lib/librte_eal/freebsd/{eal => }/eal_alarm.c  |   0
 .../freebsd/{eal => }/eal_alarm_private.h     |   0
 .../freebsd/{eal => }/eal_cpuflags.c          |   0
 lib/librte_eal/freebsd/{eal => }/eal_debug.c  |   0
 lib/librte_eal/freebsd/{eal => }/eal_dev.c    |   0
 .../freebsd/{eal => }/eal_hugepage_info.c     |   0
 .../freebsd/{eal => }/eal_interrupts.c        |   0
 lib/librte_eal/freebsd/{eal => }/eal_lcore.c  |   0
 .../freebsd/{eal => }/eal_memalloc.c          |   0
 lib/librte_eal/freebsd/{eal => }/eal_memory.c |   0
 lib/librte_eal/freebsd/{eal => }/eal_thread.c |   0
 lib/librte_eal/freebsd/{eal => }/eal_timer.c  |   0
 .../freebsd/{eal => }/include/rte_os.h        |   0
 lib/librte_eal/freebsd/{eal => }/meson.build  |   8 +-
 .../{common => }/include/generic/rte_atomic.h |   0
 .../include/generic/rte_byteorder.h           |   0
 .../include/generic/rte_cpuflags.h            |   0
 .../{common => }/include/generic/rte_cycles.h |   0
 .../{common => }/include/generic/rte_io.h     |   0
 .../include/generic/rte_mcslock.h             |   0
 .../{common => }/include/generic/rte_memcpy.h |   0
 .../{common => }/include/generic/rte_pause.h  |   0
 .../include/generic/rte_prefetch.h            |   0
 .../{common => }/include/generic/rte_rwlock.h |   0
 .../include/generic/rte_spinlock.h            |   0
 .../include/generic/rte_ticketlock.h          |   0
 .../{common => }/include/generic/rte_vect.h   |   0
 .../{common => }/include/rte_alarm.h          |   0
 .../{common => }/include/rte_bitmap.h         |   0
 .../include/rte_branch_prediction.h           |   0
 lib/librte_eal/{common => }/include/rte_bus.h |   0
 .../{common => }/include/rte_class.h          |   0
 .../{common => }/include/rte_common.h         |   0
 .../{common => }/include/rte_compat.h         |   0
 .../{common => }/include/rte_debug.h          |   0
 lib/librte_eal/{common => }/include/rte_dev.h |   0
 .../{common => }/include/rte_devargs.h        |   0
 lib/librte_eal/{common => }/include/rte_eal.h |   0
 .../{common => }/include/rte_eal_interrupts.h |   0
 .../{common => }/include/rte_eal_memconfig.h  |   0
 .../{common => }/include/rte_errno.h          |   0
 .../{common => }/include/rte_fbarray.h        |   0
 .../include/rte_function_versioning.h         |   0
 .../{common => }/include/rte_hexdump.h        |   0
 .../{common => }/include/rte_hypervisor.h     |   0
 .../{common => }/include/rte_interrupts.h     |   0
 .../{common => }/include/rte_keepalive.h      |   0
 .../{common => }/include/rte_launch.h         |   0
 .../{common => }/include/rte_lcore.h          |   0
 lib/librte_eal/{common => }/include/rte_log.h |   0
 .../{common => }/include/rte_malloc.h         |   0
 .../{common => }/include/rte_memory.h         |   0
 .../{common => }/include/rte_memzone.h        |   0
 .../{common => }/include/rte_option.h         |   0
 .../include/rte_pci_dev_feature_defs.h        |   0
 .../include/rte_pci_dev_features.h            |   0
 .../{common => }/include/rte_per_lcore.h      |   0
 .../{common => }/include/rte_random.h         |   0
 .../{common => }/include/rte_reciprocal.h     |   0
 .../{common => }/include/rte_service.h        |   0
 .../include/rte_service_component.h           |   0
 .../{common => }/include/rte_string_fns.h     |   0
 .../{common => }/include/rte_tailq.h          |   0
 .../{common => }/include/rte_test.h           |   0
 .../{common => }/include/rte_time.h           |   0
 .../{common => }/include/rte_uuid.h           |   0
 .../{common => }/include/rte_version.h        |   0
 .../{common => }/include/rte_vfio.h           |   0
 lib/librte_eal/linux/Makefile                 |  96 ++++++++++++++++-
 lib/librte_eal/linux/{eal => }/eal.c          |   0
 lib/librte_eal/linux/eal/Makefile             | 101 ------------------
 lib/librte_eal/linux/{eal => }/eal_alarm.c    |   0
 lib/librte_eal/linux/{eal => }/eal_cpuflags.c |   0
 lib/librte_eal/linux/{eal => }/eal_debug.c    |   0
 lib/librte_eal/linux/{eal => }/eal_dev.c      |   0
 .../linux/{eal => }/eal_hugepage_info.c       |   0
 .../linux/{eal => }/eal_interrupts.c          |   0
 lib/librte_eal/linux/{eal => }/eal_lcore.c    |   0
 lib/librte_eal/linux/{eal => }/eal_log.c      |   0
 lib/librte_eal/linux/{eal => }/eal_memalloc.c |   0
 lib/librte_eal/linux/{eal => }/eal_memory.c   |   0
 lib/librte_eal/linux/{eal => }/eal_thread.c   |   0
 lib/librte_eal/linux/{eal => }/eal_timer.c    |   0
 lib/librte_eal/linux/{eal => }/eal_vfio.c     |   0
 lib/librte_eal/linux/{eal => }/eal_vfio.h     |   0
 .../linux/{eal => }/eal_vfio_mp_sync.c        |   0
 .../linux/{eal => }/include/rte_kni_common.h  |   0
 .../linux/{eal => }/include/rte_os.h          |   0
 lib/librte_eal/linux/{eal => }/meson.build    |   9 +-
 lib/librte_eal/meson.build                    |  20 ++--
 .../arch/ppc_64 => ppc/include}/meson.build   |   0
 .../arch/ppc_64 => ppc/include}/rte_atomic.h  |   0
 .../ppc_64 => ppc/include}/rte_byteorder.h    |   0
 .../ppc_64 => ppc/include}/rte_cpuflags.h     |   0
 .../arch/ppc_64 => ppc/include}/rte_cycles.h  |   0
 .../arch/ppc_64 => ppc/include}/rte_io.h      |   0
 .../arch/ppc_64 => ppc/include}/rte_mcslock.h |   0
 .../arch/ppc_64 => ppc/include}/rte_memcpy.h  |   0
 .../arch/ppc_64 => ppc/include}/rte_pause.h   |   0
 .../ppc_64 => ppc/include}/rte_prefetch.h     |   0
 .../arch/ppc_64 => ppc/include}/rte_rwlock.h  |   0
 .../ppc_64 => ppc/include}/rte_spinlock.h     |   0
 .../ppc_64 => ppc/include}/rte_ticketlock.h   |   0
 .../arch/ppc_64 => ppc/include}/rte_vect.h    |   0
 lib/librte_eal/ppc/meson.build                |  13 +++
 .../arch/ppc_64 => ppc}/rte_cpuflags.c        |   0
 .../{common/arch/ppc_64 => ppc}/rte_cycles.c  |   0
 .../arch/ppc_64 => ppc}/rte_hypervisor.c      |   0
 lib/librte_eal/windows/{eal => }/eal.c        |   0
 lib/librte_eal/windows/eal/meson.build        |  27 -----
 lib/librte_eal/windows/{eal => }/eal_debug.c  |   0
 lib/librte_eal/windows/{eal => }/eal_lcore.c  |   0
 lib/librte_eal/windows/{eal => }/eal_thread.c |   0
 lib/librte_eal/windows/{eal => }/getopt.c     |   0
 .../windows/{eal => }/include/dirent.h        |   0
 .../windows/{eal => }/include/fnmatch.h       |   0
 .../windows/{eal => }/include/getopt.h        |   0
 .../windows/{eal => }/include/pthread.h       |   0
 .../windows/{eal => }/include/regex.h         |   0
 .../windows/{eal => }/include/rte_os.h        |   0
 .../windows/{eal => }/include/sched.h         |   0
 .../windows/{eal => }/include/sys/queue.h     |   0
 .../windows/{eal => }/include/unistd.h        |   0
 lib/librte_eal/windows/meson.build            |  16 +++
 .../arch/x86 => x86/include}/meson.build      |   0
 .../arch/x86 => x86/include}/rte_atomic.h     |   0
 .../arch/x86 => x86/include}/rte_atomic_32.h  |   0
 .../arch/x86 => x86/include}/rte_atomic_64.h  |   0
 .../arch/x86 => x86/include}/rte_byteorder.h  |   0
 .../x86 => x86/include}/rte_byteorder_32.h    |   0
 .../x86 => x86/include}/rte_byteorder_64.h    |   0
 .../arch/x86 => x86/include}/rte_cpuflags.h   |   0
 .../arch/x86 => x86/include}/rte_cycles.h     |   0
 .../include/arch/x86 => x86/include}/rte_io.h |   0
 .../arch/x86 => x86/include}/rte_mcslock.h    |   0
 .../arch/x86 => x86/include}/rte_memcpy.h     |   0
 .../arch/x86 => x86/include}/rte_pause.h      |   0
 .../arch/x86 => x86/include}/rte_prefetch.h   |   0
 .../arch/x86 => x86/include}/rte_rtm.h        |   0
 .../arch/x86 => x86/include}/rte_rwlock.h     |   0
 .../arch/x86 => x86/include}/rte_spinlock.h   |   0
 .../arch/x86 => x86/include}/rte_ticketlock.h |   0
 .../arch/x86 => x86/include}/rte_vect.h       |   0
 lib/librte_eal/x86/meson.build                |  14 +++
 .../{common/arch => }/x86/rte_cpuflags.c      |   0
 .../{common/arch => }/x86/rte_cpuid.h         |   0
 .../{common/arch => }/x86/rte_cycles.c        |   0
 .../{common/arch => }/x86/rte_hypervisor.c    |   0
 .../{common/arch => }/x86/rte_spinlock.c      |   0
 lib/librte_kvargs/Makefile                    |   2 +-
 license/exceptions.txt                        |   6 +-
 meson.build                                   |   4 +-
 mk/exec-env/freebsd/rte.vars.mk               |   2 +-
 mk/exec-env/linux/rte.vars.mk                 |   2 +-
 214 files changed, 330 insertions(+), 456 deletions(-)
 rename lib/librte_eal/{common/include/arch/arm => arm/include}/meson.build (100%)
 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%)
 create mode 100644 lib/librte_eal/arm/meson.build
 rename lib/librte_eal/{common/arch => }/arm/rte_cpuflags.c (100%)
 rename lib/librte_eal/{common/arch => }/arm/rte_cycles.c (100%)
 rename lib/librte_eal/{common/arch => }/arm/rte_hypervisor.c (100%)
 delete mode 100644 lib/librte_eal/common/Makefile
 delete mode 100644 lib/librte_eal/common/arch/arm/meson.build
 delete mode 100644 lib/librte_eal/common/arch/ppc_64/meson.build
 delete mode 100644 lib/librte_eal/common/arch/x86/meson.build
 delete mode 100644 lib/librte_eal/freebsd/BSDmakefile.meson
 rename lib/librte_eal/freebsd/{eal => }/eal.c (100%)
 delete mode 100644 lib/librte_eal/freebsd/eal/Makefile
 rename lib/librte_eal/freebsd/{eal => }/eal_alarm.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_alarm_private.h (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_cpuflags.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_debug.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_dev.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_hugepage_info.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_interrupts.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_lcore.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_memalloc.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_memory.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_thread.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/eal_timer.c (100%)
 rename lib/librte_eal/freebsd/{eal => }/include/rte_os.h (100%)
 rename lib/librte_eal/freebsd/{eal => }/meson.build (77%)
 rename lib/librte_eal/{common => }/include/generic/rte_atomic.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_byteorder.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_cpuflags.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_cycles.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_io.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_mcslock.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_memcpy.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_pause.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_prefetch.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_rwlock.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_spinlock.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_ticketlock.h (100%)
 rename lib/librte_eal/{common => }/include/generic/rte_vect.h (100%)
 rename lib/librte_eal/{common => }/include/rte_alarm.h (100%)
 rename lib/librte_eal/{common => }/include/rte_bitmap.h (100%)
 rename lib/librte_eal/{common => }/include/rte_branch_prediction.h (100%)
 rename lib/librte_eal/{common => }/include/rte_bus.h (100%)
 rename lib/librte_eal/{common => }/include/rte_class.h (100%)
 rename lib/librte_eal/{common => }/include/rte_common.h (100%)
 rename lib/librte_eal/{common => }/include/rte_compat.h (100%)
 rename lib/librte_eal/{common => }/include/rte_debug.h (100%)
 rename lib/librte_eal/{common => }/include/rte_dev.h (100%)
 rename lib/librte_eal/{common => }/include/rte_devargs.h (100%)
 rename lib/librte_eal/{common => }/include/rte_eal.h (100%)
 rename lib/librte_eal/{common => }/include/rte_eal_interrupts.h (100%)
 rename lib/librte_eal/{common => }/include/rte_eal_memconfig.h (100%)
 rename lib/librte_eal/{common => }/include/rte_errno.h (100%)
 rename lib/librte_eal/{common => }/include/rte_fbarray.h (100%)
 rename lib/librte_eal/{common => }/include/rte_function_versioning.h (100%)
 rename lib/librte_eal/{common => }/include/rte_hexdump.h (100%)
 rename lib/librte_eal/{common => }/include/rte_hypervisor.h (100%)
 rename lib/librte_eal/{common => }/include/rte_interrupts.h (100%)
 rename lib/librte_eal/{common => }/include/rte_keepalive.h (100%)
 rename lib/librte_eal/{common => }/include/rte_launch.h (100%)
 rename lib/librte_eal/{common => }/include/rte_lcore.h (100%)
 rename lib/librte_eal/{common => }/include/rte_log.h (100%)
 rename lib/librte_eal/{common => }/include/rte_malloc.h (100%)
 rename lib/librte_eal/{common => }/include/rte_memory.h (100%)
 rename lib/librte_eal/{common => }/include/rte_memzone.h (100%)
 rename lib/librte_eal/{common => }/include/rte_option.h (100%)
 rename lib/librte_eal/{common => }/include/rte_pci_dev_feature_defs.h (100%)
 rename lib/librte_eal/{common => }/include/rte_pci_dev_features.h (100%)
 rename lib/librte_eal/{common => }/include/rte_per_lcore.h (100%)
 rename lib/librte_eal/{common => }/include/rte_random.h (100%)
 rename lib/librte_eal/{common => }/include/rte_reciprocal.h (100%)
 rename lib/librte_eal/{common => }/include/rte_service.h (100%)
 rename lib/librte_eal/{common => }/include/rte_service_component.h (100%)
 rename lib/librte_eal/{common => }/include/rte_string_fns.h (100%)
 rename lib/librte_eal/{common => }/include/rte_tailq.h (100%)
 rename lib/librte_eal/{common => }/include/rte_test.h (100%)
 rename lib/librte_eal/{common => }/include/rte_time.h (100%)
 rename lib/librte_eal/{common => }/include/rte_uuid.h (100%)
 rename lib/librte_eal/{common => }/include/rte_version.h (100%)
 rename lib/librte_eal/{common => }/include/rte_vfio.h (100%)
 rename lib/librte_eal/linux/{eal => }/eal.c (100%)
 delete mode 100644 lib/librte_eal/linux/eal/Makefile
 rename lib/librte_eal/linux/{eal => }/eal_alarm.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_cpuflags.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_debug.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_dev.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_hugepage_info.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_interrupts.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_lcore.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_log.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_memalloc.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_memory.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_thread.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_timer.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_vfio.c (100%)
 rename lib/librte_eal/linux/{eal => }/eal_vfio.h (100%)
 rename lib/librte_eal/linux/{eal => }/eal_vfio_mp_sync.c (100%)
 rename lib/librte_eal/linux/{eal => }/include/rte_kni_common.h (100%)
 rename lib/librte_eal/linux/{eal => }/include/rte_os.h (100%)
 rename lib/librte_eal/linux/{eal => }/meson.build (81%)
 rename lib/librte_eal/{common/include/arch/ppc_64 => ppc/include}/meson.build (100%)
 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%)
 create mode 100644 lib/librte_eal/ppc/meson.build
 rename lib/librte_eal/{common/arch/ppc_64 => ppc}/rte_cpuflags.c (100%)
 rename lib/librte_eal/{common/arch/ppc_64 => ppc}/rte_cycles.c (100%)
 rename lib/librte_eal/{common/arch/ppc_64 => ppc}/rte_hypervisor.c (100%)
 rename lib/librte_eal/windows/{eal => }/eal.c (100%)
 delete mode 100644 lib/librte_eal/windows/eal/meson.build
 rename lib/librte_eal/windows/{eal => }/eal_debug.c (100%)
 rename lib/librte_eal/windows/{eal => }/eal_lcore.c (100%)
 rename lib/librte_eal/windows/{eal => }/eal_thread.c (100%)
 rename lib/librte_eal/windows/{eal => }/getopt.c (100%)
 rename lib/librte_eal/windows/{eal => }/include/dirent.h (100%)
 rename lib/librte_eal/windows/{eal => }/include/fnmatch.h (100%)
 rename lib/librte_eal/windows/{eal => }/include/getopt.h (100%)
 rename lib/librte_eal/windows/{eal => }/include/pthread.h (100%)
 rename lib/librte_eal/windows/{eal => }/include/regex.h (100%)
 rename lib/librte_eal/windows/{eal => }/include/rte_os.h (100%)
 rename lib/librte_eal/windows/{eal => }/include/sched.h (100%)
 rename lib/librte_eal/windows/{eal => }/include/sys/queue.h (100%)
 rename lib/librte_eal/windows/{eal => }/include/unistd.h (100%)
 create mode 100644 lib/librte_eal/windows/meson.build
 rename lib/librte_eal/{common/include/arch/x86 => x86/include}/meson.build (100%)
 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%)
 create mode 100644 lib/librte_eal/x86/meson.build
 rename lib/librte_eal/{common/arch => }/x86/rte_cpuflags.c (100%)
 rename lib/librte_eal/{common/arch => }/x86/rte_cpuid.h (100%)
 rename lib/librte_eal/{common/arch => }/x86/rte_cycles.c (100%)
 rename lib/librte_eal/{common/arch => }/x86/rte_hypervisor.c (100%)
 rename lib/librte_eal/{common/arch => }/x86/rte_spinlock.c (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index c3785554fc..6be6c77574 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -126,7 +126,6 @@ F: doc/guides/prog_guide/ext_app_lib_make_help.rst
 Meson build
 M: Bruce Richardson <bruce.richardson@intel.com>
 F: meson.build
-F: lib/librte_eal/freebsd/BSDmakefile.meson
 F: meson_options.txt
 F: config/rte_config.h
 F: buildtools/call-sphinx-build.py
@@ -143,8 +142,8 @@ F: .ci/
 
 ABI versioning
 M: Neil Horman <nhorman@tuxdriver.com>
-F: lib/librte_eal/common/include/rte_compat.h
-F: lib/librte_eal/common/include/rte_function_versioning.h
+F: lib/librte_eal/include/rte_compat.h
+F: lib/librte_eal/include/rte_function_versioning.h
 F: doc/guides/rel_notes/deprecation.rst
 F: devtools/check-abi.sh
 F: devtools/check-abi-version.sh
@@ -169,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/include/
 F: lib/librte_eal/rte_eal_version.map
 F: doc/guides/prog_guide/env_abstraction_layer.rst
 F: app/test/test_alarm.c
@@ -198,15 +196,15 @@ F: app/test/test_version.c
 
 Memory Allocation
 M: Anatoly Burakov <anatoly.burakov@intel.com>
-F: lib/librte_eal/common/include/rte_fbarray.h
-F: lib/librte_eal/common/include/rte_mem*
-F: lib/librte_eal/common/include/rte_malloc.h
+F: lib/librte_eal/include/rte_fbarray.h
+F: lib/librte_eal/include/rte_mem*
+F: lib/librte_eal/include/rte_malloc.h
 F: lib/librte_eal/common/*malloc*
 F: lib/librte_eal/common/eal_common_fbarray.c
 F: lib/librte_eal/common/eal_common_mem*
 F: lib/librte_eal/common/eal_hugepages.h
-F: lib/librte_eal/linux/eal/eal_mem*
-F: lib/librte_eal/freebsd/eal/eal_mem*
+F: lib/librte_eal/linux/eal_mem*
+F: lib/librte_eal/freebsd/eal_mem*
 F: doc/guides/prog_guide/env_abstraction_layer.rst
 F: app/test/test_external_mem.c
 F: app/test/test_func_reentrancy.c
@@ -216,7 +214,7 @@ F: app/test/test_memory.c
 F: app/test/test_memzone.c
 
 Keep alive
-F: lib/librte_eal/common/include/rte_keepalive.h
+F: lib/librte_eal/include/rte_keepalive.h
 F: lib/librte_eal/common/rte_keepalive.c
 F: examples/l2fwd-keepalive/
 F: doc/guides/sample_app_ug/keep_alive.rst
@@ -232,43 +230,42 @@ F: doc/guides/sample_app_ug/multi_process.rst
 
 Service Cores
 M: Harry van Haaren <harry.van.haaren@intel.com>
-F: lib/librte_eal/common/include/rte_service.h
-F: lib/librte_eal/common/include/rte_service_component.h
+F: lib/librte_eal/include/rte_service.h
+F: lib/librte_eal/include/rte_service_component.h
 F: lib/librte_eal/common/rte_service.c
 F: doc/guides/prog_guide/service_cores.rst
 F: app/test/test_service_cores.c
 
 Bitmap
 M: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
-F: lib/librte_eal/common/include/rte_bitmap.h
+F: lib/librte_eal/include/rte_bitmap.h
 F: app/test/test_bitmap.c
 
 MCSlock - EXPERIMENTAL
 M: Phil Yang <phil.yang@arm.com>
-F: lib/librte_eal/common/include/generic/rte_mcslock.h
+F: lib/librte_eal/include/generic/rte_mcslock.h
 F: app/test/test_mcslock.c
 
 Ticketlock
 M: Joyce Kong <joyce.kong@arm.com>
-F: lib/librte_eal/common/include/generic/rte_ticketlock.h
+F: lib/librte_eal/include/generic/rte_ticketlock.h
 F: app/test/test_ticketlock.c
 
 Pseudo-random Number Generation
 M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
-F: lib/librte_eal/common/include/rte_random.h
+F: lib/librte_eal/include/rte_random.h
 F: lib/librte_eal/common/rte_random.c
 F: app/test/test_rand_perf.c
 
 ARM v7
 M: Jan Viktorin <viktorin@rehivetech.com>
 M: Gavin Hu <gavin.hu@arm.com>
-F: lib/librte_eal/common/arch/arm/
-F: lib/librte_eal/common/include/arch/arm/
+F: lib/librte_eal/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,20 +279,17 @@ F: drivers/net/virtio/virtio_rxtx_simple_neon.c
 
 IBM POWER (alpha)
 M: David Christensen <drc@linux.vnet.ibm.com>
-F: lib/librte_eal/common/arch/ppc_64/
-F: lib/librte_eal/common/include/arch/ppc_64/
+F: lib/librte_eal/ppc/
 F: drivers/net/i40e/i40e_rxtx_vec_altivec.c
 F: examples/l3fwd/*altivec.h
 
 Intel x86
 M: Bruce Richardson <bruce.richardson@intel.com>
 M: Konstantin Ananyev <konstantin.ananyev@intel.com>
-F: lib/librte_eal/common/arch/x86/
-F: lib/librte_eal/common/include/arch/x86/
+F: lib/librte_eal/x86/
 
 Linux EAL (with overlaps)
-F: lib/librte_eal/linux/Makefile
-F: lib/librte_eal/linux/eal/
+F: lib/librte_eal/linux/
 F: doc/guides/linux_gsg/
 
 Linux UIO
@@ -305,13 +299,12 @@ F: drivers/bus/pci/linux/*uio*
 
 Linux VFIO
 M: Anatoly Burakov <anatoly.burakov@intel.com>
-F: lib/librte_eal/linux/eal/*vfio*
+F: lib/librte_eal/linux/*vfio*
 F: drivers/bus/pci/linux/*vfio*
 
 FreeBSD EAL (with overlaps)
 M: Bruce Richardson <bruce.richardson@intel.com>
-F: lib/librte_eal/freebsd/Makefile
-F: lib/librte_eal/freebsd/eal/
+F: lib/librte_eal/freebsd/
 F: doc/guides/freebsd_gsg/
 
 FreeBSD contigmem
diff --git a/buildtools/pmdinfogen/meson.build b/buildtools/pmdinfogen/meson.build
index 899ba112cd..7da415b3b7 100644
--- a/buildtools/pmdinfogen/meson.build
+++ b/buildtools/pmdinfogen/meson.build
@@ -6,7 +6,7 @@ if host_machine.system() == 'windows'
 endif
 
 pmdinfogen_inc = [global_inc]
-pmdinfogen_inc += include_directories('../../lib/librte_eal/common/include')
+pmdinfogen_inc += include_directories('../../lib/librte_eal/include')
 pmdinfogen_inc += include_directories('../../lib/librte_pci')
 pmdinfogen = executable('pmdinfogen',
 	'pmdinfogen.c',
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/config/meson.build b/config/meson.build
index abedd76f23..58421342b1 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -234,7 +234,7 @@ if host_machine.cpu_family().startswith('x86')
 elif host_machine.cpu_family().startswith('arm') or host_machine.cpu_family().startswith('aarch')
 	arch_subdir = 'arm'
 elif host_machine.cpu_family().startswith('ppc')
-	arch_subdir = 'ppc_64'
+	arch_subdir = 'ppc'
 endif
 subdir(arch_subdir)
 dpdk_conf.set('RTE_COMPILE_TIME_CPUFLAGS', ','.join(compile_time_cpuflags))
diff --git a/devtools/build-tags.sh b/devtools/build-tags.sh
index dc037f92b3..276fff647b 100755
--- a/devtools/build-tags.sh
+++ b/devtools/build-tags.sh
@@ -79,29 +79,26 @@ bsd_sources()
 
 arm_common()
 {
-	find_sources "lib/librte_eal/common/arch/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/common/arch/x86" '*.[chS]'
-
 	find_sources "examples/performance-thread/common/arch/x86" '*.[chS]'
 	find_sources "$source_dirs" '*_sse*.[chS]'
 	find_sources "$source_dirs" '*_avx*.[chS]'
@@ -111,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/common/arch/ppc_64" '*.[chS]'
-	find_sources "lib/librte_eal/common/include/arch/ppc_64" '*.[chS]'
+	find_sources "lib/librte_eal/ppc" '*.[chS]'
 	find_sources "$source_dirs" '*altivec*.[chS]'
 }
 
diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in
index 1c4392eecc..65e8146bef 100644
--- a/doc/api/doxy-api.conf.in
+++ b/doc/api/doxy-api.conf.in
@@ -17,8 +17,8 @@ INPUT                   = @TOPDIR@/doc/api/doxy-api-index.md \
                           @TOPDIR@/drivers/net/softnic \
                           @TOPDIR@/drivers/raw/dpaa2_cmdif \
                           @TOPDIR@/drivers/raw/dpaa2_qdma \
-                          @TOPDIR@/lib/librte_eal/common/include \
-                          @TOPDIR@/lib/librte_eal/common/include/generic \
+                          @TOPDIR@/lib/librte_eal/include \
+                          @TOPDIR@/lib/librte_eal/include/generic \
                           @TOPDIR@/lib/librte_acl \
                           @TOPDIR@/lib/librte_bbdev \
                           @TOPDIR@/lib/librte_bitratestats \
diff --git a/doc/guides/rel_notes/known_issues.rst b/doc/guides/rel_notes/known_issues.rst
index 68c3d22bea..de0782136d 100644
--- a/doc/guides/rel_notes/known_issues.rst
+++ b/doc/guides/rel_notes/known_issues.rst
@@ -127,7 +127,7 @@ HPET timers do not work on the Osage customer reference platform
    work correctly, provided the BIOS supports HPET.
 
 **Driver/Module**:
-   ``lib/librte_eal/common/include/rte_cycles.h``
+   ``lib/librte_eal/include/rte_cycles.h``
 
 
 Not all variants of supported NIC types have been used in testing
diff --git a/drivers/bus/dpaa/Makefile b/drivers/bus/dpaa/Makefile
index cd1093f744..9e1a31bb75 100644
--- a/drivers/bus/dpaa/Makefile
+++ b/drivers/bus/dpaa/Makefile
@@ -18,7 +18,7 @@ CFLAGS += -I$(RTE_BUS_DPAA)/
 CFLAGS += -I$(RTE_BUS_DPAA)/include
 CFLAGS += -I$(RTE_BUS_DPAA)/base/qbman
 CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
+CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
 
 # versioning export map
 EXPORT_MAP := rte_bus_dpaa_version.map
diff --git a/drivers/common/mlx5/meson.build b/drivers/common/mlx5/meson.build
index 141739fd6f..f671710714 100644
--- a/drivers/common/mlx5/meson.build
+++ b/drivers/common/mlx5/meson.build
@@ -203,7 +203,7 @@ if dlopen_ibverbs
 	dlopen_install_dir = [ eal_pmd_path + '-glue' ]
 	dlopen_includes = [global_inc]
 	dlopen_includes += include_directories(
-		'../../../lib/librte_eal/common/include/generic',
+		'../../../lib/librte_eal/include/generic',
 	)
 	shared_lib = shared_library(
 		dlopen_lib_name,
diff --git a/drivers/crypto/caam_jr/Makefile b/drivers/crypto/caam_jr/Makefile
index 1b1f25a2a2..db17294395 100644
--- a/drivers/crypto/caam_jr/Makefile
+++ b/drivers/crypto/caam_jr/Makefile
@@ -20,7 +20,7 @@ CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include
 CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
 CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib/
 CFLAGS += -I$(RTE_SDK)/drivers/crypto/caam_jr
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
+CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
 
 # versioning export map
 EXPORT_MAP := rte_pmd_caam_jr_version.map
diff --git a/drivers/crypto/dpaa_sec/Makefile b/drivers/crypto/dpaa_sec/Makefile
index fbfd775855..13a5ff20cf 100644
--- a/drivers/crypto/dpaa_sec/Makefile
+++ b/drivers/crypto/dpaa_sec/Makefile
@@ -20,7 +20,7 @@ CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/base/qbman
 CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
 CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa_sec/
 CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax/caamflib/
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
+CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_cryptodev
 
diff --git a/drivers/event/dpaa/Makefile b/drivers/event/dpaa/Makefile
index 2f53efdf9e..15ffc157f8 100644
--- a/drivers/event/dpaa/Makefile
+++ b/drivers/event/dpaa/Makefile
@@ -20,7 +20,7 @@ CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa
 CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/include/
 CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa
 CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
+CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
 
 LDLIBS += -lrte_pmd_dpaa_sec
 CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa_sec
diff --git a/drivers/net/dpaa/Makefile b/drivers/net/dpaa/Makefile
index 8e049b2a0b..f63c9bf540 100644
--- a/drivers/net/dpaa/Makefile
+++ b/drivers/net/dpaa/Makefile
@@ -21,7 +21,7 @@ CFLAGS += -I$(RTE_SDK)/drivers/bus/dpaa/base/qbman
 CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa
 CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
 CFLAGS += -I$(RTE_SDK)/drivers/event/dpaa
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
+CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
 
 EXPORT_MAP := rte_pmd_dpaa_version.map
 
diff --git a/drivers/net/virtio/meson.build b/drivers/net/virtio/meson.build
index 04c7fdf25d..5e7ca855c8 100644
--- a/drivers/net/virtio/meson.build
+++ b/drivers/net/virtio/meson.build
@@ -11,7 +11,7 @@ deps += ['kvargs', 'bus_pci']
 
 if arch_subdir == 'x86'
 	sources += files('virtio_rxtx_simple_sse.c')
-elif arch_subdir == 'ppc_64'
+elif arch_subdir == 'ppc'
 	sources += files('virtio_rxtx_simple_altivec.c')
 elif arch_subdir == 'arm' and host_machine.cpu_family().startswith('aarch64')
 	sources += files('virtio_rxtx_simple_neon.c')
diff --git a/kernel/linux/igb_uio/meson.build b/kernel/linux/igb_uio/meson.build
index fac404f078..80540aecee 100644
--- a/kernel/linux/igb_uio/meson.build
+++ b/kernel/linux/igb_uio/meson.build
@@ -12,7 +12,7 @@ custom_target('igb_uio',
 		'M=' + meson.current_build_dir(),
 		'src=' + meson.current_source_dir(),
 		'EXTRA_CFLAGS=-I' + meson.current_source_dir() +
-			'/../../../lib/librte_eal/common/include',
+			'/../../../lib/librte_eal/include',
 		'modules'],
 	depends: mkfile,
 	install: true,
diff --git a/kernel/linux/kni/meson.build b/kernel/linux/kni/meson.build
index f93e97fa09..d696347f22 100644
--- a/kernel/linux/kni/meson.build
+++ b/kernel/linux/kni/meson.build
@@ -17,8 +17,8 @@ custom_target('rte_kni',
 		'M=' + meson.current_build_dir(),
 		'src=' + meson.current_source_dir(),
 		'MODULE_CFLAGS=-include ' + meson.source_root() + '/config/rte_config.h' +
-		' -I' + meson.source_root() + '/lib/librte_eal/common/include' +
-		' -I' + meson.source_root() + '/lib/librte_eal/linux/eal/include' +
+		' -I' + meson.source_root() + '/lib/librte_eal/include' +
+		' -I' + meson.source_root() + '/lib/librte_eal/linux/include' +
 		' -I' + meson.build_root() +
 		' -I' + meson.current_source_dir(),
 		'modules'],
diff --git a/lib/librte_cfgfile/Makefile b/lib/librte_cfgfile/Makefile
index d3b08420ff..7c10a4e56c 100644
--- a/lib/librte_cfgfile/Makefile
+++ b/lib/librte_cfgfile/Makefile
@@ -10,7 +10,7 @@ LIB = librte_cfgfile.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -I$(SRCDIR)/../librte_eal/common/include
+CFLAGS += -I$(SRCDIR)/../librte_eal/include
 LDLIBS += -lrte_eal
 
 EXPORT_MAP := rte_cfgfile_version.map
diff --git a/lib/librte_eal/Makefile b/lib/librte_eal/Makefile
index 86434f5b31..2fda40d230 100644
--- a/lib/librte_eal/Makefile
+++ b/lib/librte_eal/Makefile
@@ -3,10 +3,10 @@
 
 include $(RTE_SDK)/mk/rte.vars.mk
 
-DIRS-y += common
+DIRS-y += include
 DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += linux
-DEPDIRS-linux := common
+DEPDIRS-linux := include
 DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += freebsd
-DEPDIRS-freebsd := common
+DEPDIRS-freebsd := include
 
 include $(RTE_SDK)/mk/rte.subdir.mk
diff --git a/lib/librte_eal/common/include/arch/arm/meson.build b/lib/librte_eal/arm/include/meson.build
similarity index 100%
rename from lib/librte_eal/common/include/arch/arm/meson.build
rename to lib/librte_eal/arm/include/meson.build
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
new file mode 100644
index 0000000000..883cdd8060
--- /dev/null
+++ b/lib/librte_eal/arm/meson.build
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation.
+
+includes += include_directories('include')
+
+headers += files(
+)
+
+sources += files(
+	'rte_cpuflags.c',
+	'rte_cycles.c',
+	'rte_hypervisor.c',
+)
diff --git a/lib/librte_eal/common/arch/arm/rte_cpuflags.c b/lib/librte_eal/arm/rte_cpuflags.c
similarity index 100%
rename from lib/librte_eal/common/arch/arm/rte_cpuflags.c
rename to lib/librte_eal/arm/rte_cpuflags.c
diff --git a/lib/librte_eal/common/arch/arm/rte_cycles.c b/lib/librte_eal/arm/rte_cycles.c
similarity index 100%
rename from lib/librte_eal/common/arch/arm/rte_cycles.c
rename to lib/librte_eal/arm/rte_cycles.c
diff --git a/lib/librte_eal/common/arch/arm/rte_hypervisor.c b/lib/librte_eal/arm/rte_hypervisor.c
similarity index 100%
rename from lib/librte_eal/common/arch/arm/rte_hypervisor.c
rename to lib/librte_eal/arm/rte_hypervisor.c
diff --git a/lib/librte_eal/common/Makefile b/lib/librte_eal/common/Makefile
deleted file mode 100644
index c2c6d92cd3..0000000000
--- a/lib/librte_eal/common/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-INC := rte_branch_prediction.h rte_common.h rte_compat.h
-INC += rte_function_versioning.h
-INC += rte_debug.h rte_eal.h rte_eal_interrupts.h
-INC += rte_errno.h rte_launch.h rte_lcore.h
-INC += rte_log.h rte_memory.h rte_memzone.h
-INC += rte_per_lcore.h rte_random.h
-INC += rte_tailq.h rte_interrupts.h rte_alarm.h
-INC += rte_string_fns.h rte_version.h
-INC += rte_eal_memconfig.h
-INC += rte_hexdump.h rte_devargs.h rte_bus.h rte_dev.h rte_class.h
-INC += rte_option.h
-INC += rte_pci_dev_feature_defs.h rte_pci_dev_features.h
-INC += rte_malloc.h rte_keepalive.h rte_time.h
-INC += rte_service.h rte_service_component.h
-INC += rte_bitmap.h rte_vfio.h rte_hypervisor.h rte_test.h
-INC += rte_reciprocal.h rte_fbarray.h rte_uuid.h
-
-GENERIC_INC := rte_atomic.h rte_byteorder.h rte_cycles.h rte_prefetch.h
-GENERIC_INC += rte_memcpy.h rte_cpuflags.h
-GENERIC_INC += rte_mcslock.h rte_spinlock.h rte_rwlock.h rte_ticketlock.h
-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)))
-
-SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include := $(addprefix include/,$(INC))
-SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include += \
-	$(addprefix include/arch/$(ARCH_DIR)/,$(ARCH_INC))
-SYMLINK-$(CONFIG_RTE_LIBRTE_EAL)-include/generic := \
-	$(addprefix include/generic/,$(GENERIC_INC))
-
-include $(RTE_SDK)/mk/rte.install.mk
diff --git a/lib/librte_eal/common/arch/arm/meson.build b/lib/librte_eal/common/arch/arm/meson.build
deleted file mode 100644
index 79731e1a2c..0000000000
--- a/lib/librte_eal/common/arch/arm/meson.build
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation.
-
-eal_common_arch_sources = files('rte_cpuflags.c',
-	'rte_cycles.c', 'rte_hypervisor.c')
diff --git a/lib/librte_eal/common/arch/ppc_64/meson.build b/lib/librte_eal/common/arch/ppc_64/meson.build
deleted file mode 100644
index 40b3dc533a..0000000000
--- a/lib/librte_eal/common/arch/ppc_64/meson.build
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
-
-eal_common_arch_sources = files('rte_cpuflags.c',
-	'rte_cycles.c', 'rte_hypervisor.c')
diff --git a/lib/librte_eal/common/arch/x86/meson.build b/lib/librte_eal/common/arch/x86/meson.build
deleted file mode 100644
index 14bf204c6f..0000000000
--- a/lib/librte_eal/common/arch/x86/meson.build
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
-
-eal_common_arch_sources = files('rte_spinlock.c', 'rte_cpuflags.c',
-	'rte_cycles.c', 'rte_hypervisor.c')
diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index 2b97715a20..02d9280cc3 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -1,11 +1,25 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-eal_inc += include_directories('.', 'include',
-		join_paths('include/arch', arch_subdir))
+includes += include_directories('.')
 
-common_objs = []
-common_sources = files(
+if is_windows
+	sources += files(
+		'eal_common_bus.c',
+		'eal_common_class.c',
+		'eal_common_devargs.c',
+		'eal_common_errno.c',
+		'eal_common_launch.c',
+		'eal_common_lcore.c',
+		'eal_common_log.c',
+		'eal_common_options.c',
+		'eal_common_thread.c',
+		'rte_option.c',
+	)
+	subdir_done()
+endif
+
+sources += files(
 	'eal_common_bus.c',
 	'eal_common_cpuflags.c',
 	'eal_common_class.c',
@@ -38,73 +52,5 @@ common_sources = files(
 	'rte_option.c',
 	'rte_random.c',
 	'rte_reciprocal.c',
-	'rte_service.c'
+	'rte_service.c',
 )
-
-# get architecture specific sources and objs
-eal_common_arch_sources = []
-eal_common_arch_objs = []
-subdir(join_paths('arch', arch_subdir))
-common_sources += eal_common_arch_sources
-common_objs += eal_common_arch_objs
-
-common_headers = files(
-	'include/rte_alarm.h',
-	'include/rte_branch_prediction.h',
-	'include/rte_bus.h',
-	'include/rte_bitmap.h',
-	'include/rte_class.h',
-	'include/rte_common.h',
-	'include/rte_compat.h',
-	'include/rte_debug.h',
-	'include/rte_devargs.h',
-	'include/rte_dev.h',
-	'include/rte_eal.h',
-	'include/rte_eal_memconfig.h',
-	'include/rte_eal_interrupts.h',
-	'include/rte_errno.h',
-	'include/rte_fbarray.h',
-	'include/rte_hexdump.h',
-	'include/rte_hypervisor.h',
-	'include/rte_interrupts.h',
-	'include/rte_keepalive.h',
-	'include/rte_launch.h',
-	'include/rte_lcore.h',
-	'include/rte_log.h',
-	'include/rte_malloc.h',
-	'include/rte_memory.h',
-	'include/rte_memzone.h',
-	'include/rte_option.h',
-	'include/rte_pci_dev_feature_defs.h',
-	'include/rte_pci_dev_features.h',
-	'include/rte_per_lcore.h',
-	'include/rte_random.h',
-	'include/rte_reciprocal.h',
-	'include/rte_service.h',
-	'include/rte_service_component.h',
-	'include/rte_string_fns.h',
-	'include/rte_tailq.h',
-	'include/rte_time.h',
-	'include/rte_uuid.h',
-	'include/rte_version.h',
-	'include/rte_vfio.h')
-
-# special case install the generic headers, since they go in a subdir
-generic_headers = files(
-	'include/generic/rte_atomic.h',
-	'include/generic/rte_byteorder.h',
-	'include/generic/rte_cpuflags.h',
-	'include/generic/rte_cycles.h',
-	'include/generic/rte_io.h',
-	'include/generic/rte_mcslock.h',
-	'include/generic/rte_memcpy.h',
-	'include/generic/rte_pause.h',
-	'include/generic/rte_prefetch.h',
-	'include/generic/rte_rwlock.h',
-	'include/generic/rte_spinlock.h',
-	'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/common/rte_service.c b/lib/librte_eal/common/rte_service.c
index b0b78baabd..70d17a5d79 100644
--- a/lib/librte_eal/common/rte_service.c
+++ b/lib/librte_eal/common/rte_service.c
@@ -10,7 +10,7 @@
 
 #include <rte_compat.h>
 #include <rte_service.h>
-#include "include/rte_service_component.h"
+#include <rte_service_component.h>
 
 #include <rte_eal.h>
 #include <rte_lcore.h>
diff --git a/lib/librte_eal/freebsd/BSDmakefile.meson b/lib/librte_eal/freebsd/BSDmakefile.meson
deleted file mode 100644
index 53c4e79c61..0000000000
--- a/lib/librte_eal/freebsd/BSDmakefile.meson
+++ /dev/null
@@ -1,14 +0,0 @@
-#   SPDX-License-Identifier: BSD-3-Clause
-#   Copyright(c) 2017 Intel Corporation.
-
-# makefile for building kernel modules using meson
-# takes parameters from the environment
-
-# source file is passed via KMOD_SRC as full path, we only use final
-# component of it, as VPATH is used to find actual file, so as to
-# have the .o files placed in the build, not source directory
-VPATH = ${KMOD_SRC:H}
-SRCS = ${KMOD_SRC:T} device_if.h bus_if.h pci_if.h
-CFLAGS += $(KMOD_CFLAGS)
-
-.include <bsd.kmod.mk>
diff --git a/lib/librte_eal/freebsd/Makefile b/lib/librte_eal/freebsd/Makefile
index fc42058b6b..265edb06f6 100644
--- a/lib/librte_eal/freebsd/Makefile
+++ b/lib/librte_eal/freebsd/Makefile
@@ -1,8 +1,92 @@
 # SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
+# Copyright(c) 2010-2019 Intel Corporation
 
 include $(RTE_SDK)/mk/rte.vars.mk
 
-DIRS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal
+LIB = librte_eal.a
 
-include $(RTE_SDK)/mk/rte.subdir.mk
+ARCH_DIR ?= $(RTE_ARCH)
+VPATH += $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)
+VPATH += $(RTE_SDK)/lib/librte_eal/common
+
+CFLAGS += -DALLOW_EXPERIMENTAL_API
+CFLAGS += -I$(SRCDIR)/include
+CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
+CFLAGS += $(WERROR_FLAGS) -O3
+
+LDLIBS += -lexecinfo
+LDLIBS += -lpthread
+LDLIBS += -lgcc_s
+LDLIBS += -lrte_kvargs
+
+EXPORT_MAP := ../rte_eal_version.map
+
+# specific to freebsd exec-env
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) := eal.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_cpuflags.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_memory.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_hugepage_info.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_thread.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_debug.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_memalloc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_lcore.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_timer.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_interrupts.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_alarm.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_dev.c
+
+# from common dir
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_lcore.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_timer.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memzone.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_log.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_launch.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_mcfg.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memalloc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memory.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_tailqs.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_errno.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_cpuflags.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_hypervisor.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_string_fns.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_hexdump.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_devargs.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_class.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_bus.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_dev.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_options.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_thread.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_proc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_fbarray.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_uuid.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_malloc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += hotplug_mp.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_elem.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_heap.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_mp.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_keepalive.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_option.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_service.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_random.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_reciprocal.c
+
+# from arch dir
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_cpuflags.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_hypervisor.c
+SRCS-$(CONFIG_RTE_ARCH_X86) += rte_spinlock.c
+SRCS-y += rte_cycles.c
+
+CFLAGS_eal_common_cpuflags.o := $(CPUFLAGS_LIST)
+
+# workaround for a gcc bug with noreturn attribute
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
+ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
+CFLAGS_eal_thread.o += -Wno-return-type
+CFLAGS_eal_hpet.o += -Wno-return-type
+endif
+
+INC := rte_os.h
+
+SYMLINK-$(CONFIG_RTE_EXEC_ENV_FREEBSD)-include := $(addprefix include/,$(INC))
+
+include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eal/freebsd/eal/eal.c b/lib/librte_eal/freebsd/eal.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal.c
rename to lib/librte_eal/freebsd/eal.c
diff --git a/lib/librte_eal/freebsd/eal/Makefile b/lib/librte_eal/freebsd/eal/Makefile
deleted file mode 100644
index b160b57906..0000000000
--- a/lib/librte_eal/freebsd/eal/Makefile
+++ /dev/null
@@ -1,93 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_eal.a
-
-ARCH_DIR ?= $(RTE_ARCH)
-VPATH += $(RTE_SDK)/lib/librte_eal/common
-VPATH += $(RTE_SDK)/lib/librte_eal/common/arch/$(ARCH_DIR)
-
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-CFLAGS += -I$(SRCDIR)/include
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
-CFLAGS += $(WERROR_FLAGS) -O3
-
-LDLIBS += -lexecinfo
-LDLIBS += -lpthread
-LDLIBS += -lgcc_s
-LDLIBS += -lrte_kvargs
-
-EXPORT_MAP := ../../rte_eal_version.map
-
-# specific to freebsd exec-env
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) := eal.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_hugepage_info.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_interrupts.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_alarm.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_dev.c
-
-# from common dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memzone.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_log.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_launch.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_mcfg.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_tailqs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_errno.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_hypervisor.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_string_fns.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_hexdump.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_devargs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_class.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_bus.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_dev.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_options.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_proc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_fbarray.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_common_uuid.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_malloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += hotplug_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_elem.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_heap.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_keepalive.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_option.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_service.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_random.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_reciprocal.c
-
-# from arch dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_hypervisor.c
-SRCS-$(CONFIG_RTE_ARCH_X86) += rte_spinlock.c
-SRCS-y += rte_cycles.c
-
-CFLAGS_eal_common_cpuflags.o := $(CPUFLAGS_LIST)
-
-# workaround for a gcc bug with noreturn attribute
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_eal_thread.o += -Wno-return-type
-CFLAGS_eal_hpet.o += -Wno-return-type
-endif
-
-INC := rte_os.h
-
-SYMLINK-$(CONFIG_RTE_EXEC_ENV_FREEBSD)-include := $(addprefix include/,$(INC))
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eal/freebsd/eal/eal_alarm.c b/lib/librte_eal/freebsd/eal_alarm.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_alarm.c
rename to lib/librte_eal/freebsd/eal_alarm.c
diff --git a/lib/librte_eal/freebsd/eal/eal_alarm_private.h b/lib/librte_eal/freebsd/eal_alarm_private.h
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_alarm_private.h
rename to lib/librte_eal/freebsd/eal_alarm_private.h
diff --git a/lib/librte_eal/freebsd/eal/eal_cpuflags.c b/lib/librte_eal/freebsd/eal_cpuflags.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_cpuflags.c
rename to lib/librte_eal/freebsd/eal_cpuflags.c
diff --git a/lib/librte_eal/freebsd/eal/eal_debug.c b/lib/librte_eal/freebsd/eal_debug.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_debug.c
rename to lib/librte_eal/freebsd/eal_debug.c
diff --git a/lib/librte_eal/freebsd/eal/eal_dev.c b/lib/librte_eal/freebsd/eal_dev.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_dev.c
rename to lib/librte_eal/freebsd/eal_dev.c
diff --git a/lib/librte_eal/freebsd/eal/eal_hugepage_info.c b/lib/librte_eal/freebsd/eal_hugepage_info.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_hugepage_info.c
rename to lib/librte_eal/freebsd/eal_hugepage_info.c
diff --git a/lib/librte_eal/freebsd/eal/eal_interrupts.c b/lib/librte_eal/freebsd/eal_interrupts.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_interrupts.c
rename to lib/librte_eal/freebsd/eal_interrupts.c
diff --git a/lib/librte_eal/freebsd/eal/eal_lcore.c b/lib/librte_eal/freebsd/eal_lcore.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_lcore.c
rename to lib/librte_eal/freebsd/eal_lcore.c
diff --git a/lib/librte_eal/freebsd/eal/eal_memalloc.c b/lib/librte_eal/freebsd/eal_memalloc.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_memalloc.c
rename to lib/librte_eal/freebsd/eal_memalloc.c
diff --git a/lib/librte_eal/freebsd/eal/eal_memory.c b/lib/librte_eal/freebsd/eal_memory.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_memory.c
rename to lib/librte_eal/freebsd/eal_memory.c
diff --git a/lib/librte_eal/freebsd/eal/eal_thread.c b/lib/librte_eal/freebsd/eal_thread.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_thread.c
rename to lib/librte_eal/freebsd/eal_thread.c
diff --git a/lib/librte_eal/freebsd/eal/eal_timer.c b/lib/librte_eal/freebsd/eal_timer.c
similarity index 100%
rename from lib/librte_eal/freebsd/eal/eal_timer.c
rename to lib/librte_eal/freebsd/eal_timer.c
diff --git a/lib/librte_eal/freebsd/eal/include/rte_os.h b/lib/librte_eal/freebsd/include/rte_os.h
similarity index 100%
rename from lib/librte_eal/freebsd/eal/include/rte_os.h
rename to lib/librte_eal/freebsd/include/rte_os.h
diff --git a/lib/librte_eal/freebsd/eal/meson.build b/lib/librte_eal/freebsd/meson.build
similarity index 77%
rename from lib/librte_eal/freebsd/eal/meson.build
rename to lib/librte_eal/freebsd/meson.build
index 1426f7e5f1..b423d970f9 100644
--- a/lib/librte_eal/freebsd/eal/meson.build
+++ b/lib/librte_eal/freebsd/meson.build
@@ -1,11 +1,13 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-env_objs = []
-env_headers = files(
+includes += include_directories('include')
+
+headers += files(
 		'include/rte_os.h',
 )
-env_sources = files('eal_alarm.c',
+
+sources += files('eal_alarm.c',
 		'eal_cpuflags.c',
 		'eal_debug.c',
 		'eal_hugepage_info.c',
diff --git a/lib/librte_eal/common/include/generic/rte_atomic.h b/lib/librte_eal/include/generic/rte_atomic.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_atomic.h
rename to lib/librte_eal/include/generic/rte_atomic.h
diff --git a/lib/librte_eal/common/include/generic/rte_byteorder.h b/lib/librte_eal/include/generic/rte_byteorder.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_byteorder.h
rename to lib/librte_eal/include/generic/rte_byteorder.h
diff --git a/lib/librte_eal/common/include/generic/rte_cpuflags.h b/lib/librte_eal/include/generic/rte_cpuflags.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_cpuflags.h
rename to lib/librte_eal/include/generic/rte_cpuflags.h
diff --git a/lib/librte_eal/common/include/generic/rte_cycles.h b/lib/librte_eal/include/generic/rte_cycles.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_cycles.h
rename to lib/librte_eal/include/generic/rte_cycles.h
diff --git a/lib/librte_eal/common/include/generic/rte_io.h b/lib/librte_eal/include/generic/rte_io.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_io.h
rename to lib/librte_eal/include/generic/rte_io.h
diff --git a/lib/librte_eal/common/include/generic/rte_mcslock.h b/lib/librte_eal/include/generic/rte_mcslock.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_mcslock.h
rename to lib/librte_eal/include/generic/rte_mcslock.h
diff --git a/lib/librte_eal/common/include/generic/rte_memcpy.h b/lib/librte_eal/include/generic/rte_memcpy.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_memcpy.h
rename to lib/librte_eal/include/generic/rte_memcpy.h
diff --git a/lib/librte_eal/common/include/generic/rte_pause.h b/lib/librte_eal/include/generic/rte_pause.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_pause.h
rename to lib/librte_eal/include/generic/rte_pause.h
diff --git a/lib/librte_eal/common/include/generic/rte_prefetch.h b/lib/librte_eal/include/generic/rte_prefetch.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_prefetch.h
rename to lib/librte_eal/include/generic/rte_prefetch.h
diff --git a/lib/librte_eal/common/include/generic/rte_rwlock.h b/lib/librte_eal/include/generic/rte_rwlock.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_rwlock.h
rename to lib/librte_eal/include/generic/rte_rwlock.h
diff --git a/lib/librte_eal/common/include/generic/rte_spinlock.h b/lib/librte_eal/include/generic/rte_spinlock.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_spinlock.h
rename to lib/librte_eal/include/generic/rte_spinlock.h
diff --git a/lib/librte_eal/common/include/generic/rte_ticketlock.h b/lib/librte_eal/include/generic/rte_ticketlock.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_ticketlock.h
rename to lib/librte_eal/include/generic/rte_ticketlock.h
diff --git a/lib/librte_eal/common/include/generic/rte_vect.h b/lib/librte_eal/include/generic/rte_vect.h
similarity index 100%
rename from lib/librte_eal/common/include/generic/rte_vect.h
rename to lib/librte_eal/include/generic/rte_vect.h
diff --git a/lib/librte_eal/common/include/rte_alarm.h b/lib/librte_eal/include/rte_alarm.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_alarm.h
rename to lib/librte_eal/include/rte_alarm.h
diff --git a/lib/librte_eal/common/include/rte_bitmap.h b/lib/librte_eal/include/rte_bitmap.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_bitmap.h
rename to lib/librte_eal/include/rte_bitmap.h
diff --git a/lib/librte_eal/common/include/rte_branch_prediction.h b/lib/librte_eal/include/rte_branch_prediction.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_branch_prediction.h
rename to lib/librte_eal/include/rte_branch_prediction.h
diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/include/rte_bus.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_bus.h
rename to lib/librte_eal/include/rte_bus.h
diff --git a/lib/librte_eal/common/include/rte_class.h b/lib/librte_eal/include/rte_class.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_class.h
rename to lib/librte_eal/include/rte_class.h
diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/include/rte_common.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_common.h
rename to lib/librte_eal/include/rte_common.h
diff --git a/lib/librte_eal/common/include/rte_compat.h b/lib/librte_eal/include/rte_compat.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_compat.h
rename to lib/librte_eal/include/rte_compat.h
diff --git a/lib/librte_eal/common/include/rte_debug.h b/lib/librte_eal/include/rte_debug.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_debug.h
rename to lib/librte_eal/include/rte_debug.h
diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/include/rte_dev.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_dev.h
rename to lib/librte_eal/include/rte_dev.h
diff --git a/lib/librte_eal/common/include/rte_devargs.h b/lib/librte_eal/include/rte_devargs.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_devargs.h
rename to lib/librte_eal/include/rte_devargs.h
diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/include/rte_eal.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_eal.h
rename to lib/librte_eal/include/rte_eal.h
diff --git a/lib/librte_eal/common/include/rte_eal_interrupts.h b/lib/librte_eal/include/rte_eal_interrupts.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_eal_interrupts.h
rename to lib/librte_eal/include/rte_eal_interrupts.h
diff --git a/lib/librte_eal/common/include/rte_eal_memconfig.h b/lib/librte_eal/include/rte_eal_memconfig.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_eal_memconfig.h
rename to lib/librte_eal/include/rte_eal_memconfig.h
diff --git a/lib/librte_eal/common/include/rte_errno.h b/lib/librte_eal/include/rte_errno.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_errno.h
rename to lib/librte_eal/include/rte_errno.h
diff --git a/lib/librte_eal/common/include/rte_fbarray.h b/lib/librte_eal/include/rte_fbarray.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_fbarray.h
rename to lib/librte_eal/include/rte_fbarray.h
diff --git a/lib/librte_eal/common/include/rte_function_versioning.h b/lib/librte_eal/include/rte_function_versioning.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_function_versioning.h
rename to lib/librte_eal/include/rte_function_versioning.h
diff --git a/lib/librte_eal/common/include/rte_hexdump.h b/lib/librte_eal/include/rte_hexdump.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_hexdump.h
rename to lib/librte_eal/include/rte_hexdump.h
diff --git a/lib/librte_eal/common/include/rte_hypervisor.h b/lib/librte_eal/include/rte_hypervisor.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_hypervisor.h
rename to lib/librte_eal/include/rte_hypervisor.h
diff --git a/lib/librte_eal/common/include/rte_interrupts.h b/lib/librte_eal/include/rte_interrupts.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_interrupts.h
rename to lib/librte_eal/include/rte_interrupts.h
diff --git a/lib/librte_eal/common/include/rte_keepalive.h b/lib/librte_eal/include/rte_keepalive.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_keepalive.h
rename to lib/librte_eal/include/rte_keepalive.h
diff --git a/lib/librte_eal/common/include/rte_launch.h b/lib/librte_eal/include/rte_launch.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_launch.h
rename to lib/librte_eal/include/rte_launch.h
diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/include/rte_lcore.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_lcore.h
rename to lib/librte_eal/include/rte_lcore.h
diff --git a/lib/librte_eal/common/include/rte_log.h b/lib/librte_eal/include/rte_log.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_log.h
rename to lib/librte_eal/include/rte_log.h
diff --git a/lib/librte_eal/common/include/rte_malloc.h b/lib/librte_eal/include/rte_malloc.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_malloc.h
rename to lib/librte_eal/include/rte_malloc.h
diff --git a/lib/librte_eal/common/include/rte_memory.h b/lib/librte_eal/include/rte_memory.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_memory.h
rename to lib/librte_eal/include/rte_memory.h
diff --git a/lib/librte_eal/common/include/rte_memzone.h b/lib/librte_eal/include/rte_memzone.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_memzone.h
rename to lib/librte_eal/include/rte_memzone.h
diff --git a/lib/librte_eal/common/include/rte_option.h b/lib/librte_eal/include/rte_option.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_option.h
rename to lib/librte_eal/include/rte_option.h
diff --git a/lib/librte_eal/common/include/rte_pci_dev_feature_defs.h b/lib/librte_eal/include/rte_pci_dev_feature_defs.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_pci_dev_feature_defs.h
rename to lib/librte_eal/include/rte_pci_dev_feature_defs.h
diff --git a/lib/librte_eal/common/include/rte_pci_dev_features.h b/lib/librte_eal/include/rte_pci_dev_features.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_pci_dev_features.h
rename to lib/librte_eal/include/rte_pci_dev_features.h
diff --git a/lib/librte_eal/common/include/rte_per_lcore.h b/lib/librte_eal/include/rte_per_lcore.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_per_lcore.h
rename to lib/librte_eal/include/rte_per_lcore.h
diff --git a/lib/librte_eal/common/include/rte_random.h b/lib/librte_eal/include/rte_random.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_random.h
rename to lib/librte_eal/include/rte_random.h
diff --git a/lib/librte_eal/common/include/rte_reciprocal.h b/lib/librte_eal/include/rte_reciprocal.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_reciprocal.h
rename to lib/librte_eal/include/rte_reciprocal.h
diff --git a/lib/librte_eal/common/include/rte_service.h b/lib/librte_eal/include/rte_service.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_service.h
rename to lib/librte_eal/include/rte_service.h
diff --git a/lib/librte_eal/common/include/rte_service_component.h b/lib/librte_eal/include/rte_service_component.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_service_component.h
rename to lib/librte_eal/include/rte_service_component.h
diff --git a/lib/librte_eal/common/include/rte_string_fns.h b/lib/librte_eal/include/rte_string_fns.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_string_fns.h
rename to lib/librte_eal/include/rte_string_fns.h
diff --git a/lib/librte_eal/common/include/rte_tailq.h b/lib/librte_eal/include/rte_tailq.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_tailq.h
rename to lib/librte_eal/include/rte_tailq.h
diff --git a/lib/librte_eal/common/include/rte_test.h b/lib/librte_eal/include/rte_test.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_test.h
rename to lib/librte_eal/include/rte_test.h
diff --git a/lib/librte_eal/common/include/rte_time.h b/lib/librte_eal/include/rte_time.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_time.h
rename to lib/librte_eal/include/rte_time.h
diff --git a/lib/librte_eal/common/include/rte_uuid.h b/lib/librte_eal/include/rte_uuid.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_uuid.h
rename to lib/librte_eal/include/rte_uuid.h
diff --git a/lib/librte_eal/common/include/rte_version.h b/lib/librte_eal/include/rte_version.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_version.h
rename to lib/librte_eal/include/rte_version.h
diff --git a/lib/librte_eal/common/include/rte_vfio.h b/lib/librte_eal/include/rte_vfio.h
similarity index 100%
rename from lib/librte_eal/common/include/rte_vfio.h
rename to lib/librte_eal/include/rte_vfio.h
diff --git a/lib/librte_eal/linux/Makefile b/lib/librte_eal/linux/Makefile
index 4c68bd61b8..0ed4dc3e10 100644
--- a/lib/librte_eal/linux/Makefile
+++ b/lib/librte_eal/linux/Makefile
@@ -1,11 +1,99 @@
 # SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
+# Copyright(c) 2010-2019 Intel Corporation
 
 include $(RTE_SDK)/mk/rte.vars.mk
 
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal
-DEPDIRS-kni := eal
+LIB = librte_eal.a
+
+ARCH_DIR ?= $(RTE_ARCH)
+VPATH += $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)
+VPATH += $(RTE_SDK)/lib/librte_eal/common
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
+CFLAGS += -I$(SRCDIR)/include
+CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
+CFLAGS += $(WERROR_FLAGS) -O3
 
-include $(RTE_SDK)/mk/rte.subdir.mk
+LDLIBS += -ldl
+LDLIBS += -lpthread
+LDLIBS += -lgcc_s
+LDLIBS += -lrt
+LDLIBS += -lrte_kvargs
+ifeq ($(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),y)
+LDLIBS += -lnuma
+endif
+
+EXPORT_MAP := ../rte_eal_version.map
+
+# specific to linux exec-env
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) := eal.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_cpuflags.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_hugepage_info.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_memory.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_thread.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_log.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_vfio.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_vfio_mp_sync.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_memalloc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_debug.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_lcore.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_timer.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_interrupts.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_alarm.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_dev.c
+
+# from common dir
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_lcore.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_timer.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memzone.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_log.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_launch.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_mcfg.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memalloc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memory.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_tailqs.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_errno.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_cpuflags.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_hypervisor.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_string_fns.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_hexdump.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_devargs.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_class.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_bus.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_dev.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_options.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_thread.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_proc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_fbarray.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_uuid.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_malloc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += hotplug_mp.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_elem.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_heap.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_mp.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_keepalive.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_option.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_service.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_random.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_reciprocal.c
+
+# from arch dir
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_cpuflags.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_hypervisor.c
+SRCS-$(CONFIG_RTE_ARCH_X86) += rte_spinlock.c
+SRCS-y += rte_cycles.c
+
+CFLAGS_eal_common_cpuflags.o := $(CPUFLAGS_LIST)
+
+# workaround for a gcc bug with noreturn attribute
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
+ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
+CFLAGS_eal_thread.o += -Wno-return-type
+endif
+
+INC := rte_kni_common.h
+INC += rte_os.h
+
+SYMLINK-$(CONFIG_RTE_EXEC_ENV_LINUX)-include := $(addprefix include/,$(INC))
+
+include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eal/linux/eal/eal.c b/lib/librte_eal/linux/eal.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal.c
rename to lib/librte_eal/linux/eal.c
diff --git a/lib/librte_eal/linux/eal/Makefile b/lib/librte_eal/linux/eal/Makefile
deleted file mode 100644
index e70cf104a4..0000000000
--- a/lib/librte_eal/linux/eal/Makefile
+++ /dev/null
@@ -1,101 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2019 Intel Corporation
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-LIB = librte_eal.a
-
-ARCH_DIR ?= $(RTE_ARCH)
-
-EXPORT_MAP := ../../rte_eal_version.map
-VPATH += $(RTE_SDK)/lib/librte_eal/common/arch/$(ARCH_DIR)
-
-VPATH += $(RTE_SDK)/lib/librte_eal/common
-
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-CFLAGS += -I$(SRCDIR)/include
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
-CFLAGS += $(WERROR_FLAGS) -O3
-
-LDLIBS += -ldl
-LDLIBS += -lpthread
-LDLIBS += -lgcc_s
-LDLIBS += -lrt
-LDLIBS += -lrte_kvargs
-ifeq ($(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),y)
-LDLIBS += -lnuma
-endif
-
-# specific to linux exec-env
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) := eal.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_hugepage_info.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_log.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_vfio.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_vfio_mp_sync.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_debug.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_interrupts.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_alarm.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_dev.c
-
-# from common dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_lcore.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_timer.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memzone.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_log.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_launch.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_mcfg.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memalloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_memory.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_tailqs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_errno.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_hypervisor.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_string_fns.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_hexdump.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_devargs.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_class.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_bus.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_dev.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_options.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_thread.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_proc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_fbarray.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_common_uuid.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_malloc.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += hotplug_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_elem.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_heap.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_mp.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_keepalive.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_option.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_service.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_random.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_reciprocal.c
-
-# from arch dir
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_cpuflags.c
-SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_hypervisor.c
-SRCS-$(CONFIG_RTE_ARCH_X86) += rte_spinlock.c
-SRCS-y += rte_cycles.c
-
-CFLAGS_eal_common_cpuflags.o := $(CPUFLAGS_LIST)
-
-# workaround for a gcc bug with noreturn attribute
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
-ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
-CFLAGS_eal_thread.o += -Wno-return-type
-endif
-
-INC := rte_kni_common.h
-INC += rte_os.h
-
-SYMLINK-$(CONFIG_RTE_EXEC_ENV_LINUX)-include := $(addprefix include/,$(INC))
-
-include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/lib/librte_eal/linux/eal/eal_alarm.c b/lib/librte_eal/linux/eal_alarm.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_alarm.c
rename to lib/librte_eal/linux/eal_alarm.c
diff --git a/lib/librte_eal/linux/eal/eal_cpuflags.c b/lib/librte_eal/linux/eal_cpuflags.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_cpuflags.c
rename to lib/librte_eal/linux/eal_cpuflags.c
diff --git a/lib/librte_eal/linux/eal/eal_debug.c b/lib/librte_eal/linux/eal_debug.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_debug.c
rename to lib/librte_eal/linux/eal_debug.c
diff --git a/lib/librte_eal/linux/eal/eal_dev.c b/lib/librte_eal/linux/eal_dev.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_dev.c
rename to lib/librte_eal/linux/eal_dev.c
diff --git a/lib/librte_eal/linux/eal/eal_hugepage_info.c b/lib/librte_eal/linux/eal_hugepage_info.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_hugepage_info.c
rename to lib/librte_eal/linux/eal_hugepage_info.c
diff --git a/lib/librte_eal/linux/eal/eal_interrupts.c b/lib/librte_eal/linux/eal_interrupts.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_interrupts.c
rename to lib/librte_eal/linux/eal_interrupts.c
diff --git a/lib/librte_eal/linux/eal/eal_lcore.c b/lib/librte_eal/linux/eal_lcore.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_lcore.c
rename to lib/librte_eal/linux/eal_lcore.c
diff --git a/lib/librte_eal/linux/eal/eal_log.c b/lib/librte_eal/linux/eal_log.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_log.c
rename to lib/librte_eal/linux/eal_log.c
diff --git a/lib/librte_eal/linux/eal/eal_memalloc.c b/lib/librte_eal/linux/eal_memalloc.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_memalloc.c
rename to lib/librte_eal/linux/eal_memalloc.c
diff --git a/lib/librte_eal/linux/eal/eal_memory.c b/lib/librte_eal/linux/eal_memory.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_memory.c
rename to lib/librte_eal/linux/eal_memory.c
diff --git a/lib/librte_eal/linux/eal/eal_thread.c b/lib/librte_eal/linux/eal_thread.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_thread.c
rename to lib/librte_eal/linux/eal_thread.c
diff --git a/lib/librte_eal/linux/eal/eal_timer.c b/lib/librte_eal/linux/eal_timer.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_timer.c
rename to lib/librte_eal/linux/eal_timer.c
diff --git a/lib/librte_eal/linux/eal/eal_vfio.c b/lib/librte_eal/linux/eal_vfio.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_vfio.c
rename to lib/librte_eal/linux/eal_vfio.c
diff --git a/lib/librte_eal/linux/eal/eal_vfio.h b/lib/librte_eal/linux/eal_vfio.h
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_vfio.h
rename to lib/librte_eal/linux/eal_vfio.h
diff --git a/lib/librte_eal/linux/eal/eal_vfio_mp_sync.c b/lib/librte_eal/linux/eal_vfio_mp_sync.c
similarity index 100%
rename from lib/librte_eal/linux/eal/eal_vfio_mp_sync.c
rename to lib/librte_eal/linux/eal_vfio_mp_sync.c
diff --git a/lib/librte_eal/linux/eal/include/rte_kni_common.h b/lib/librte_eal/linux/include/rte_kni_common.h
similarity index 100%
rename from lib/librte_eal/linux/eal/include/rte_kni_common.h
rename to lib/librte_eal/linux/include/rte_kni_common.h
diff --git a/lib/librte_eal/linux/eal/include/rte_os.h b/lib/librte_eal/linux/include/rte_os.h
similarity index 100%
rename from lib/librte_eal/linux/eal/include/rte_os.h
rename to lib/librte_eal/linux/include/rte_os.h
diff --git a/lib/librte_eal/linux/eal/meson.build b/lib/librte_eal/linux/meson.build
similarity index 81%
rename from lib/librte_eal/linux/eal/meson.build
rename to lib/librte_eal/linux/meson.build
index b02b0695f5..209dd7c642 100644
--- a/lib/librte_eal/linux/eal/meson.build
+++ b/lib/librte_eal/linux/meson.build
@@ -1,14 +1,15 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-eal_inc += include_directories('include')
+includes += include_directories('include')
 
-env_objs = []
-env_headers = files(
+headers += files(
 		'include/rte_kni_common.h',
 		'include/rte_os.h',
 )
-env_sources = files('eal_alarm.c',
+
+sources += files(
+		'eal_alarm.c',
 		'eal_cpuflags.c',
 		'eal_debug.c',
 		'eal_hugepage_info.c',
diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build
index 1730d603fc..516ef09a49 100644
--- a/lib/librte_eal/meson.build
+++ b/lib/librte_eal/meson.build
@@ -1,16 +1,16 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017-2019 Intel Corporation
 
-# Custom EAL processing. EAL is complicated enough that it can't just
-# have a straight list of headers and source files.
-# Initially pull in common settings
-eal_inc = [global_inc]
-subdir('common') # defines common_sources, common_objs, etc.
+includes += global_inc
+
+subdir('include')
+
+subdir('common')
 
-# Now do OS/exec-env specific settings, including building kernel modules
-# The <exec-env>/eal/meson.build file should define env_sources, etc.
 dpdk_conf.set('RTE_EXEC_ENV_' + exec_env.to_upper(), 1)
-subdir(exec_env + '/eal')
+subdir(exec_env)
+
+subdir(arch_subdir)
 
 allow_experimental_apis = true
 deps += 'kvargs'
@@ -23,7 +23,3 @@ endif
 if cc.has_header('getopt.h')
 	cflags += ['-DHAVE_GETOPT_H', '-DHAVE_GETOPT', '-DHAVE_GETOPT_LONG']
 endif
-sources = common_sources + env_sources
-objs = common_objs + env_objs
-headers = common_headers + env_headers
-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 100%
rename from lib/librte_eal/common/include/arch/ppc_64/meson.build
rename to lib/librte_eal/ppc/include/meson.build
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
new file mode 100644
index 0000000000..0f72bd3a36
--- /dev/null
+++ b/lib/librte_eal/ppc/meson.build
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+
+includes += include_directories('include')
+
+headers += files(
+)
+
+sources += files(
+	'rte_cpuflags.c',
+	'rte_cycles.c',
+	'rte_hypervisor.c',
+)
diff --git a/lib/librte_eal/common/arch/ppc_64/rte_cpuflags.c b/lib/librte_eal/ppc/rte_cpuflags.c
similarity index 100%
rename from lib/librte_eal/common/arch/ppc_64/rte_cpuflags.c
rename to lib/librte_eal/ppc/rte_cpuflags.c
diff --git a/lib/librte_eal/common/arch/ppc_64/rte_cycles.c b/lib/librte_eal/ppc/rte_cycles.c
similarity index 100%
rename from lib/librte_eal/common/arch/ppc_64/rte_cycles.c
rename to lib/librte_eal/ppc/rte_cycles.c
diff --git a/lib/librte_eal/common/arch/ppc_64/rte_hypervisor.c b/lib/librte_eal/ppc/rte_hypervisor.c
similarity index 100%
rename from lib/librte_eal/common/arch/ppc_64/rte_hypervisor.c
rename to lib/librte_eal/ppc/rte_hypervisor.c
diff --git a/lib/librte_eal/windows/eal/eal.c b/lib/librte_eal/windows/eal.c
similarity index 100%
rename from lib/librte_eal/windows/eal/eal.c
rename to lib/librte_eal/windows/eal.c
diff --git a/lib/librte_eal/windows/eal/meson.build b/lib/librte_eal/windows/eal/meson.build
deleted file mode 100644
index 2a062c365e..0000000000
--- a/lib/librte_eal/windows/eal/meson.build
+++ /dev/null
@@ -1,27 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2019 Intel Corporation
-
-eal_inc += include_directories('include')
-
-env_objs = []
-env_headers = files(
-	'include/rte_os.h',
-)
-common_sources = files(
-	'../../common/eal_common_bus.c',
-	'../../common/eal_common_class.c',
-	'../../common/eal_common_devargs.c',
-	'../../common/eal_common_errno.c',
-	'../../common/eal_common_launch.c',
-	'../../common/eal_common_lcore.c',
-	'../../common/eal_common_log.c',
-	'../../common/eal_common_options.c',
-	'../../common/eal_common_thread.c',
-	'../../common/rte_option.c',
-)
-env_sources = files('eal.c',
-	'eal_debug.c',
-	'eal_lcore.c',
-	'eal_thread.c',
-	'getopt.c',
-)
diff --git a/lib/librte_eal/windows/eal/eal_debug.c b/lib/librte_eal/windows/eal_debug.c
similarity index 100%
rename from lib/librte_eal/windows/eal/eal_debug.c
rename to lib/librte_eal/windows/eal_debug.c
diff --git a/lib/librte_eal/windows/eal/eal_lcore.c b/lib/librte_eal/windows/eal_lcore.c
similarity index 100%
rename from lib/librte_eal/windows/eal/eal_lcore.c
rename to lib/librte_eal/windows/eal_lcore.c
diff --git a/lib/librte_eal/windows/eal/eal_thread.c b/lib/librte_eal/windows/eal_thread.c
similarity index 100%
rename from lib/librte_eal/windows/eal/eal_thread.c
rename to lib/librte_eal/windows/eal_thread.c
diff --git a/lib/librte_eal/windows/eal/getopt.c b/lib/librte_eal/windows/getopt.c
similarity index 100%
rename from lib/librte_eal/windows/eal/getopt.c
rename to lib/librte_eal/windows/getopt.c
diff --git a/lib/librte_eal/windows/eal/include/dirent.h b/lib/librte_eal/windows/include/dirent.h
similarity index 100%
rename from lib/librte_eal/windows/eal/include/dirent.h
rename to lib/librte_eal/windows/include/dirent.h
diff --git a/lib/librte_eal/windows/eal/include/fnmatch.h b/lib/librte_eal/windows/include/fnmatch.h
similarity index 100%
rename from lib/librte_eal/windows/eal/include/fnmatch.h
rename to lib/librte_eal/windows/include/fnmatch.h
diff --git a/lib/librte_eal/windows/eal/include/getopt.h b/lib/librte_eal/windows/include/getopt.h
similarity index 100%
rename from lib/librte_eal/windows/eal/include/getopt.h
rename to lib/librte_eal/windows/include/getopt.h
diff --git a/lib/librte_eal/windows/eal/include/pthread.h b/lib/librte_eal/windows/include/pthread.h
similarity index 100%
rename from lib/librte_eal/windows/eal/include/pthread.h
rename to lib/librte_eal/windows/include/pthread.h
diff --git a/lib/librte_eal/windows/eal/include/regex.h b/lib/librte_eal/windows/include/regex.h
similarity index 100%
rename from lib/librte_eal/windows/eal/include/regex.h
rename to lib/librte_eal/windows/include/regex.h
diff --git a/lib/librte_eal/windows/eal/include/rte_os.h b/lib/librte_eal/windows/include/rte_os.h
similarity index 100%
rename from lib/librte_eal/windows/eal/include/rte_os.h
rename to lib/librte_eal/windows/include/rte_os.h
diff --git a/lib/librte_eal/windows/eal/include/sched.h b/lib/librte_eal/windows/include/sched.h
similarity index 100%
rename from lib/librte_eal/windows/eal/include/sched.h
rename to lib/librte_eal/windows/include/sched.h
diff --git a/lib/librte_eal/windows/eal/include/sys/queue.h b/lib/librte_eal/windows/include/sys/queue.h
similarity index 100%
rename from lib/librte_eal/windows/eal/include/sys/queue.h
rename to lib/librte_eal/windows/include/sys/queue.h
diff --git a/lib/librte_eal/windows/eal/include/unistd.h b/lib/librte_eal/windows/include/unistd.h
similarity index 100%
rename from lib/librte_eal/windows/eal/include/unistd.h
rename to lib/librte_eal/windows/include/unistd.h
diff --git a/lib/librte_eal/windows/meson.build b/lib/librte_eal/windows/meson.build
new file mode 100644
index 0000000000..5fcaf4785a
--- /dev/null
+++ b/lib/librte_eal/windows/meson.build
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+includes += include_directories('include')
+
+headers += files(
+	'include/rte_os.h',
+)
+
+sources += files(
+	'eal.c',
+	'eal_debug.c',
+	'eal_lcore.c',
+	'eal_thread.c',
+	'getopt.c',
+)
diff --git a/lib/librte_eal/common/include/arch/x86/meson.build b/lib/librte_eal/x86/include/meson.build
similarity index 100%
rename from lib/librte_eal/common/include/arch/x86/meson.build
rename to lib/librte_eal/x86/include/meson.build
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
new file mode 100644
index 0000000000..305d16c01b
--- /dev/null
+++ b/lib/librte_eal/x86/meson.build
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+includes += include_directories('include')
+
+headers += files(
+)
+
+sources += files(
+	'rte_cpuflags.c',
+	'rte_cycles.c',
+	'rte_hypervisor.c',
+	'rte_spinlock.c',
+)
diff --git a/lib/librte_eal/common/arch/x86/rte_cpuflags.c b/lib/librte_eal/x86/rte_cpuflags.c
similarity index 100%
rename from lib/librte_eal/common/arch/x86/rte_cpuflags.c
rename to lib/librte_eal/x86/rte_cpuflags.c
diff --git a/lib/librte_eal/common/arch/x86/rte_cpuid.h b/lib/librte_eal/x86/rte_cpuid.h
similarity index 100%
rename from lib/librte_eal/common/arch/x86/rte_cpuid.h
rename to lib/librte_eal/x86/rte_cpuid.h
diff --git a/lib/librte_eal/common/arch/x86/rte_cycles.c b/lib/librte_eal/x86/rte_cycles.c
similarity index 100%
rename from lib/librte_eal/common/arch/x86/rte_cycles.c
rename to lib/librte_eal/x86/rte_cycles.c
diff --git a/lib/librte_eal/common/arch/x86/rte_hypervisor.c b/lib/librte_eal/x86/rte_hypervisor.c
similarity index 100%
rename from lib/librte_eal/common/arch/x86/rte_hypervisor.c
rename to lib/librte_eal/x86/rte_hypervisor.c
diff --git a/lib/librte_eal/common/arch/x86/rte_spinlock.c b/lib/librte_eal/x86/rte_spinlock.c
similarity index 100%
rename from lib/librte_eal/common/arch/x86/rte_spinlock.c
rename to lib/librte_eal/x86/rte_spinlock.c
diff --git a/lib/librte_kvargs/Makefile b/lib/librte_kvargs/Makefile
index 419be8bd7c..24b1c3c5b9 100644
--- a/lib/librte_kvargs/Makefile
+++ b/lib/librte_kvargs/Makefile
@@ -7,7 +7,7 @@ include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_kvargs.a
 
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/include
+CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
 
 EXPORT_MAP := rte_kvargs_version.map
 
diff --git a/license/exceptions.txt b/license/exceptions.txt
index 1e21a863f1..c984764a02 100644
--- a/license/exceptions.txt
+++ b/license/exceptions.txt
@@ -12,9 +12,9 @@ Note that following licenses are not exceptions:-
 ---------------------------------------------------------------------------------------------------
 SPDX Identifier     TB Approval Date  GB Approval Date  File name
 ---------------------------------------------------------------------------------------------------
-1.MIT               10/23/2019        02/10/2020        lib/librte_eal/windows/eal/include/dirent.h
-2.BSD-2-Clause      10/23/2019        12/18/2019        lib/librte_eal/windows/eal/include/getopt.h
+1.MIT               10/23/2019        02/10/2020        lib/librte_eal/windows/include/dirent.h
+2.BSD-2-Clause      10/23/2019        12/18/2019        lib/librte_eal/windows/include/getopt.h
 3.ISC AND
-  BSD-2-Clause      10/23/2019        12/18/2019        lib/librte_eal/windows/eal/getopt.c
+  BSD-2-Clause      10/23/2019        12/18/2019        lib/librte_eal/windows/getopt.c
 4.GPL-2.0           09/25/2019        12/18/2019        buildtools/pmdinfogen/pmdinfogen.*
 ---------------------------------------------------------------------------------------------------
diff --git a/meson.build b/meson.build
index b7ae9c8d9a..d36580438e 100644
--- a/meson.build
+++ b/meson.build
@@ -28,8 +28,8 @@ abi_version_file = files('ABI_VERSION')
 # able to be included in any file. We also store a global array of include dirs
 # for passing to pmdinfogen scripts
 global_inc = include_directories('.', 'config',
-	'lib/librte_eal/common/include',
-	'lib/librte_eal/@0@/eal/include'.format(host_machine.system()),
+	'lib/librte_eal/include',
+	'lib/librte_eal/@0@/include'.format(host_machine.system()),
 )
 subdir('config')
 
diff --git a/mk/exec-env/freebsd/rte.vars.mk b/mk/exec-env/freebsd/rte.vars.mk
index 3608530d3f..630eb55f73 100644
--- a/mk/exec-env/freebsd/rte.vars.mk
+++ b/mk/exec-env/freebsd/rte.vars.mk
@@ -18,7 +18,7 @@ EXECENV_CFLAGS  = -pthread
 endif
 
 # include in every library to build
-EXECENV_CFLAGS += -I$(RTE_SDK)/lib/librte_eal/freebsd/eal/include
+EXECENV_CFLAGS += -I$(RTE_SDK)/lib/librte_eal/freebsd/include
 
 EXECENV_LDFLAGS =
 EXECENV_LDLIBS  = -lexecinfo
diff --git a/mk/exec-env/linux/rte.vars.mk b/mk/exec-env/linux/rte.vars.mk
index bea3f76577..41ef4195b0 100644
--- a/mk/exec-env/linux/rte.vars.mk
+++ b/mk/exec-env/linux/rte.vars.mk
@@ -18,7 +18,7 @@ EXECENV_CFLAGS  = -pthread
 endif
 
 # include in every library to build
-EXECENV_CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linux/eal/include
+EXECENV_CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linux/include
 
 EXECENV_LDLIBS  =
 EXECENV_ASFLAGS =
-- 
2.25.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2020-03-31 11:13 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-20  0:12 [dpdk-dev] [PATCH] eal: reorganize directories layout Thomas Monjalon
2020-03-20  9:34 ` Bruce Richardson
2020-03-20 11:46   ` Thomas Monjalon
2020-03-27  1:15 ` [dpdk-dev] [PATCH v2 0/8] " Thomas Monjalon
2020-03-27  1:15   ` [dpdk-dev] [PATCH v2 1/8] eal: remove useless makefiles Thomas Monjalon
2020-03-27 12:05     ` Bruce Richardson
2020-03-27  1:15   ` [dpdk-dev] [PATCH v2 2/8] build: rename ppc sub-directories Thomas Monjalon
2020-03-27 17:49     ` David Christensen
2020-03-27  1:15   ` [dpdk-dev] [PATCH v2 3/8] eal: move arch-specific C files Thomas Monjalon
2020-03-27 17:46     ` David Christensen
2020-03-27  1:15   ` [dpdk-dev] [PATCH v2 4/8] eal: move arch-specific header files Thomas Monjalon
2020-03-27  2:39     ` Gavin Hu
2020-03-27 17:47     ` David Christensen
2020-03-27  1:15   ` [dpdk-dev] [PATCH v2 5/8] eal: simplify meson build of common directory Thomas Monjalon
2020-03-27  1:15   ` [dpdk-dev] [PATCH v2 6/8] eal: move common header files Thomas Monjalon
2020-03-30 13:25     ` David Marchand
2020-03-27  1:15   ` [dpdk-dev] [PATCH v2 7/8] eal: move OS-specific sub-directories Thomas Monjalon
2020-03-27  1:15   ` [dpdk-dev] [PATCH v2 8/8] eal: clean make and meson files Thomas Monjalon
2020-03-27 14:47   ` [dpdk-dev] [PATCH v2 0/8] eal: reorganize directories layout Stephen Hemminger
2020-03-27 15:12     ` Thomas Monjalon
2020-03-30 14:22   ` David Marchand
2020-03-31 11:13     ` David Marchand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).