Skip to content

Commit

Permalink
add support for OS X and iOS as host system
Browse files Browse the repository at this point in the history
Conflicts:
    README.md
    cctools/autogen.sh
    cctools/configure.ac
    cctools/ld64/src/3rd/helper.c
    cctools/ld64/src/other/Makefile.am
  • Loading branch information
tpoechtrager committed Oct 18, 2014
1 parent 0139d23 commit ab742fe
Show file tree
Hide file tree
Showing 73 changed files with 510 additions and 275 deletions.
31 changes: 24 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,33 @@
# Apple cctools port for Linux, FreeBSD and NetBSD #

Current Version: 855 + ld64-134.9
Originally ported by cjacker from the [ios-toolchain-for-linux](https://code.google.com/p/ios-toolchain-based-on-clang-for-linux/) project.
Current Version: 855 + ld64-134.9.
Originally ported by [cjacker](http://ios-toolchain-based-on-clang-for-linux.googlecode.com).

## INSTALLATION ##
## SUPPORTED HOSTS ##

Linux
FreeBSD
NetBSD
Mac OS X
iOS (partially)

## SUPPORTED TARGETS ##

armv4t, armv5, armv6, armv7, armv7f, armv7k, armv7s, i386 and x86_64.

## DEPENDENCIES ##

Make sure you have the following installed on your Linux box:
`Clang 3.2+`, `automake`, `autogen` and `libtool`.

On Linux / FreeBSD / NetBSD you also need to install:

`Clang 3.2+`, `llvm-devel`, `automake`, `autogen`, `libtool`,
`uuid-devel` and `openssl-devel`.

Then type:
Optional, but recommended deps:

`llvm-devel` (Enables Link Time Optimization)

## INSTALLATION ##

* `cd cctools`
* `./autogen.sh`
Expand All @@ -21,4 +38,4 @@ Then type:
target = `i386-apple-darwin11`, `x86_64-apple-darwin11`, `arm-apple-darwin11`, ...

If you get compile errors because of `unistd.h`, then please run
`../tools/fix-unistd-issue.sh` in the cctools directory and restart compiling.
`../tools/fix_unistd_issue.sh` and restart compiling.
5 changes: 5 additions & 0 deletions cctools/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
if ISDARWIN
SUBDIRS=libstuff ar as misc otool ld64 $(LD_CLASSIC)
else
SUBDIRS=libstuff ar as misc libobjc2 otool ld64 $(LD_CLASSIC)
endif

ACLOCAL_AMFLAGS = -I m4
2 changes: 1 addition & 1 deletion cctools/ar/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ bin_PROGRAMS = ar
ar_LDADD = \
$(top_srcdir)/libstuff/libstuff.la

ar_CFLAGS = -D__DARWIN_UNIX03 -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff $(WARNINGS) $(LTO_DEFS) $(ENDIAN_FLAG)
ar_CFLAGS = -D__DARWIN_UNIX03 -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff $(WARNINGS) $(LTO_DEF) $(ENDIAN_FLAG)

ar_SOURCES = \
append.c \
Expand Down
2 changes: 1 addition & 1 deletion cctools/as/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ bin_PROGRAMS = as
as_LDADD = \
$(top_srcdir)/libstuff/libstuff.la

as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff $(WARNINGS) $(LTO_DEFS) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 $(ENDIAN_FLAG)
as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff $(WARNINGS) $(LTO_DEF) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 $(ENDIAN_FLAG)

as_SOURCES = driver.c
2 changes: 1 addition & 1 deletion cctools/as/arm/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ libexec_PROGRAMS = arm-as
arm_as_LDADD = \
$(top_srcdir)/libstuff/libstuff.la

arm_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEFS) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DARM
arm_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEF) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DARM

arm_as_SOURCES = ../app.c ../as.c ../atof-generic.c ../atof-ieee.c ../expr.c ../fixes.c ../flonum-const.c \
../flonum-copy.c ../flonum-mult.c ../frags.c ../hash.c ../hex-value.c ../input-file.c \
Expand Down
2 changes: 1 addition & 1 deletion cctools/as/i386/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ libexec_PROGRAMS = i386-as
i386_as_LDADD = \
$(top_srcdir)/libstuff/libstuff.la

i386_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEFS) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DI386 -Di486 -Di586 -Di686
i386_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEF) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DI386 -Di486 -Di586 -Di686

i386_as_SOURCES = ../app.c ../as.c ../atof-generic.c ../atof-ieee.c ../expr.c ../fixes.c ../flonum-const.c \
../flonum-copy.c ../flonum-mult.c ../frags.c ../hash.c ../hex-value.c ../input-file.c \
Expand Down
2 changes: 1 addition & 1 deletion cctools/as/ppc/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ libexec_PROGRAMS = ppc-as
ppc_as_LDADD = \
$(top_srcdir)/libstuff/libstuff.la

ppc_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEFS) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DPPC
ppc_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEF) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DPPC

ppc_as_SOURCES = ../app.c ../as.c ../atof-generic.c ../atof-ieee.c ../expr.c ../fixes.c ../flonum-const.c \
../flonum-copy.c ../flonum-mult.c ../frags.c ../hash.c ../hex-value.c ../input-file.c \
Expand Down
2 changes: 1 addition & 1 deletion cctools/as/ppc64/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ libexec_PROGRAMS = ppc64-as
ppc64_as_LDADD = \
$(top_srcdir)/libstuff/libstuff.la

ppc64_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEFS) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DPPC -DARCH64
ppc64_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEF) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DPPC -DARCH64

ppc64_as_SOURCES = ../app.c ../as.c ../atof-generic.c ../atof-ieee.c ../expr.c ../fixes.c ../flonum-const.c \
../flonum-copy.c ../flonum-mult.c ../frags.c ../hash.c ../hex-value.c ../input-file.c \
Expand Down
2 changes: 1 addition & 1 deletion cctools/as/x86_64/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ libexec_PROGRAMS = x86_64-as
x86_64_as_LDADD = \
$(top_srcdir)/libstuff/libstuff.la

x86_64_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEFS) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DI386 -Di486 -Di586 -Di686 -DARCH64
x86_64_as_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/foreign -I$(top_srcdir)/libstuff -I$(top_srcdir)/as $(WARNINGS) $(LTO_DEF) -DNeXT_MOD -DASLIBEXECDIR="\"$(ASLIBEXECDIR)/\"" -D__DARWIN_UNIX03 -DI386 -Di486 -Di586 -Di686 -DARCH64

x86_64_as_SOURCES = ../app.c ../as.c ../atof-generic.c ../atof-ieee.c ../expr.c ../fixes.c ../flonum-const.c \
../flonum-copy.c ../flonum-mult.c ../frags.c ../hash.c ../hex-value.c ../input-file.c \
Expand Down
4 changes: 1 addition & 3 deletions cctools/autogen.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
#!/usr/bin/env bash

test -n "$DISABLE_LTO_SUPPORT" && rm -rf tmp

../tools/find_lto_header.sh || echo "llvm-devel seems not to be installed - disabling LTO support"
# set -x

grep -n "__block," /usr/include/unistd.h &>/dev/null
if [ $? -eq 0 ]; then
Expand Down
105 changes: 76 additions & 29 deletions cctools/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,37 @@ AC_CANONICAL_TARGET

AC_ARG_PROGRAM

# force compiler to clang
CC=clang
CXX=clang++
CPP="clang -E"
case $host_os in
darwin* )
isdarwin=yes
AM_CONDITIONAL([ISDARWIN], [true])
;;
* )
AM_CONDITIONAL([ISDARWIN], [false])
;;
esac

if test "x$CFLAGS" = "x"; then
CFLAGS="-O3"
fi

if test "x$CXXFLAGS" = "x"; then
CXXFLAGS="-O3"
fi

