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

[Minios-devel] [UNIKRAFT PATCHv2 00/13] Prepare build scripts to support ARM64



Currently, Unikraft only supports arm32 and x86_64. The folder layout
is not very convenient to add arm64 or x86_32 support to it. In this
case we will modify the folder layout to support common code for the
architectures of the same CPU families. We also would modify the build
scripts which corresponding to this change at the same time.

---
v1 -> v2:
 1. Usecheckpatch to check the code-style.
 2. Remove a blank EOF warning of patch#3.
 3. Select closer subject prefix for each patch.
 4. Fix typos in serval patches' commit messages.
 5. Update serval patches descriptions.
 6. Address Florian's comment in patch#1.
 7. Simplify the patch#2. Only introduces UK_FAMILY.
 8. Move reorganization work from patch#2 to patch#3.
 9. Add a common GCC version test function in Makefile.rules
10. Add a common GCC version warning function in Makefile.rules
11. Add a function to check condition and set GCC flags
12. Place individual arch's Config/Makefile/Compiler files to
    its subfolder.
13. Rename MARCH_* of x86_64 to MARCH_X86_64_* to avoid conflict
14. Rename MARCH_* of arm32 to MARCH_ARM32_* to avoid conflict
15. Use common function to check and set processor optimization
    GCC flags for arm32/arm64
16. Add more arm32 CPU models to processor optimization list
17. Use generic-armv7-a as arm32's default processor

