[compiler-rt] r221621 - Build Darwin libclang_rt libraries against real SDKs.

Bob Wilson bob.wilson at apple.com
Mon Nov 10 11:38:15 PST 2014


Author: bwilson
Date: Mon Nov 10 13:38:15 2014
New Revision: 221621

URL: http://llvm.org/viewvc/llvm-project?rev=221621&view=rev
Log:
Build Darwin libclang_rt libraries against real SDKs.

The minimal fake SDK was very useful in allowing us to build for all
Darwin platforms without needing access to the real SDKs, but it did
not support building any of the sanitizer runtimes. It's important to
fix that. As a consequence, if you don't have the iOS SDKs installed,
we will now skip building the iOS-specific libclang_rt libraries.
rdar://problem/18825276

Removed:
    compiler-rt/trunk/SDKs/darwin/README.txt
    compiler-rt/trunk/SDKs/darwin/usr/include/errno.h
    compiler-rt/trunk/SDKs/darwin/usr/include/fcntl.h
    compiler-rt/trunk/SDKs/darwin/usr/include/inttypes.h
    compiler-rt/trunk/SDKs/darwin/usr/include/limits.h
    compiler-rt/trunk/SDKs/darwin/usr/include/stdio.h
    compiler-rt/trunk/SDKs/darwin/usr/include/stdlib.h
    compiler-rt/trunk/SDKs/darwin/usr/include/string.h
    compiler-rt/trunk/SDKs/darwin/usr/include/sys/errno.h
    compiler-rt/trunk/SDKs/darwin/usr/include/sys/fcntl.h
    compiler-rt/trunk/SDKs/darwin/usr/include/sys/mman.h
    compiler-rt/trunk/SDKs/darwin/usr/include/sys/stat.h
    compiler-rt/trunk/SDKs/darwin/usr/include/sys/types.h
Modified:
    compiler-rt/trunk/CMakeLists.txt
    compiler-rt/trunk/make/platform/clang_darwin.mk

Modified: compiler-rt/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/CMakeLists.txt?rev=221621&r1=221620&r2=221621&view=diff
==============================================================================
--- compiler-rt/trunk/CMakeLists.txt (original)
+++ compiler-rt/trunk/CMakeLists.txt Mon Nov 10 13:38:15 2014
@@ -160,7 +160,6 @@ include(CompilerRTUtils)
 set(COMPILER_RT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
 set(COMPILER_RT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
 # Setup custom SDK sysroots.
-set(COMPILER_RT_DARWIN_SDK_SYSROOT ${COMPILER_RT_SOURCE_DIR}/SDKs/darwin)
 set(COMPILER_RT_LINUX_SDK_SYSROOT ${COMPILER_RT_SOURCE_DIR}/SDKs/linux)
 
 set(COMPILER_RT_EXTRA_ANDROID_HEADERS ${COMPILER_RT_SOURCE_DIR}/android/include)

Removed: compiler-rt/trunk/SDKs/darwin/README.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/README.txt?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/README.txt (original)
+++ compiler-rt/trunk/SDKs/darwin/README.txt (removed)
@@ -1,3 +0,0 @@
-The Darwin platforms are all similar enough we roll them into one SDK, and use
-preprocessor tricks to get the right definitions for the few things which
-diverge between OS X and iOS.

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/errno.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/errno.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/errno.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/errno.h (removed)
@@ -1,17 +0,0 @@
-/* ===-- errno.h - stub SDK header for compiler-rt --------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#include <sys/errno.h>

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/fcntl.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/fcntl.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/fcntl.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/fcntl.h (removed)
@@ -1,17 +0,0 @@
-/* ===-- fcntl.h - stub SDK header for compiler-rt --------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#include <sys/fcntl.h>

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/inttypes.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/inttypes.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/inttypes.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/inttypes.h (removed)
@@ -1,86 +0,0 @@
-/* ===-- inttypes.h - stub SDK header for compiler-rt -----------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef __INTTYPES_H__
-#define __INTTYPES_H__
-
-#if __WORDSIZE == 64
-#define __INTTYPE_PRI64__ "l"
-#else
-#define __INTTYPE_PRI64__ "ll"
-#endif
-
-#define PRId8  "hhd"
-#define PRId16 "hd"
-#define PRId32 "d"
-#define PRId64 __INTTYPE_PRI64__ "d"
-
-#define PRIi8  "hhi"
-#define PRIi16 "hi"
-#define PRIi32 "i"
-#define PRIi64 __INTTYPE_PRI64__ "i"
-
-#define PRIo8  "hho"
-#define PRIo16 "ho"
-#define PRIo32 "o"
-#define PRIo64 __INTTYPE_PRI64__ "o"
-
-#define PRIu8  "hhu"
-#define PRIu16 "hu"
-#define PRIu32 "u"
-#define PRIu64 __INTTYPE_PRI64__ "u"
-
-#define PRIx8  "hhx"
-#define PRIx16 "hx"
-#define PRIx32 "x"
-#define PRIx64 __INTTYPE_PRI64__ "x"
-
-#define PRIX8  "hhX"
-#define PRIX16 "hX"
-#define PRIX32 "X"
-#define PRIX64 __INTTYPE_PRI64__ "X"
-
-#define SCNd8  "hhd"
-#define SCNd16 "hd"
-#define SCNd32 "d"
-#define SCNd64 __INTTYPE_PRI64__ "d"
-
-#define SCNi8  "hhi"
-#define SCNi16 "hi"
-#define SCNi32 "i"
-#define SCNi64 __INTTYPE_PRI64__ "i"
-
-#define SCNo8  "hho"
-#define SCNo16 "ho"
-#define SCNo32 "o"
-#define SCNo64 __INTTYPE_PRI64__ "o"
-
-#define SCNu8  "hhu"
-#define SCNu16 "hu"
-#define SCNu32 "u"
-#define SCNu64 __INTTYPE_PRI64__ "u"
-
-#define SCNx8  "hhx"
-#define SCNx16 "hx"
-#define SCNx32 "x"
-#define SCNx64 __INTTYPE_PRI64__ "x"
-
-#define SCNX8  "hhX"
-#define SCNX16 "hX"
-#define SCNX32 "X"
-#define SCNX64 __INTTYPE_PRI64__ "X"
-
-#endif  /* __INTTYPES_H__ */

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/limits.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/limits.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/limits.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/limits.h (removed)
@@ -1,23 +0,0 @@
-/* ===-- limits.h - stub SDK header for compiler-rt -------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef __LIMITS_H__
-#define __LIMITS_H__
-
-/* This is only here as a landing pad for the include_next from the compiler's
-   built-in limits.h. */
-
-#endif /* __LIMITS_H__ */

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/stdio.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/stdio.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/stdio.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/stdio.h (removed)
@@ -1,90 +0,0 @@
-/* ===-- stdio.h - stub SDK header for compiler-rt --------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef __STDIO_H__
-#define __STDIO_H__
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef struct __sFILE FILE;
-typedef __SIZE_TYPE__ size_t;
-
-/* Determine the appropriate fdopen, fopen(), and fwrite() functions. */
-#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
-#  if defined(__i386)
-#    define __FDOPEN_NAME  "_fdopen$UNIX2003"
-#    define __FOPEN_NAME "_fopen$UNIX2003"
-#    define __FWRITE_NAME "_fwrite$UNIX2003"
-#  elif defined(__x86_64__)
-#    define __FDOPEN_NAME  "_fdopen"
-#    define __FOPEN_NAME "_fopen"
-#    define __FWRITE_NAME "_fwrite"
-#  elif defined(__arm) || defined(__arm64)
-#    define __FDOPEN_NAME  "_fdopen"
-#    define __FOPEN_NAME "_fopen"
-#    define __FWRITE_NAME "_fwrite"
-#  else
-#    error "unrecognized architecture for targeting OS X"
-#  endif
-#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
-#  if defined(__i386) || defined (__x86_64)
-#    define __FDOPEN_NAME  "_fdopen"
-#    define __FOPEN_NAME "_fopen"
-#    define __FWRITE_NAME "_fwrite"
-#  elif defined(__arm) || defined(__arm64)
-#    define __FDOPEN_NAME  "_fdopen"
-#    define __FOPEN_NAME "_fopen"
-#    define __FWRITE_NAME "_fwrite"
-#  else
-#    error "unrecognized architecture for targeting iOS"
-#  endif
-#else
-#  error "unrecognized architecture for targeting Darwin"
-#endif
-
-#    define stderr __stderrp
-extern FILE *__stderrp;
-
-#ifndef SEEK_SET
-#define	SEEK_SET	0	/* set file offset to offset */
-#endif
-#ifndef SEEK_CUR
-#define	SEEK_CUR	1	/* set file offset to current plus offset */
-#endif
-#ifndef SEEK_END
-#define	SEEK_END	2	/* set file offset to EOF plus offset */
-#endif
-
-int fclose(FILE *);
-int fflush(FILE *);
-FILE *fopen(const char * __restrict, const char * __restrict) __asm(__FOPEN_NAME);
-FILE *fdopen(int, const char *) __asm(__FDOPEN_NAME);
-int fprintf(FILE * __restrict, const char * __restrict, ...);
-int fputc(int, FILE *);
-size_t fwrite(const void * __restrict, size_t, size_t, FILE * __restrict)
-  __asm(__FWRITE_NAME);
-size_t fread(void * __restrict, size_t, size_t, FILE * __restrict);
-long ftell(FILE *);
-int fseek(FILE *, long, int);
-int snprintf(char * __restrict, size_t, const char * __restrict, ...);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* __STDIO_H__ */

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/stdlib.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/stdlib.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/stdlib.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/stdlib.h (removed)
@@ -1,32 +0,0 @@
-/* ===-- stdlib.h - stub SDK header for compiler-rt -------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef __STDLIB_H__
-#define __STDLIB_H__
-
-#define NULL ((void *)0)
-
-typedef __SIZE_TYPE__ size_t;
-
-void abort(void) __attribute__((__noreturn__));
-int atexit(void (*)(void));
-int atoi(const char *);
-void free(void *);
-char *getenv(const char *);
-void *malloc(size_t);
-void *realloc(void *, size_t);
-
-#endif /* __STDLIB_H__ */

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/string.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/string.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/string.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/string.h (removed)
@@ -1,52 +0,0 @@
-/* ===-- string.h - stub SDK header for compiler-rt -------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef __STRING_H__
-#define __STRING_H__
-
-typedef __SIZE_TYPE__ size_t;
-
-int memcmp(const void *, const void *, size_t);
-void *memcpy(void *, const void *, size_t);
-void *memset(void *, int, size_t);
-char *strcat(char *, const char *);
-char *strcpy(char *, const char *);
-char *strdup(const char *);
-size_t strlen(const char *);
-char *strncpy(char *, const char *, size_t);
-
-/* Determine the appropriate strerror() function. */
-#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
-#  if defined(__i386)
-#    define __STRERROR_NAME  "_strerror$UNIX2003"
-#  elif defined(__x86_64__) || defined(__arm) || defined(__arm64)
-#    define __STRERROR_NAME  "_strerror"
-#  else
-#    error "unrecognized architecture for targeting OS X"
-#  endif
-#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
-#  if defined(__i386) || defined (__x86_64) || defined(__arm) || defined(__arm64)
-#    define __STRERROR_NAME  "_strerror"
-#  else
-#    error "unrecognized architecture for targeting iOS"
-#  endif
-#else
-#  error "unrecognized architecture for targeting Darwin"
-#endif
-
-char *strerror(int) __asm(__STRERROR_NAME);
-
-#endif /* __STRING_H__ */

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/sys/errno.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/sys/errno.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/sys/errno.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/sys/errno.h (removed)
@@ -1,31 +0,0 @@
-/* ===-- errno.h - stub SDK header for compiler-rt --------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef _SYS_ERRNO_H_
-#define _SYS_ERRNO_H_
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-extern int *__error(void);
-#define errno (*__error())
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/sys/fcntl.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/sys/fcntl.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/sys/fcntl.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/sys/fcntl.h (removed)
@@ -1,52 +0,0 @@
-/* ===-- fcntl.h - stub SDK header for compiler-rt --------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef _SYS_FCNTL_H_
-#define _SYS_FCNTL_H_
-
-/* Determine the appropriate open function. */
-#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
-#  if defined(__i386)
-#    define __OPEN_NAME  "_open$UNIX2003"
-#  elif defined(__x86_64__)
-#    define __OPEN_NAME  "_open"
-#  elif defined(__arm) || defined(__arm64)
-#    define __OPEN_NAME  "_open"
-#  else
-#    error "unrecognized architecture for targeting OS X"
-#  endif
-#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
-#  if defined(__i386) || defined (__x86_64)
-#    define __OPEN_NAME  "_open"
-#  elif defined(__arm) || defined(__arm64)
-#    define __OPEN_NAME  "_open"
-#  else
-#    error "unrecognized architecture for targeting iOS"
-#  endif
-#else
-#  error "unrecognized architecture for targeting Darwin"
-#endif
-
-#define O_RDONLY   0x0000    /* open for reading only */
-#define O_WRONLY   0x0001    /* open for writing only */
-#define O_RDWR     0x0002    /* open for reading and writing */
-#define O_ACCMODE  0x0003    /* mask for above modes */
-
-#define O_CREAT    0x0200    /* create if nonexistent */
-
-int open(const char *, int, ...) __asm(__OPEN_NAME);
-
-#endif /* !_SYS_FCNTL_H_ */

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/sys/mman.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/sys/mman.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/sys/mman.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/sys/mman.h (removed)
@@ -1,42 +0,0 @@
-/* ===-- mman.h - stub SDK header for compiler-rt ---------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef __SYS_MMAN_H__
-#define __SYS_MMAN_H__
-
-typedef __SIZE_TYPE__ size_t;
-
-#define PROT_NONE     0x00
-#define PROT_READ     0x01
-#define PROT_WRITE    0x02
-#define PROT_EXEC     0x04
-
-#define MAP_SHARED    0x0001
-#define MAP_PRIVATE   0x0002
-
-#define MAP_FILE      0x0000
-#define MAP_ANON      0x1000
-
-#define MS_ASYNC      0x0001
-#define MS_INVALIDATE 0x0002
-#define MS_SYNC       0x0010
-
-void *mmap(void *addr, size_t len, int prot, int flags, int fd,
-           long long offset);
-int munmap(void *addr, size_t len);
-int msync(void *addr, size_t len, int flags);
-
-#endif /* __SYS_MMAN_H__ */

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/sys/stat.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/sys/stat.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/sys/stat.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/sys/stat.h (removed)
@@ -1,25 +0,0 @@
-/* ===-- stat.h - stub SDK header for compiler-rt ---------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef __SYS_STAT_H__
-#define __SYS_STAT_H__
-
-typedef unsigned short uint16_t;
-typedef uint16_t mode_t;
-
-int mkdir(const char *, mode_t);
-
-#endif /* __SYS_STAT_H__ */

Removed: compiler-rt/trunk/SDKs/darwin/usr/include/sys/types.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/SDKs/darwin/usr/include/sys/types.h?rev=221620&view=auto
==============================================================================
--- compiler-rt/trunk/SDKs/darwin/usr/include/sys/types.h (original)
+++ compiler-rt/trunk/SDKs/darwin/usr/include/sys/types.h (removed)
@@ -1,20 +0,0 @@
-/* ===-- types.h - stub SDK header for compiler-rt --------------------------===
- *
- *                     The LLVM Compiler Infrastructure
- *
- * This file is dual licensed under the MIT and the University of Illinois Open
- * Source Licenses. See LICENSE.TXT for details.
- *
- * ===-----------------------------------------------------------------------===
- *
- * This is a stub SDK header file. This file is not part of the interface of
- * this library nor an official version of the appropriate SDK header. It is
- * intended only to stub the features of this header required by compiler-rt.
- *
- * ===-----------------------------------------------------------------------===
- */
-
-#ifndef __SYS_TYPES_H__
-#define __SYS_TYPES_H__
-
-#endif /* __SYS_TYPES_H__ */

Modified: compiler-rt/trunk/make/platform/clang_darwin.mk
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/platform/clang_darwin.mk?rev=221621&r1=221620&r2=221621&view=diff
==============================================================================
--- compiler-rt/trunk/make/platform/clang_darwin.mk (original)
+++ compiler-rt/trunk/make/platform/clang_darwin.mk Mon Nov 10 13:38:15 2014
@@ -6,16 +6,21 @@
 
 Description := Static runtime libraries for clang/Darwin.
 
-# A function that ensures we don't try to build for architectures that we
-# don't have working toolchains for.
+# A function that ensures we don't try to build for architectures and SDKs
+# that we don't have working toolchains for. Arguments:
+# (1): List of architectures
+# (2): Library name
+# (3): SDK path
+# The result is a possibly empty subset of the architectures from argument 1.
 CheckArches = \
   $(shell \
     result=""; \
-    for arch in $(1); do \
+    if [ "X$(3)" != X ]; then \
+     for arch in $(1); do \
       if $(CC) -arch $$arch -c \
           -integrated-as \
           $(ProjSrcRoot)/make/platform/clang_darwin_test_input.c \
-          -isysroot $(ProjSrcRoot)/SDKs/darwin \
+          -isysroot $(3) \
           -o /dev/null > /dev/null 2> /dev/null; then \
         if $(LD) -v 2>&1 | grep "configured to support" \
            | tr ' ' '\n' | grep "^$$arch$$" >/dev/null 2>/dev/null; then \
@@ -30,7 +35,8 @@ CheckArches = \
           "warning: clang_darwin.mk: dropping arch '$$arch' from lib '$(2)'"; \
         printf 1>&2 " (clang does not support it)\n"; \
       fi; \
-    done; \
+     done; \
+    fi; \
     echo $$result)
 
 XCRun = \
@@ -53,6 +59,10 @@ STRIP    := $(call XCRun,strip)
 LIPO     := $(call XCRun,lipo)
 DSYMUTIL := $(call XCRun,dsymutil)
 
+OSX_SDK := $(call XCRunSdkPath,macosx)
+IOS_SDK := $(call XCRunSdkPath,iphoneos)
+IOSSIM_SDK := $(call XCRunSdkPath,iphonesimulator)
+
 Configs :=
 UniversalArchs :=
 
@@ -60,51 +70,53 @@ UniversalArchs :=
 # still be referenced from Darwin system headers. This symbol is only ever
 # needed on i386.
 Configs += eprintf
-UniversalArchs.eprintf := $(call CheckArches,i386,eprintf)
+UniversalArchs.eprintf := $(call CheckArches,i386,eprintf,$(OSX_SDK))
 
 # Configuration for targeting 10.4. We need a few functions missing from
 # libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really
 # support targeting PowerPC.
 Configs += 10.4
-UniversalArchs.10.4 := $(call CheckArches,i386 x86_64,10.4)
+UniversalArchs.10.4 := $(call CheckArches,i386 x86_64,10.4,$(OSX_SDK))
 
 # Configuration for targeting iOS for a couple of functions that didn't
 # make it into libSystem.
 Configs += ios
-UniversalArchs.ios := $(call CheckArches,i386 x86_64 armv7 arm64,ios)
+UniversalArchs.ios := $(call CheckArches,i386 x86_64,ios,$(IOSSIM_SDK))
+UniversalArchs.ios += $(call CheckArches,armv7 arm64,ios,$(IOS_SDK))
 
 # Configuration for targeting OSX. These functions may not be in libSystem
 # so we should provide our own.
 Configs += osx
-UniversalArchs.osx := $(call CheckArches,i386 x86_64 x86_64h,osx)
+UniversalArchs.osx := $(call CheckArches,i386 x86_64 x86_64h,osx,$(OSX_SDK))
 
 # Configuration for use with kernel/kexts.
 Configs += cc_kext
-UniversalArchs.cc_kext := $(call CheckArches,armv7 arm64 i386 x86_64 x86_64h,cc_kext)
+UniversalArchs.cc_kext := $(call CheckArches,i386 x86_64 x86_64h,cc_kext,$(OSX_SDK))
+UniversalArchs.cc_kext += $(call CheckArches,armv7 arm64,cc_kext,$(IOS_SDK))
 
 # Configuration for use with kernel/kexts for iOS 5.0 and earlier (which used 
-# a different code generation strategy).
+# a different code generation strategy). Note: the x86_64 slice is unused but
+# it avoids build problems (see pr14013).
 Configs += cc_kext_ios5
-UniversalArchs.cc_kext_ios5 := $(call CheckArches,x86_64 armv7,cc_kext_ios5)
+UniversalArchs.cc_kext_ios5 := $(call CheckArches,x86_64,cc_kext_ios5,$(IOSSIM_SDK))
+UniversalArchs.cc_kext_ios5 += $(call CheckArches,armv7,cc_kext_ios5,$(IOS_SDK))
 
 # Configurations which define the profiling support functions.
 Configs += profile_osx
-UniversalArchs.profile_osx := $(call CheckArches,i386 x86_64 x86_64h,profile_osx)
+UniversalArchs.profile_osx := $(call CheckArches,i386 x86_64 x86_64h,profile_osx,$(OSX_SDK))
 Configs += profile_ios
-UniversalArchs.profile_ios := $(call CheckArches,i386 x86_64 armv7 arm64,profile_ios)
+UniversalArchs.profile_ios := $(call CheckArches,i386 x86_64,profile_ios,$(IOSSIM_SDK))
+UniversalArchs.profile_ios += $(call CheckArches,armv7 arm64,profile_ios,$(IOS_SDK))
 
 # Configurations which define the ASAN support functions.
 Configs += asan_osx_dynamic
-UniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64 x86_64h,asan_osx_dynamic)
+UniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64 x86_64h,asan_osx_dynamic,$(OSX_SDK))
 
-IOSSIM_SDK_PATH := $(call XCRunSdkPath,iphonesimulator)
-ifneq ($(IOSSIM_SDK_PATH),)
 Configs += asan_iossim_dynamic
-UniversalArchs.asan_iossim_dynamic := $(call CheckArches,i386 x86_64,asan_iossim_dynamic)
-endif
+UniversalArchs.asan_iossim_dynamic := $(call CheckArches,i386 x86_64,asan_iossim_dynamic,$(IOSSIM_SDK))
 
 Configs += ubsan_osx
-UniversalArchs.ubsan_osx := $(call CheckArches,i386 x86_64 x86_64h,ubsan_osx)
+UniversalArchs.ubsan_osx := $(call CheckArches,i386 x86_64 x86_64h,ubsan_osx,$(OSX_SDK))
 
 # Darwin 10.6 has a bug in cctools that makes it unable to use ranlib on our ARM
 # object files. If we are on that platform, strip out all ARM archs. We still
@@ -119,17 +131,18 @@ endif
 
 # If RC_SUPPORTED_ARCHS is defined, treat it as a list of the architectures we
 # are intended to support and limit what we try to build to that.
-#
-# We make sure to remove empty configs if we end up dropping all the requested
-# archs for a particular config.
 ifneq ($(RC_SUPPORTED_ARCHS),)
 $(foreach config,$(Configs),\
   $(call Set,UniversalArchs.$(config),\
-	$(filter $(RC_SUPPORTED_ARCHS),$(UniversalArchs.$(config))))\
-  $(if $(UniversalArchs.$(config)),,\
-	$(call Set,Configs,$(filter-out $(config),$(Configs)))))
+	$(filter $(RC_SUPPORTED_ARCHS),$(UniversalArchs.$(config))))
 endif
 
