sim types.h: A workaround for macOS MODULECC

This commit is contained in:
YAMAMOTO Takashi 2020-11-16 10:12:13 +09:00 committed by Xiang Xiao
parent a863fa30f9
commit 123d882027
2 changed files with 9 additions and 2 deletions

View File

@ -44,7 +44,7 @@
* Pre-processor Definitions
****************************************************************************/
#if defined(CONFIG_HOST_MACOS)
#if defined(__APPLE_CC__) || !defined(_LP64)
# define _PRI64PREFIX "ll"
# define _SCN64PREFIX "ll"
# define INT64_C(x) x ## ll

View File

@ -75,9 +75,16 @@ typedef unsigned int _uint32_t;
/* Note about host OS types:
* - int64_t is long long for 64-bit macOS
* - int64_t is long for Ubuntu x86-64
*
* Note for sim/macOS modules:
* For sim/macOS, usually x86_64-elf-gcc from homebrew is used
* as MODULECC. It seems to be configured as __INT64_TYPE__ == long int.
* The __APPLE_CC__ check below is to workaround it.
* (The host cc defines __APPLE_CC__, while x86_64-elf-gcc doesn't.)
* XXX It is a problem if you need C++ symbols in symtabs for modules.
*/
#if defined(CONFIG_HOST_MACOS) || !defined(_LP64)
#if defined(__APPLE_CC__) || !defined(_LP64)
typedef signed long long _int64_t;
typedef unsigned long long _uint64_t;
#else