CFLAGS="$CFLAGS `cat tmp/cflags 2>/dev/null` -isystem /usr/local/include -isystem /usr/pkg/include -O3"
CXXFLAGS="$CXXFLAGS `cat tmp/cxxflags 2>/dev/null` -isystem /usr/local/include -isystem /usr/pkg/include -O3"
LDFLAGS="$LDFLAGS -L/usr/local/lib `cat tmp/ldflags 2>/dev/null`"
if test "x$build" = "x$host"; then
CC="clang"
CXX="clang++"
CFLAGS="$CFLAGS -isystem /usr/local/include -isystem /usr/pkg/include"
CXXFLAGS="$CXXFLAGS -isystem /usr/local/include -isystem /usr/pkg/include"
LDFLAGS="$LDFLAGS -L/usr/local/lib"
else
CC="`which ${host_alias}-clang 2>/dev/null || echo clang`"
CXX="`which ${host_alias}-clang++ 2>/dev/null || echo clang++`"
fi

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:`cat tmp/ldpath 2>/dev/null`"
export LD_LIBRARY_PATH
CPP="$CC -E"
OBJC="$CC"

# FIXME 'subdir-objects' breaks dependency tracking
AM_INIT_AUTOMAKE([1.10 no-define no-dist-gzip dist-bzip2 tar-ustar subdir-objects no-dependencies])
Expand All @@ -31,7 +51,6 @@ AC_CONFIG_SRCDIR([APPLE_LICENSE])
LT_PREREQ([2.2.6])
LT_INIT(disable-static)


AC_PROG_INSTALL

AC_PROG_CC([clang])
Expand All @@ -43,8 +62,15 @@ AM_PROG_AS([clang])
AC_CHECK_TOOL([HOST_RANLIB], [ranlib], :)
AC_CHECK_TOOL([HOST_AR], [ar], :)

AC_CHECK_HEADERS([openssl/md5.h], [], [AC_MSG_ERROR([*** md5.h not found, Please install ssl dev packages according to your system])])
AC_CHECK_HEADERS([uuid/uuid.h], [], [AC_MSG_ERROR([*** uuid.h not found, Please install uuid dev packages according to your system])])
if test "x$isdarwin" != "xyes"; then
AC_CHECK_HEADERS([openssl/md5.h], [], [AC_MSG_ERROR([*** md5.h not found, please install ssl dev packages according to your system])])
CRYPTO_LIB=-lcrypto
SSL_LIB=-lssl
AC_SUBST([CRYPTO_LIB])
AC_SUBST([SSL_LIB])
fi

AC_CHECK_HEADERS([uuid/uuid.h], [], [AC_MSG_ERROR([*** uuid.h not found, please install uuid dev packages according to your system])])

#for libstuff emulated.c
case $target_cpu in
Expand All @@ -64,7 +90,11 @@ case $target_cpu in
AC_DEFINE(EMULATED_HOST_CPU_TYPE, 16777223, [Emulated CPU type])
AC_DEFINE(EMULATED_HOST_CPU_SUBTYPE, 3, [Emulated CPU subtype])
;;
arm)
arm64*)
AC_DEFINE(EMULATED_HOST_CPU_TYPE, 16777228, [Emulated CPU type])
AC_DEFINE(EMULATED_HOST_CPU_SUBTYPE, 0, [Emulated CPU subtype])
;;
arm*)
AC_DEFINE(EMULATED_HOST_CPU_TYPE, 12, [Emulated CPU type])
AC_DEFINE(EMULATED_HOST_CPU_SUBTYPE, 0, [Emulated CPU subtype])
;;
Expand All @@ -73,23 +103,20 @@ case $target_cpu in
;;
esac

#as reported, some users may use llvm-c/Disassembler.h instead of local copy in include dir.
#add these macros for avoid compilation failed.
# as reported, some users may use llvm-c/Disassembler.h instead of a local copy in include dir.
# add these macros to avoid compilation failures.

AC_DEFINE(__STDC_LIMIT_MACROS)
AC_DEFINE(__STDC_CONSTANT_MACROS)



#for as wrapper.
AC_SUBST([ASLIBEXECDIR], ['${libexecdir}/as'])