+# Remove empty configs if we end up dropping all the requested
+# archs for a particular config.
+$(foreach config,$(Configs),\
+  $(if $(strip $(UniversalArchs.$(config))),,\
+	$(call Set,Configs,$(filter-out $(config),$(Configs)))))
+
 ###
 
 # Forcibly strip off any -arch, as that totally breaks our universal support.
@@ -147,28 +160,31 @@ IOS_DEPLOYMENT_ARGS := -mios-version-min
 IOS6_DEPLOYMENT_ARGS := -mios-version-min=6.0
 IOSSIM_DEPLOYMENT_ARGS := -mios-simulator-version-min=1.0
 
-# Use our stub SDK as the sysroot to support more portable building.
-OSX_DEPLOYMENT_ARGS += -isysroot $(ProjSrcRoot)/SDKs/darwin
-IOS_DEPLOYMENT_ARGS += -isysroot $(ProjSrcRoot)/SDKs/darwin
-IOS6_DEPLOYMENT_ARGS += -isysroot $(ProjSrcRoot)/SDKs/darwin
-IOSSIM_DEPLOYMENT_ARGS += -isysroot $(ProjSrcRoot)/SDKs/darwin
+OSX_DEPLOYMENT_ARGS += -isysroot $(OSX_SDK)
+IOS_DEPLOYMENT_ARGS += -isysroot $(IOS_SDK)
+IOS6_DEPLOYMENT_ARGS += -isysroot $(IOS_SDK)
+IOSSIM_DEPLOYMENT_ARGS += -isysroot $(IOSSIM_SDK)
 
 CFLAGS.eprintf		:= $(CFLAGS) $(OSX_DEPLOYMENT_ARGS)
 CFLAGS.10.4		:= $(CFLAGS) $(OSX_DEPLOYMENT_ARGS)
