Skip to content

Commit 660c1d1

Browse files
committed
Conflicts: TestFoundation/TestNSArray.swift
2 parents c7108c4 + 8bcd59c commit 660c1d1

File tree

77 files changed

+2185
-264
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+2185
-264
lines changed

CoreFoundation/Base.subproj/CFInternal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ CF_EXTERN_C_BEGIN
9797
#include <CoreFoundation/CFLogUtilities.h>
9898
#include <CoreFoundation/CFRuntime.h>
9999
#include <limits.h>
100-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX
100+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
101101
#include <xlocale.h>
102102
#include <unistd.h>
103103
#include <sys/time.h>
@@ -495,7 +495,7 @@ CF_INLINE Boolean __CFLockTry(volatile CFLock_t *lock) {
495495
return (InterlockedCompareExchange((LONG volatile *)lock, ~0, 0) == 0);
496496
}
497497

498-
#elif DEPLOYMENT_TARGET_LINUX
498+
#elif DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
499499

500500
typedef int32_t CFLock_t;
501501
#define CFLockInit 0

CoreFoundation/Base.subproj/CFPlatform.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ CF_PRIVATE void __CFFinalizeWindowsThreadData() {
563563
#endif
564564

565565

566-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX
566+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
567567
static pthread_key_t __CFTSDIndexKey;
568568
#endif
569569

@@ -1062,7 +1062,7 @@ CF_PRIVATE int _NS_gettimeofday(struct timeval *tv, struct timezone *tz) {
10621062
#pragma mark -
10631063
#pragma mark Linux OSAtomic
10641064

1065-
#if DEPLOYMENT_TARGET_LINUX
1065+
#if defined(DEPLOYMENT_TARGET_LINUX) || defined(DEPLOYMENT_TARGET_FREEBSD)
10661066

10671067
bool OSAtomicCompareAndSwapPtr(void *oldp, void *newp, void *volatile *dst)
10681068
{

CoreFoundation/Base.subproj/CFPriv.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,9 +563,9 @@ CF_EXPORT CFMessagePortRef _CFMessagePortCreateLocalEx(CFAllocatorRef allocator,
563563

564564
#endif
565565

566-
#if TARGET_OS_MAC || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_LINUX
566+
#if TARGET_OS_MAC || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE
567567
#include <pthread.h>
568-
#else
568+
#elif !TARGET_OS_LINUX
569569
// Avoid including the pthread header
570570
#ifndef HAVE_STRUCT_TIMESPEC
571571
#define HAVE_STRUCT_TIMESPEC 1

CoreFoundation/Base.subproj/CFRuntime.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ __kCFReleaseEvent = 29
5555

5656
#if DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX
5757
#include <malloc.h>
58+
#elif DEPLOYMENT_TARGET_FREEBSD
59+
#include <stdlib.h> // malloc()
5860
#else
5961
#include <malloc/malloc.h>
6062
#endif
@@ -484,7 +486,7 @@ enum {
484486
#if DEPLOYMENT_TARGET_MACOSX
485487
#define NUM_EXTERN_TABLES 8
486488
#define EXTERN_TABLE_IDX(O) (((uintptr_t)(O) >> 8) & 0x7)
487-
#elif DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX
489+
#elif DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
488490
#define NUM_EXTERN_TABLES 1
489491
#define EXTERN_TABLE_IDX(O) 0
490492
#else
@@ -988,7 +990,7 @@ CF_PRIVATE Boolean __CFInitialized = 0;
988990
// move the next 2 lines down into the #if below, and make it static, after Foundation gets off this symbol on other platforms
989991
CF_EXPORT pthread_t _CFMainPThread;
990992
pthread_t _CFMainPThread = kNilPthreadT;
991-
#if DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_IPHONESIMULATOR
993+
#if DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_IPHONESIMULATOR || DEPLOYMENT_TARGET_LINUX
992994

993995
CF_EXPORT pthread_t _CF_pthread_main_thread_np(void);
994996
pthread_t _CF_pthread_main_thread_np(void) {
@@ -1811,8 +1813,11 @@ const char *_NSPrintForDebugger(void *cf) {
18111813
#if DEPLOYMENT_RUNTIME_SWIFT
18121814

18131815
// For CF functions with 'Get' semantics, the compiler currently assumes that the result is autoreleased and must be retained. It does so on all platforms by emitting a call to objc_retainAutoreleasedReturnValue. On Darwin, this is implemented by the ObjC runtime. On Linux, there is no runtime, and therefore we have to stub it out here ourselves. The compiler will eventually call swift_release to balance the retain below. This is a workaround until the compiler no longer emits this callout on Linux.
1814-
CFTypeRef objc_retainAutoreleasedReturnValue(CFTypeRef cf) {
1815-
if (cf) return CFRetain(cf);
1816+
void * objc_retainAutoreleasedReturnValue(void *obj) {
1817+
if (obj) {
1818+
swift_retain(obj);
1819+
return obj;
1820+
}
18161821
else return NULL;
18171822
}
18181823

CoreFoundation/Base.subproj/CFUUID.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ CFUUIDRef CFUUIDCreate(CFAllocatorRef alloc) {
271271
long rStatus = UuidCreate(&u);
272272
if (RPC_S_OK != rStatus && RPC_S_UUID_LOCAL_ONLY != rStatus) retval = 1;
273273
memmove(&bytes, &u, sizeof(bytes));
274-
#elif DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED
274+
#elif DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_LINUX
275275
static Boolean useV1UUIDs = false, checked = false;
276276
uuid_t uuid;
277277
if (!checked) {

CoreFoundation/Base.subproj/CFUtilities.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,7 @@ static void __CFLogCString(int32_t lev, const char *message, size_t length, char
606606
char *uid = NULL;
607607
int bannerLen;
608608
bannerLen = 0;
609-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX
609+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
610610
// The banner path may use CF functions, but the rest of this function should not. It may be called at times when CF is not fully setup or torn down.
611611
if (withBanner) {
612612
double dummy;
@@ -1082,7 +1082,7 @@ CF_PRIVATE Boolean _CFReadMappedFromFile(CFStringRef path, Boolean map, Boolean
10821082
if (0LL == statBuf.st_size) {
10831083
bytes = malloc(8); // don't return constant string -- it's freed!
10841084
length = 0;
1085-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX
1085+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
10861086
} else if (map) {
10871087
if((void *)-1 == (bytes = mmap(0, (size_t)statBuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0))) {
10881088
int32_t savederrno = errno;
@@ -1256,6 +1256,9 @@ CFDictionaryRef __CFGetEnvironment() {
12561256
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED
12571257
extern char ***_NSGetEnviron();
12581258
char **envp = *_NSGetEnviron();
1259+
#elif DEPLOYMENT_TARGET_FREEBSD
1260+
extern char **environ;
1261+
char **envp = environ;
12591262
#elif DEPLOYMENT_TARGET_LINUX
12601263
#ifndef environ
12611264
#define environ __environ

CoreFoundation/Base.subproj/CoreFoundation_Prefix.h

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,11 @@ typedef int boolean_t;
155155
#endif
156156
#endif
157157

158+
#if DEPLOYMENT_TARGET_FREEBSD
159+
#include <string.h>
160+
#include <sys/stat.h> // mode_t
161+
#endif
162+
158163
#if DEPLOYMENT_TARGET_LINUX
159164

160165
#define CF_PRIVATE __attribute__((visibility("hidden")))
@@ -221,6 +226,39 @@ CF_INLINE size_t malloc_size(void *memblock) {
221226
return malloc_usable_size(memblock);
222227
}
223228

229+
#include <time.h>
230+
CF_INLINE uint64_t mach_absolute_time() {
231+
struct timespec ts;
232+
clock_gettime(CLOCK_MONOTONIC, &ts);
233+
return (uint64_t)ts.tv_nsec + (uint64_t)ts.tv_sec * 1000000000UL;
234+
}
235+
236+
#endif
237+
238+
#if DEPLOYMENT_TARGET_FREEBSD
239+
#define HAVE_STRUCT_TIMESPEC 1
240+
241+
#define CF_PRIVATE __attribute__((visibility("hidden")))
242+
#define __strong
243+
#define __weak
244+
245+
// Implemented in CFPlatform.c
246+
bool OSAtomicCompareAndSwapPtr(void *oldp, void *newp, void *volatile *dst);
247+
bool OSAtomicCompareAndSwapLong(long oldl, long newl, long volatile *dst);
248+
bool OSAtomicCompareAndSwapPtrBarrier(void *oldp, void *newp, void *volatile *dst);
249+
bool OSAtomicCompareAndSwap64Barrier( int64_t __oldValue, int64_t __newValue, volatile int64_t *__theValue );
250+
251+
int32_t OSAtomicDecrement32Barrier(volatile int32_t *dst);
252+
int32_t OSAtomicIncrement32Barrier(volatile int32_t *dst);
253+
int32_t OSAtomicIncrement32(volatile int32_t *theValue);
254+
int32_t OSAtomicDecrement32(volatile int32_t *theValue);
255+
256+
int32_t OSAtomicAdd32( int32_t theAmount, volatile int32_t *theValue );
257+
int32_t OSAtomicAdd32Barrier( int32_t theAmount, volatile int32_t *theValue );
258+
bool OSAtomicCompareAndSwap32Barrier( int32_t oldValue, int32_t newValue, volatile int32_t *theValue );
259+
260+
void OSMemoryBarrier();
261+
224262
#endif
225263

226264
#if DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX

CoreFoundation/Base.subproj/ForFoundationOnly.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ CF_EXTERN_C_BEGIN
4141

4242
#if DEPLOYMENT_TARGET_LINUX
4343
#include <malloc.h>
44+
#elif DEPLOYMENT_TARGET_FREEBSD
45+
#include <stdlib.h> // malloc()
4446
#elif DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI
4547
#include <malloc/malloc.h>
4648
#endif
@@ -49,7 +51,7 @@ CF_EXTERN_C_END
4951

5052
// ---- CFBundle material ----------------------------------------
5153

52-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX
54+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
5355
#include <CoreFoundation/CFBundlePriv.h>
5456

5557
CF_EXTERN_C_BEGIN

CoreFoundation/Base.subproj/ForSwiftFoundationOnly.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ struct _NSStringBridge {
9898
CFIndex (*length)(CFTypeRef str);
9999
UniChar (*characterAtIndex)(CFTypeRef str, CFIndex idx);
100100
void (*getCharacters)(CFTypeRef str, CFRange range, UniChar *buffer);
101-
CFIndex (*__getBytes)(CFTypeRef str, CFRange range, uint8_t *buffer, CFIndex maxBufLen, CFIndex *usedBufLen);
101+
CFIndex (*__getBytes)(CFTypeRef str, CFStringEncoding encoding, CFRange range, uint8_t *buffer, CFIndex maxBufLen, CFIndex *usedBufLen);
102102
const char *_Nullable (*_Nonnull _fastCStringContents)(CFTypeRef str);
103103
const UniChar *_Nullable (*_Nonnull _fastCharacterContents)(CFTypeRef str);
104104
bool (*_getCString)(CFTypeRef str, char *buffer, size_t len, UInt32 encoding);

CoreFoundation/Locale.subproj/CFLocale.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include <CoreFoundation/CFNumber.h>
2525
#include "CFInternal.h"
2626
#include "CFLocaleInternal.h"
27-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX
27+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
2828
#include <unicode/uloc.h> // ICU locales
2929
#include <unicode/ulocdata.h> // ICU locale data
3030
#include <unicode/ucal.h>
@@ -283,7 +283,7 @@ static CFLocaleRef __CFLocaleCurrent = NULL;
283283
#define FALLBACK_LOCALE_NAME CFSTR("")
284284
#elif DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI
285285
#define FALLBACK_LOCALE_NAME CFSTR("en_US")
286-
#elif DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX
286+
#elif DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
287287
#define FALLBACK_LOCALE_NAME CFSTR("en_US")
288288
#endif
289289

CoreFoundation/NumberDate.subproj/CFDate.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#include <dispatch/dispatch.h>
2727
#endif
2828

29-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX
29+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
3030
#include <sys/time.h>
3131
#endif
3232

@@ -43,7 +43,7 @@ const CFTimeInterval kCFAbsoluteTimeIntervalSince1904 = 3061152000.0L;
4343
CF_PRIVATE double __CFTSRRate = 0.0;
4444
static double __CF1_TSRRate = 0.0;
4545

46-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS
46+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX
4747

4848
CF_PRIVATE uint64_t __CFTimeIntervalToTSR(CFTimeInterval ti) {
4949
if ((ti * __CFTSRRate) > INT64_MAX / 2) return (INT64_MAX / 2);
@@ -66,7 +66,7 @@ CF_PRIVATE CFTimeInterval __CFTimeIntervalUntilTSR(uint64_t tsr) {
6666

6767
// Technically this is 'TSR units' not a strict 'TSR' absolute time
6868
CF_PRIVATE uint64_t __CFTSRToNanoseconds(uint64_t tsr) {
69-
double tsrInNanoseconds = floor(tsr * __CF1_TSRRate * NSEC_PER_SEC);
69+
double tsrInNanoseconds = floor(tsr * __CF1_TSRRate * 1000000000UL);
7070
uint64_t ns = (uint64_t)tsrInNanoseconds;
7171
return ns;
7272
}
@@ -99,7 +99,7 @@ CF_EXPORT CFTimeInterval CFGetSystemUptime(void) {
9999
CFDateGetTypeID();
100100
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED
101101
uint64_t tsr = mach_absolute_time();
102-
#elif DEPLOYMENT_TARGET_LINUX
102+
#elif DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
103103
struct timespec res;
104104
if (clock_gettime(CLOCK_MONOTONIC, &res) != 0) {
105105
HALT;
@@ -165,7 +165,7 @@ CFTypeID CFDateGetTypeID(void) {
165165
}
166166
__CFTSRRate = (double)freq.QuadPart;
167167
__CF1_TSRRate = 1.0 / __CFTSRRate;
168-
#elif DEPLOYMENT_TARGET_LINUX
168+
#elif DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
169169
struct timespec res;
170170
if (clock_getres(CLOCK_MONOTONIC, &res) != 0) {
171171
HALT;

CoreFoundation/NumberDate.subproj/CFNumber.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ static const Float64Bits doubleOneBits = {.floatValue = 1.0f};
161161
#define BITSFORDOUBLEZERO doubleZeroBits.bits
162162
#define BITSFORDOUBLEONE doubleOneBits.bits
163163

164-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX
164+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
165165
#define FLOAT_POSITIVE_2_TO_THE_64 0x1.0p+64L
166166
#define FLOAT_NEGATIVE_2_TO_THE_127 -0x1.0p+127L
167167
#define FLOAT_POSITIVE_2_TO_THE_127 0x1.0p+127L

CoreFoundation/NumberDate.subproj/CFTimeZone.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@
2929
#include <unicode/udat.h>
3030
#include <unicode/ustring.h>
3131
#include <CoreFoundation/CFDateFormatter.h>
32-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_LINUX
32+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
3333
#include <dirent.h>
3434
#include <unistd.h>
3535
#include <sys/fcntl.h>
3636
#endif
3737
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED
3838
#include <tzfile.h>
39-
#elif DEPLOYMENT_TARGET_LINUX
39+
#elif DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
4040
#ifndef TZDIR
4141
#define TZDIR "/usr/share/zoneinfo" /* Time zone object file directory */
4242
#endif /* !defined TZDIR */
@@ -59,7 +59,7 @@ struct tzhead {
5959

6060
#include <time.h>
6161

62-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_LINUX
62+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
6363
#define TZZONELINK TZDEFAULT
6464
#define TZZONEINFO TZDIR "/"
6565
#elif DEPLOYMENT_TARGET_WINDOWS
@@ -147,7 +147,7 @@ static CFMutableArrayRef __CFCopyWindowsTimeZoneList() {
147147
RegCloseKey(hkResult);
148148
return result;
149149
}
150-
#elif DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX
150+
#elif DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
151151
static CFMutableArrayRef __CFCopyRecursiveDirectoryList() {
152152
CFMutableArrayRef result = CFArrayCreateMutable(kCFAllocatorSystemDefault, 0, &kCFTypeArrayCallBacks);
153153
#if DEPLOYMENT_TARGET_WINDOWS
@@ -753,7 +753,6 @@ static CFTimeZoneRef __CFTimeZoneCreateSystem(void) {
753753
}
754754
ret = readlink(TZZONELINK, linkbuf, sizeof(linkbuf));
755755
if (0 < ret) {
756-
CFStringRef name;
757756
linkbuf[ret] = '\0';
758757
if (strncmp(linkbuf, TZZONEINFO, sizeof(TZZONEINFO) - 1) == 0) {
759758
name = CFStringCreateWithBytes(kCFAllocatorSystemDefault, (uint8_t *)linkbuf + sizeof(TZZONEINFO) - 1, strlen(linkbuf) - sizeof(TZZONEINFO) + 1, kCFStringEncodingUTF8, false);
@@ -1010,7 +1009,7 @@ static int32_t __tryParseGMTName(CFStringRef name) {
10101009
Boolean sixIsPunct = (':' == ustr[6] || '.' == ustr[6]);
10111010
if (!(sixIsDigit && 8 == len) && !(sixIsPunct && 9 == len)) return -1;
10121011

1013-
Boolean minIdx = len - 2;
1012+
CFIndex minIdx = len - 2;
10141013
UniChar minDig1 = ustr[minIdx], minDig2 = ustr[minIdx + 1];
10151014
if (!('0' <= minDig1 && minDig1 <= '5' && '0' <= minDig2 && minDig2 <= '9')) return -1;
10161015
int32_t minutes = 10 * (minDig1 - '0') + (minDig2 - '0');
@@ -1091,7 +1090,7 @@ Boolean _CFTimeZoneInit(CFTimeZoneRef timeZone, CFStringRef name, CFDataRef data
10911090
CFTZPeriod *tzp = NULL;
10921091
CFIndex cnt = 0;
10931092
__CFTimeZoneLockGlobal();
1094-
if (!__CFParseTimeZoneData(kCFAllocatorSystemDefault, data, &tzp, &cnt)) {
1093+
if (__CFParseTimeZoneData(kCFAllocatorSystemDefault, data, &tzp, &cnt)) {
10951094
__CFTimeZoneUnlockGlobal();
10961095

10971096
} else {

CoreFoundation/Parsing.subproj/CFXMLInterface.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*/
1313

1414
#if !defined(__COREFOUNDATION_CFXMLINTERFACE__)
15-
#define __COREFOUNDATION_CFXMLINTERFACE 1
15+
#define __COREFOUNDATION_CFXMLINTERFACE__ 1
1616

1717
#include <CoreFoundation/CFBase.h>
1818
#include <CoreFoundation/CFArray.h>
@@ -97,4 +97,4 @@ CF_EXTERN_C_END
9797
CF_ASSUME_NONNULL_END
9898
CF_IMPLICIT_BRIDGING_DISABLED
9999

100-
#endif /* CFXMLInterface_h */
100+
#endif /* __COREFOUNDATION_CFXMLINTERFACE__ */

CoreFoundation/PlugIn.subproj/CFBundle.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include <sys/stat.h>
2929
#include <stdlib.h>
3030

31-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX
31+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_WINDOWS || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
3232
#else
3333
#error Unknown deployment target
3434
#endif

CoreFoundation/PlugIn.subproj/CFBundle_BinaryTypes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ CF_EXTERN_C_BEGIN
2727
#define USE_DYLD_PRIV 1
2828
#elif DEPLOYMENT_TARGET_WINDOWS
2929
#define BINARY_SUPPORT_DLL 1
30-
#elif DEPLOYMENT_TARGET_LINUX
30+
#elif DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
3131
#define BINARY_SUPPORT_DLFCN 1
3232
#else
3333
#error Unknown or unspecified DEPLOYMENT_TARGET

CoreFoundation/PlugIn.subproj/CFBundle_InfoPlist.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include <CoreFoundation/CFByteOrder.h>
2424
#include <CoreFoundation/CFURLAccess.h>
2525

26-
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_EMBEDDED_MINI
26+
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_FREEBSD
2727
#include <dirent.h>
2828
#include <sys/sysctl.h>
2929
#include <sys/mman.h>
@@ -159,6 +159,8 @@ CF_EXPORT CFStringRef _CFGetAlternatePlatformName(void) {
159159
return CFSTR("");
160160
#elif DEPLOYMENT_TARGET_LINUX
161161
return CFSTR("Linux");
162+
#elif DEPLOYMENT_TARGET_FREEBSD
163+
return CFSTR("FreeBSD");
162164
#else
163165
#error Unknown or unspecified DEPLOYMENT_TARGET
164166
#endif

0 commit comments

Comments
 (0)