Skip to content

Commit

Permalink
sim types.h: A workaround for macOS MODULECC
Browse files Browse the repository at this point in the history
  • Loading branch information
yamt committed Nov 18, 2020
1 parent c84825d commit cc1971b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
2 changes: 1 addition & 1 deletion arch/sim/include/inttypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
* Pre-processor Definitions
****************************************************************************/

#if defined(CONFIG_HOST_MACOS)
#if defined(CONFIG_HOST_MACOS) && defined(__APPLE_CC__) || !defined(_LP64)
# define _PRI64PREFIX "ll"
# define _SCN64PREFIX "ll"
# define INT64_C(x) x ## ll
Expand Down
9 changes: 8 additions & 1 deletion arch/sim/include/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,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(CONFIG_HOST_MACOS) && defined(__APPLE_CC__) || !defined(_LP64)
typedef signed long long _int64_t;
typedef unsigned long long _uint64_t;
#else
Expand Down

0 comments on commit cc1971b

Please sign in to comment.