-# FIXME: We can't build ASAN with our stub SDK yet.
+
 CFLAGS.asan_osx_dynamic := \
-	$(CFLAGS) -mmacosx-version-min=10.7 -fno-builtin \
+	$(CFLAGS) -mmacosx-version-min=10.7 \
+	-isysroot $(OSX_SDK) \
+	-fno-builtin \
 	-gline-tables-only \
 	-DMAC_INTERPOSE_FUNCTIONS=1
 
 CFLAGS.asan_iossim_dynamic := \
 	$(CFLAGS) -mios-simulator-version-min=7.0 \
-        -isysroot $(IOSSIM_SDK_PATH) \
+        -isysroot $(IOSSIM_SDK) \
         -fno-builtin \
 	-gline-tables-only \
 	-DMAC_INTERPOSE_FUNCTIONS=1
 
-CFLAGS.ubsan_osx := $(CFLAGS) -mmacosx-version-min=10.6 -fno-builtin
+CFLAGS.ubsan_osx := $(CFLAGS) -mmacosx-version-min=10.6 \
+	-isysroot $(OSX_SDK) \
+	-fno-builtin
 
 CFLAGS.ios.i386		:= $(CFLAGS) $(IOSSIM_DEPLOYMENT_ARGS)
 CFLAGS.ios.x86_64	:= $(CFLAGS) $(IOSSIM_DEPLOYMENT_ARGS)
@@ -209,7 +225,7 @@ SHARED_LIBRARY.asan_iossim_dynamic := 1
 # or -Wl,-syslibroot.
 LDFLAGS.asan_iossim_dynamic := -undefined dynamic_lookup -install_name @rpath/libclang_rt.asan_iossim_dynamic.dylib \
   -Wl,-ios_simulator_version_min,7.0.0 \
-  -mios-simulator-version-min=7.0 -isysroot $(IOSSIM_SDK_PATH)
+  -mios-simulator-version-min=7.0 -isysroot $(IOSSIM_SDK)
 
 FUNCTIONS.eprintf := eprintf
 FUNCTIONS.10.4 := eprintf floatundidf floatundisf floatundixf





More information about the llvm-commits mailing list