#for ld_class involk in ld64 and other command call.
# set PROGRAM PREFIX
if test "$target_alias"; then
AC_SUBST([PROGRAM_PREFIX], ['${target_alias}-'])
fi

#disable warnings.
# disable certain warnings.

WARNINGS=""

Expand Down Expand Up @@ -240,17 +267,18 @@ CFLAGS=$ORIGCFLAGS
AC_SUBST([WARNINGS], [$WARNINGS])


AC_CHECK_LIB([dl],[dlopen],[DL_LIBS=-ldl])
AC_SUBST(DL_LIBS)
AC_CHECK_LIB([dl],[dlopen],[DL_LIB=-ldl])
AC_SUBST(DL_LIB)

AC_CHECK_LIB([pthread],[pthread_create],[PTHREAD_FLAGS=-pthread])
AC_SUBST(PTHREAD_FLAGS)

AC_CHECK_LIB([uuid],[uuid_generate_random],[UUID_LIBS=-luuid])
AC_SUBST(UUID_LIBS)
AC_CHECK_LIB([uuid],[uuid_generate_random],[UUID_LIB=-luuid])
AC_SUBST(UUID_LIB)

AC_CHECK_FUNCS([strmode])

AC_CHECK_LIB([crypto],[MD5_Init],[CRYPT_LIBS=-lcrypto])
AC_SUBST(CRYPT_LIBS)
### Check for __cxa_demangle in various C++ ABI libs ###

