remove compiler-rt's SDKs/linux files?

Bob Wilson bob.wilson at apple.com
Tue Nov 11 12:44:18 PST 2014


Is there a reason to keep the stub SDK for Linux? I don’t know if anyone is relying on that, and I can’t test any changes, but now that the stub SDK for Darwin is gone, it might also make sense to remove the one for Linux.

> On Nov 10, 2014, at 11:38 AM, Bob Wilson <bob.wilson at apple.com> wrote:
> 
> 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
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list