Wei Chen (13):
  build: Adjust sed script to avoid treating arm64 as arm
  build: Introduce a new variable UK_FAMILY
  arch: Reorganize arch folder to reflect the CPU family schema
  include: Reorganize base include folder to reflect CPU family schema
  build: Add a makefile function to check GCC version
  build: Add a makefile function to warn user when GCC is too old
  build: Add a makefile function to check and set flags for valid gcc
  arch: Add arm64 architecture config to menuconfig
  arch/x86: Rename MARCH_* of x86_64 to MARCH_X86_64_*
  arch/arm: Rename MARCH_* of arm32 to MARCH_ARM32_*
  arch/arm64: Add processor optimization GCC flags for arm64
  arch/arm: Check gcc version and set processor flags for arm32
  arch/arm: Add more CPU models to processor optimization list

 Config.uk                             |   2 +-
 Makefile                              |  34 ++-
 arch/Arch.uk                          |   2 +
 arch/Config.uk                        |  10 +-
 arch/arm/Compiler.uk                  |   7 +-
 arch/arm/Config.uk                    |  18 --
 arch/arm/Makefile.uk                  |  23 +-
 arch/arm/arm/Compiler.uk              |   6 +
 arch/arm/arm/Config.uk                |  71 ++++++
 arch/arm/arm/Makefile.uk              |  48 ++++
 arch/arm/arm/divsi3.S                 | 403 +++++++++++++++++++++++++++++++++
 arch/arm/arm/ldivmod.S                |  68 ++++++
 arch/arm/arm/ldivmod_helper.c         |  67 ++++++
 arch/arm/arm/qdivrem.c                | 324 +++++++++++++++++++++++++++
 arch/arm/arm64/Compiler.uk            |   6 +
 arch/arm/arm64/Config.uk              |  60 +++++
 arch/arm/arm64/Makefile.uk            |  27 +++
 arch/arm/divsi3.S                     | 404 ----------------------------------
 arch/arm/ldivmod.S                    |  68 ------
 arch/arm/ldivmod_helper.c             |  67 ------
 arch/arm/qdivrem.c                    | 324 ---------------------------
 arch/x86/Compiler.uk                  |   4 +
 arch/x86/Makefile.uk                  |   4 +
 arch/x86/x86_64/Compiler.uk           |   6 +
 arch/x86/x86_64/Config.uk             |  89 ++++++++
 arch/x86/x86_64/Makefile.uk           |  37 ++++
 arch/x86_64/Compiler.uk               |   6 -
 arch/x86_64/Config.uk                 |  89 --------
 arch/x86_64/Makefile.uk               |  37 ----
 include/uk/arch/arm/arm/atomic.h      |  64 ++++++
 include/uk/arch/arm/arm/intsizes.h    |  45 ++++
 include/uk/arch/arm/arm/lcpu.h        |  59 +++++
 include/uk/arch/arm/arm/limits.h      |  45 ++++
 include/uk/arch/arm/arm/types.h       |  35 +++
 include/uk/arch/arm/atomic.h          |  64 ------
 include/uk/arch/arm/intsizes.h        |  45 ----
 include/uk/arch/arm/lcpu.h            |  59 -----
 include/uk/arch/arm/limits.h          |  45 ----
 include/uk/arch/arm/types.h           |  35 ---
 include/uk/arch/atomic.h              |   8 +-
 include/uk/arch/lcpu.h                |   8 +-
 include/uk/arch/limits.h              |  16 +-
 include/uk/arch/types.h               |  16 +-
 include/uk/arch/x86/x86_64/atomic.h   |  45 ++++
 include/uk/arch/x86/x86_64/intsizes.h |  45 ++++
 include/uk/arch/x86/x86_64/lcpu.h     |  73 ++++++
 include/uk/arch/x86/x86_64/limits.h   |  46 ++++
 include/uk/arch/x86/x86_64/types.h    |  38 ++++
 include/uk/arch/x86_64/atomic.h       |  45 ----
 include/uk/arch/x86_64/intsizes.h     |  45 ----
 include/uk/arch/x86_64/lcpu.h         |  73 ------
 include/uk/arch/x86_64/limits.h       |  46 ----
 include/uk/arch/x86_64/types.h        |  38 ----
 support/build/Makefile.rules          |  21 ++
 54 files changed, 1800 insertions(+), 1570 deletions(-)
 delete mode 100644 arch/arm/Config.uk
 create mode 100644 arch/arm/arm/Compiler.uk
 create mode 100644 arch/arm/arm/Config.uk
 create mode 100644 arch/arm/arm/Makefile.uk
 create mode 100644 arch/arm/arm/divsi3.S
 create mode 100644 arch/arm/arm/ldivmod.S
 create mode 100644 arch/arm/arm/ldivmod_helper.c
 create mode 100644 arch/arm/arm/qdivrem.c
 create mode 100644 arch/arm/arm64/Compiler.uk
 create mode 100644 arch/arm/arm64/Config.uk
 create mode 100644 arch/arm/arm64/Makefile.uk
 delete mode 100644 arch/arm/divsi3.S
 delete mode 100644 arch/arm/ldivmod.S
 delete mode 100644 arch/arm/ldivmod_helper.c
 delete mode 100644 arch/arm/qdivrem.c
 create mode 100644 arch/x86/Compiler.uk
 create mode 100644 arch/x86/Makefile.uk
 create mode 100644 arch/x86/x86_64/Compiler.uk
 create mode 100644 arch/x86/x86_64/Config.uk
 create mode 100644 arch/x86/x86_64/Makefile.uk
 delete mode 100644 arch/x86_64/Compiler.uk
 delete mode 100644 arch/x86_64/Config.uk
 delete mode 100644 arch/x86_64/Makefile.uk
 create mode 100644 include/uk/arch/arm/arm/atomic.h
 create mode 100644 include/uk/arch/arm/arm/intsizes.h
 create mode 100644 include/uk/arch/arm/arm/lcpu.h
 create mode 100644 include/uk/arch/arm/arm/limits.h
 create mode 100644 include/uk/arch/arm/arm/types.h
 delete mode 100644 include/uk/arch/arm/atomic.h
 delete mode 100644 include/uk/arch/arm/intsizes.h
 delete mode 100644 include/uk/arch/arm/lcpu.h
 delete mode 100644 include/uk/arch/arm/limits.h
 delete mode 100644 include/uk/arch/arm/types.h
 create mode 100644 include/uk/arch/x86/x86_64/atomic.h
 create mode 100644 include/uk/arch/x86/x86_64/intsizes.h
 create mode 100644 include/uk/arch/x86/x86_64/lcpu.h
 create mode 100644 include/uk/arch/x86/x86_64/limits.h
 create mode 100644 include/uk/arch/x86/x86_64/types.h
 delete mode 100644 include/uk/arch/x86_64/atomic.h
 delete mode 100644 include/uk/arch/x86_64/intsizes.h
 delete mode 100644 include/uk/arch/x86_64/lcpu.h
 delete mode 100644 include/uk/arch/x86_64/limits.h
 delete mode 100644 include/uk/arch/x86_64/types.h

-- 
2.7.4


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

 


Rackspace

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