AC_CHECK_LIB([c++abi],[__cxa_demangle],[CXXABI_LIB=-lc++abi],[
AC_CHECK_LIB([supc++],[__cxa_demangle],[CXXABI_LIB=-lsupc++],[
Expand All @@ -260,10 +288,26 @@ AC_CHECK_LIB([c++abi],[__cxa_demangle],[CXXABI_LIB=-lc++abi],[

AC_SUBST(CXXABI_LIB)

### Check for libLTO ###

ORIGLDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/local/lib,--enable-new-dtags"
AC_MSG_CHECKING([if -Wl,-rpath,<path>,--enable-new-dtags is supported])
AC_LINK_IFELSE(
[AC_LANG_SOURCE([[int main(){}]])],
[rpathlink=yes
AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])]
)
LDFLAGS=$ORIGLDFLAGS

CHECK_LLVM

### Check endianness ###

AC_C_BIGENDIAN([AC_SUBST([ENDIAN_FLAG],[-D__BIG_ENDIAN__=1])],
[AC_SUBST([ENDIAN_FLAG],[-D__LITTLE_ENDIAN__=1])])

AC_CHECK_FUNCS([strmode])

AC_CONFIG_FILES([Makefile libstuff/Makefile])
AC_CONFIG_FILES([ar/Makefile])
Expand All @@ -276,9 +320,12 @@ AC_CONFIG_FILES([as/ppc64/Makefile])
#AC_CONFIG_FILES([man/Makefile])
AC_CONFIG_FILES([misc/Makefile])
AC_CONFIG_FILES([otool/Makefile])
AC_CONFIG_FILES([libobjc2/Makefile])
AC_CONFIG_FILES([ld/Makefile])

if test "x$isdarwin" != "xyes"; then
AC_CONFIG_FILES([libobjc2/Makefile])
fi

AC_CONFIG_FILES([ld/Makefile])

AC_CONFIG_FILES([ld64/Makefile])
AC_CONFIG_FILES([ld64/src/Makefile])
Expand Down
8 changes: 8 additions & 0 deletions cctools/include/foreign/CommonCrypto/CommonDigest.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
#ifdef __APPLE__

#include_next <CommonCrypto/CommonDigest.h>

#else

#include <openssl/md5.h>

#define CC_MD5_DIGEST_LENGTH MD5_DIGEST_LENGTH
Expand All @@ -7,3 +13,5 @@
#define CC_MD5 MD5
#define CC_MD5_Transform MD5_Transform
#define CC_MD5_CTX MD5_CTX

#endif /* __APPLE__ */
8 changes: 4 additions & 4 deletions cctools/include/foreign/libkern/OSAtomic.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ __inline static
int32_t OSAtomicDecrement32Barrier( volatile int32_t *__theValue )
{ return OSAtomicAdd32Barrier( -1, __theValue); }

#if defined(__ppc64__) || defined(__i386__) || defined(__x86_64__) || defined(__arm__)
#if defined(__ppc64__) || defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__arm64__)

int64_t OSAtomicAdd64( int64_t __theAmount, volatile int64_t *__theValue );
int64_t OSAtomicAdd64Barrier( int64_t __theAmount, volatile int64_t *__theValue );
Expand All @@ -101,7 +101,7 @@ __inline static
int64_t OSAtomicDecrement64Barrier( volatile int64_t *__theValue )
{ return OSAtomicAdd64Barrier( -1, __theValue); }

#endif /* defined(__ppc64__) || defined(__i386__) || defined(__x86_64__) || defined(__arm__) */
#endif /* defined(__ppc64__) || defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__arm64__) */


/* Boolean functions (and, or, xor.) These come in four versions for each operation:
Expand Down Expand Up @@ -138,12 +138,12 @@ bool OSAtomicCompareAndSwapIntBarrier( int __oldValue, int __newValue, volatile
bool OSAtomicCompareAndSwapLong( long __oldValue, long __newValue, volatile long *__theValue );
bool OSAtomicCompareAndSwapLongBarrier( long __oldValue, long __newValue, volatile long *__theValue );

#if defined(__ppc64__) || defined(__i386__) || defined(__x86_64__) || defined(__arm__)
#if defined(__ppc64__) || defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__arm64__)

bool OSAtomicCompareAndSwap64( int64_t __oldValue, int64_t __newValue, volatile int64_t *__theValue );
bool OSAtomicCompareAndSwap64Barrier( int64_t __oldValue, int64_t __newValue, volatile int64_t *__theValue );

#endif /* defined(__ppc64__) || defined(__i386__) || defined(__x86_64__) || defined(__arm__) */
#endif /* defined(__ppc64__) || defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__arm64__) */


/* Test and set. They return the original value of the bit, and operate on bit (0x80>>(n&7))
Expand Down
2 changes: 1 addition & 1 deletion cctools/include/foreign/libkern/OSByteOrder.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
#include <libkern/ppc/OSByteOrder.h>
#elif (defined(__i386__) || defined(__x86_64__))
#include <libkern/i386/OSByteOrder.h>
#elif defined(__arm__)
#elif defined(__arm__) || defined(__arm64__)
#include <libkern/arm/OSByteOrder.h>
#else
#include <libkern/machine/OSByteOrder.h>
Expand Down
2 changes: 1 addition & 1 deletion cctools/include/foreign/libkern/_OSByteOrder.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
#include <libkern/i386/_OSByteOrder.h>
#endif

#if defined(__arm__)
#if defined(__arm__) || defined(__arm64__)
#include <libkern/arm/OSByteOrder.h>
#endif

Expand Down
6 changes: 1 addition & 5 deletions cctools/include/foreign/mach/machine/asm.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,8 @@
#ifndef _MACH_MACHINE_ASM_H
#define _MACH_MACHINE_ASM_H

#if defined (__ppc__) || defined (__ppc64__)
#include "mach/ppc/asm.h"
#elif defined (__i386__) || defined(__x86_64__)
#if defined (__i386__) || defined(__x86_64__)
#include "mach/i386/asm.h"
#elif defined (__arm__)
#include "mach/arm/asm.h"
#else
#error architecture not supported
#endif
Expand Down
2 changes: 1 addition & 1 deletion cctools/include/foreign/mach/machine/boolean.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
#include "mach/ppc/boolean.h"
#elif defined (__i386__) || defined(__x86_64__)
#include "mach/i386/boolean.h"
#elif defined (__arm__)
#elif defined (__arm__) || defined(__arm64__)
#include "mach/arm/boolean.h"
#else
#error architecture not supported
Expand Down

0 comments on commit ab742fe

Please sign in to comment.