summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-03-30 21:37:08 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-03-30 21:37:08 +0000
commit185f2edd70a34d28b305df0cd8ce519ecbca2cfd (patch)
treed55904eee7b3b44f5c19ee8cc16afe58f1c05b46
parentf9582a705a128ad6cd62ac9a5da94399f0ea6050 (diff)
downloadbcm5719-llvm-185f2edd70a34d28b305df0cd8ce519ecbca2cfd.tar.gz
bcm5719-llvm-185f2edd70a34d28b305df0cd8ce519ecbca2cfd.zip
Fix the build on 32 bit hosts.
- Add memcpy and memcmp to the stub headers. - __uint128_t is not available on 32 bit platforms. It's also unused so just comment it out for now. llvm-svn: 153779
-rw-r--r--compiler-rt/SDKs/darwin/usr/include/string.h2
-rw-r--r--compiler-rt/SDKs/linux/usr/include/string.h2
-rw-r--r--compiler-rt/lib/atomic.c6
3 files changed, 8 insertions, 2 deletions
diff --git a/compiler-rt/SDKs/darwin/usr/include/string.h b/compiler-rt/SDKs/darwin/usr/include/string.h
index 5e91109378e..bee9d46cddc 100644
--- a/compiler-rt/SDKs/darwin/usr/include/string.h
+++ b/compiler-rt/SDKs/darwin/usr/include/string.h
@@ -19,6 +19,8 @@
typedef __SIZE_TYPE__ size_t;
+int memcmp(const void *, const void *, size_t);
+void *memcpy(void *, const void *, size_t);
char *strcat(char *, const char *);
char *strcpy(char *, const char *);
char *strdup(const char *);
diff --git a/compiler-rt/SDKs/linux/usr/include/string.h b/compiler-rt/SDKs/linux/usr/include/string.h
index 5e91109378e..bee9d46cddc 100644
--- a/compiler-rt/SDKs/linux/usr/include/string.h
+++ b/compiler-rt/SDKs/linux/usr/include/string.h
@@ -19,6 +19,8 @@
typedef __SIZE_TYPE__ size_t;
+int memcmp(const void *, const void *, size_t);
+void *memcpy(void *, const void *, size_t);
char *strcat(char *, const char *);
char *strcpy(char *, const char *);
char *strdup(const char *);
diff --git a/compiler-rt/lib/atomic.c b/compiler-rt/lib/atomic.c
index c5841e4c43b..13dfff466c1 100644
--- a/compiler-rt/lib/atomic.c
+++ b/compiler-rt/lib/atomic.c
@@ -134,7 +134,8 @@ static inline Lock *lock_for_pointer(void *ptr) {
}\
case 16:\
if (IS_LOCK_FREE_16) {\
- LOCK_FREE_ACTION(__uint128_t);\
+ /* FIXME: __uint128_t isn't available on 32 bit platforms.
+ LOCK_FREE_ACTION(__uint128_t);*/\
}\
}\
} while (0)
@@ -217,7 +218,8 @@ void __atomic_exchange_n(int size, void *ptr, void *val, void *old, int model) {
OPTIMISED_CASE(2, IS_LOCK_FREE_2, uint16_t)\
OPTIMISED_CASE(4, IS_LOCK_FREE_4, uint32_t)\
OPTIMISED_CASE(8, IS_LOCK_FREE_8, uint64_t)\
- OPTIMISED_CASE(16, IS_LOCK_FREE_16, __uint128_t)\
+ /* FIXME: __uint128_t isn't available on 32 bit platforms.
+ OPTIMISED_CASE(16, IS_LOCK_FREE_16, __uint128_t)*/\
#define OPTIMISED_CASE(n, lockfree, type)\
type __atomic_load_##n(type *src, int model) {\
OpenPOWER on IntegriCloud