VirtualBox

Changeset 87117 in vbox for trunk


Ignore:
Timestamp:
Dec 23, 2020 8:38:51 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142003
Message:

tools/env.sh,/Config.kmk,iprt/cdefs.h: A little fun. bugref:9898

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r87094 r87117  
    319319# Select new Xcode based on host OS X version.
    320320ifeq ($(KBUILD_HOST),darwin)
    321 # if !defined(VBOX_WITH_EVEN_NEWER_XCODE) && !defined(VBOX_WITHOUT_EVEN_NEWER_XCODE) && !defined(VBOX_WITH_NEW_XCODE) && $(KBUILD_HOST_VERSION_MAJOR) >= 16 # (OS X 10.12 Sierra)
     321 if "$(KBUILD_TARGET_ARCH)" == "arm64"
     322VBOX_WITH_EVEN_NEWER_XCODE := 1
     323# else if !defined(VBOX_WITH_EVEN_NEWER_XCODE) && !defined(VBOX_WITHOUT_EVEN_NEWER_XCODE) && !defined(VBOX_WITH_NEW_XCODE) && $(KBUILD_HOST_VERSION_MAJOR) >= 16 # (OS X 10.12 Sierra)
    322324#VBOX_WITH_EVEN_NEWER_XCODE := 1
    323 # else
    324  if !defined(VBOX_WITH_NEW_XCODE) && !defined(VBOX_WITHOUT_NEW_XCODE) && $(KBUILD_HOST_VERSION_MAJOR) >= 13 # (OS X 10.9 Mavericks)
     325 else if !defined(VBOX_WITH_NEW_XCODE) && !defined(VBOX_WITHOUT_NEW_XCODE) && $(KBUILD_HOST_VERSION_MAJOR) >= 13 # (OS X 10.9 Mavericks)
    325326VBOX_WITH_NEW_XCODE := 1
    326327 endif
     
    18511852# ARCH_BITS_DEFS.
    18521853#
    1853 if1of ($(KBUILD_TARGET_ARCH),amd64 sparc64)
     1854if1of ($(KBUILD_TARGET_ARCH),amd64 sparc64 arm64)
    18541855 VBOX_HC_ARCH_BITS := 64
    18551856 ARCH_BITS_DEFS    := HC_ARCH_BITS=64
     
    23162317  else if1of ($(VBOX_GCC_TOOL), VBoxXcode62)
    23172318   VBOX_DEF_MACOSX_VERSION_MIN := 10.9#  Mavericks
     2319  else ifeq ($(KBUILD_TARGET_ARCH),arm64)
     2320   VBOX_DEF_MACOSX_VERSION_MIN := 11.0# The Jack Kerouac novel.
    23182321  else
    23192322   VBOX_DEF_MACOSX_VERSION_MIN := 10.13# High Sierra
  • trunk/include/iprt/cdefs.h

    r86528 r87117  
    6464# define RT_ARCH_SPARC
    6565# define RT_ARCH_SPARC64
     66# define RT_ARCH_ARM32
     67# define RT_ARCH_ARM64
    6668# define IN_RING0
    6769# define IN_RING3
     
    105107 * Indicates that we're compiling for the SPARC V9 architecture (64-bit).
    106108 */
     109
     110/** @def RT_ARCH_ARM32
     111 * Indicates that we're compiling for the 32-bit ARM architecture.
     112 */
     113
     114/** @def RT_ARCH_ARM64
     115 * Indicates that we're compiling for the 64-bit ARM architecture.
     116 */
     117
    107118#if !defined(RT_ARCH_X86) \
    108119 && !defined(RT_ARCH_AMD64) \
    109120 && !defined(RT_ARCH_SPARC) \
    110121 && !defined(RT_ARCH_SPARC64) \
    111  && !defined(RT_ARCH_ARM)
     122 && !defined(RT_ARCH_ARM32) \
     123 && !defined(RT_ARCH_ARM64)
    112124# if defined(__amd64__) || defined(__x86_64__) || defined(_M_X64) || defined(__AMD64__)
    113125#  define RT_ARCH_AMD64
     
    118130# elif defined(__sparc__)
    119131#  define RT_ARCH_SPARC
     132# elif defined(__arm64__) || defined(__aarch64__)
     133#  define RT_ARCH_ARM64
    120134# elif defined(__arm__) || defined(__arm32__)
    121 #  define RT_ARCH_ARM
     135#  define RT_ARCH_ARM32
    122136# else /* PORTME: append test for new archs. */
    123137#  error "Check what predefined macros your compiler uses to indicate architecture."
     
    136150#elif defined(RT_ARCH_SPARC) && defined(RT_ARCH_SPARC64)
    137151# error "Both RT_ARCH_SPARC and RT_ARCH_SPARC64 cannot be defined at the same time!"
    138 #elif defined(RT_ARCH_ARM) && defined(RT_ARCH_AMD64)
    139 # error "Both RT_ARCH_ARM and RT_ARCH_AMD64 cannot be defined at the same time!"
    140 #elif defined(RT_ARCH_ARM) && defined(RT_ARCH_X86)
    141 # error "Both RT_ARCH_ARM and RT_ARCH_X86 cannot be defined at the same time!"
    142 #elif defined(RT_ARCH_ARM) && defined(RT_ARCH_SPARC64)
    143 # error "Both RT_ARCH_ARM and RT_ARCH_SPARC64 cannot be defined at the same time!"
    144 #elif defined(RT_ARCH_ARM) && defined(RT_ARCH_SPARC)
    145 # error "Both RT_ARCH_ARM and RT_ARCH_SPARC cannot be defined at the same time!"
     152#elif defined(RT_ARCH_ARM32) && defined(RT_ARCH_AMD64)
     153# error "Both RT_ARCH_ARM32 and RT_ARCH_AMD64 cannot be defined at the same time!"
     154#elif defined(RT_ARCH_ARM32) && defined(RT_ARCH_X86)
     155# error "Both RT_ARCH_ARM32 and RT_ARCH_X86 cannot be defined at the same time!"
     156#elif defined(RT_ARCH_ARM32) && defined(RT_ARCH_SPARC64)
     157# error "Both RT_ARCH_ARM32 and RT_ARCH_SPARC64 cannot be defined at the same time!"
     158#elif defined(RT_ARCH_ARM32) && defined(RT_ARCH_SPARC)
     159# error "Both RT_ARCH_ARM32 and RT_ARCH_SPARC cannot be defined at the same time!"
     160#elif defined(RT_ARCH_ARM64) && defined(RT_ARCH_AMD64)
     161# error "Both RT_ARCH_ARM64 and RT_ARCH_AMD64 cannot be defined at the same time!"
     162#elif defined(RT_ARCH_ARM64) && defined(RT_ARCH_X86)
     163# error "Both RT_ARCH_ARM64 and RT_ARCH_X86 cannot be defined at the same time!"
     164#elif defined(RT_ARCH_ARM64) && defined(RT_ARCH_SPARC64)
     165# error "Both RT_ARCH_ARM64 and RT_ARCH_SPARC64 cannot be defined at the same time!"
     166#elif defined(RT_ARCH_ARM64) && defined(RT_ARCH_SPARC)
     167# error "Both RT_ARCH_ARM64 and RT_ARCH_SPARC cannot be defined at the same time!"
     168#elif defined(RT_ARCH_ARM64) && defined(RT_ARCH_ARM32)
     169# error "Both RT_ARCH_ARM64 and RT_ARCH_ARM32 cannot be defined at the same time!"
     170#endif
     171#ifdef RT_ARCH_ARM
     172# error "RT_ARCH_ARM is now RT_ARCH_ARM32!"
    146173#endif
    147174
     
    151178     + (defined(RT_ARCH_SPARC) != 0) \
    152179     + (defined(RT_ARCH_SPARC64) != 0) \
    153      + (defined(RT_ARCH_ARM) != 0) \
     180     + (defined(RT_ARCH_ARM32) != 0) \
     181     + (defined(RT_ARCH_ARM64) != 0) \
    154182  != 1
    155183# error "Exactly one RT_ARCH_XXX macro shall be defined"
     
    295323/** @def RT_LITTLE_ENDIAN
    296324 * Defined if the architecture is little endian.  */
    297 #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86) || defined(RT_ARCH_ARM)
     325#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86) || defined(RT_ARCH_ARM32) || defined(RT_ARCH_ARM64)
    298326# define RT_LITTLE_ENDIAN
    299327#elif defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64)
     
    335363 */
    336364#if !defined(ARCH_BITS) || defined(DOXYGEN_RUNNING)
    337 # if defined(RT_ARCH_AMD64) || defined(RT_ARCH_SPARC64) || defined(DOXYGEN_RUNNING)
     365# if defined(RT_ARCH_AMD64) || defined(RT_ARCH_SPARC64) || defined(RT_ARCH_ARM64) || defined(DOXYGEN_RUNNING)
    338366#  define ARCH_BITS 64
    339367# elif !defined(__I86__) || !defined(__WATCOMC__)
     
    346374/* ARCH_BITS validation (PORTME). */
    347375#if ARCH_BITS == 64
    348  #if defined(RT_ARCH_X86) || defined(RT_ARCH_SPARC) || defined(RT_ARCH_ARM)
     376 #if defined(RT_ARCH_X86) || defined(RT_ARCH_SPARC) || defined(RT_ARCH_ARM32)
    349377 # error "ARCH_BITS=64 but non-64-bit RT_ARCH_XXX defined."
    350378 #endif
    351  #if !defined(RT_ARCH_AMD64) && !defined(RT_ARCH_SPARC64)
     379 #if !defined(RT_ARCH_AMD64) && !defined(RT_ARCH_SPARC64) && !defined(RT_ARCH_ARM64)
    352380 # error "ARCH_BITS=64 but no 64-bit RT_ARCH_XXX defined."
    353381 #endif
    354382
    355383#elif ARCH_BITS == 32
    356  #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_SPARC64)
     384 #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_SPARC64) || defined(RT_ARCH_ARM64)
    357385 # error "ARCH_BITS=32 but non-32-bit RT_ARCH_XXX defined."
    358386 #endif
    359  #if !defined(RT_ARCH_X86) && !defined(RT_ARCH_SPARC) && !defined(RT_ARCH_ARM)
     387 #if !defined(RT_ARCH_X86) && !defined(RT_ARCH_SPARC) && !defined(RT_ARCH_ARM32)
    360388 # error "ARCH_BITS=32 but no 32-bit RT_ARCH_XXX defined."
    361389 #endif
    362390
    363391#elif ARCH_BITS == 16
    364  #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64) || defined(RT_ARCH_ARM)
     392 #if defined(RT_ARCH_AMD64) || defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64) || defined(RT_ARCH_ARM32) || defined(RT_ARCH_ARM64)
    365393 # error "ARCH_BITS=16 but non-16-bit RT_ARCH_XX defined."
    366394 #endif
     
    38203848# elif defined(RT_ARCH_SPARC)
    38213849#  define RT_BREAKPOINT()       __asm__ __volatile__("unimp 0\n\t")     /** @todo Sparc: this is just a wild guess (same as Sparc64, just different name). */
     3850# elif defined(RT_ARCH_ARM32) || defined(RT_ARCH_ARM64)
     3851#  define RT_BREAKPOINT()       __asm__ __volatile__("brk #0x1\n\t")
    38223852# endif
    38233853#endif
     
    43014331# endif /* !IN_RING3 */
    43024332
    4303 #elif defined(RT_ARCH_ARM)
     4333#elif defined(RT_ARCH_ARM32) || defined(RT_ARCH_ARM64)
    43044334/* ASSUMES that at least the last and first 4K are out of bounds. */
    43054335# define RT_VALID_PTR(ptr)      ( (uintptr_t)(ptr) + 0x1000U >= 0x2000U )
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette