mirror of
https://github.com/darlinghq/darling.git
synced 2024-11-26 22:00:29 +00:00
commit
a12ec5d2bc
@ -47,7 +47,7 @@ You can uninstall and list packages with the `uninstaller` command.
|
||||
|
||||
### Working with DMG images
|
||||
|
||||
DMG images can be attached and deattached from inside `darling shell` with `hdiutil`. This is how you can install Xcode along with its toolchain and SDKs (note that Xcode itself doesn't run yet):
|
||||
DMG images can be attached and detached from inside `darling shell` with `hdiutil`. This is how you can install Xcode along with its toolchain and SDKs (note that Xcode itself doesn't run yet):
|
||||
|
||||
````
|
||||
Darling [~]$ hdiutil attach Xcode_7.2.dmg
|
||||
|
@ -226,7 +226,7 @@ void libsimple_once(libsimple_once_t* _once, libsimple_once_callback callback, v
|
||||
return;
|
||||
}; // not reached
|
||||
case libsimple_once_state_triggered_uncontended: {
|
||||
// somebody is already perfoming the callback;
|
||||
// somebody is already performing the callback;
|
||||
// now we're waiting, so let's update the state for that
|
||||
libsimple_once_debug("someone is already performing the callback with no waiters; becoming first waiter...");
|
||||
exchanged = atomic_compare_exchange_strong_explicit(&once->state, &prev, libsimple_once_state_triggered_contended, memory_order_acq_rel, memory_order_acquire);
|
||||
|
@ -82,6 +82,6 @@ int _set_user_dir_suffix(const char* suffix) {
|
||||
pthread_mutex_lock(&dir_suffix_lock);
|
||||
dir_suffix = suffix;
|
||||
pthread_mutex_unlock(&dir_suffix_lock);
|
||||
return 1; // weird, it's suppossed to return non-zero on success (maybe it's actually a bool?)
|
||||
return 1; // weird, it's supposed to return non-zero on success (maybe it's actually a bool?)
|
||||
};
|
||||
|
||||
|
@ -60,7 +60,7 @@ void commpage_setup(bool _64bit)
|
||||
logcpus = (uint8_t*)CGET(_COMM_PAGE_LOGICAL_CPUS);
|
||||
*physcpus = *logcpus = *ncpus;
|
||||
|
||||
// I'm not sure if Linux has seperate page sizes for kernel and user space.
|
||||
// I'm not sure if Linux has separate page sizes for kernel and user space.
|
||||
// Apple's code uses left shift logical (1 << user_page_shift) to get the page size value.
|
||||
// Since it's very unlikely that the page size won't be a power of 2, we can use __builtin_ctzl()
|
||||
// as a substitute for log2().
|
||||
|
@ -58,7 +58,7 @@ struct arg_struct
|
||||
uintptr_t arg2; // `stack_addr` for normal threads; `flags` for workqueues
|
||||
uintptr_t arg3; // `flags` for normal threads; `nkevents` for workqueues
|
||||
union {
|
||||
void* _backwards_compat; // kept around to avoid modifiying assembly
|
||||
void* _backwards_compat; // kept around to avoid modifying assembly
|
||||
int port;
|
||||
};
|
||||
unsigned long pth_obj_size;
|
||||
@ -230,7 +230,7 @@ static void* darling_thread_entry(void* p)
|
||||
|
||||
// let's check-in with darlingserver on this new thread
|
||||
int dummy_stack_variable;
|
||||
// the lifetime pipe fd is ignored as the proces should already have been registered
|
||||
// the lifetime pipe fd is ignored as the process should already have been registered
|
||||
if (dserver_rpc_explicit_checkin(t_server_socket, false, &dummy_stack_variable, -1) < 0) {
|
||||
// we can't do ANYTHING if darlingserver doesn't acknowledge us successfully
|
||||
abort();
|
||||
|
@ -169,7 +169,7 @@ void xtrace_once(xtrace_once_t* _once, xtrace_once_callback callback) {
|
||||
return;
|
||||
}; // not reached
|
||||
case xtrace_once_state_triggered_uncontended: {
|
||||
// somebody is already perfoming the callback;
|
||||
// somebody is already performing the callback;
|
||||
// now we're waiting, so let's update the state for that
|
||||
xtrace_once_debug("someone is already performing the callback with no waiters; becoming first waiter...");
|
||||
exchanged = atomic_compare_exchange_strong_explicit(&once->state, &prev, xtrace_once_state_triggered_contended, memory_order_acq_rel, memory_order_acquire);
|
||||
|
@ -4,7 +4,7 @@ import argparse
|
||||
import os
|
||||
import re
|
||||
|
||||
parser = argparse.ArgumentParser(description="Rename a CMake target. Opperates on the current directory.")
|
||||
parser = argparse.ArgumentParser(description="Rename a CMake target. Operates on the current directory.")
|
||||
|
||||
parser.add_argument("old", help="the target to rename", type=str)
|
||||
parser.add_argument("new", help="the new target name", type=str)
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This cool can be used to strip most of the copyrightable material from header files.
|
||||
# Remember that all files processed with this script stil need to be checked manually!
|
||||
# Remember that all files processed with this script still need to be checked manually!
|
||||
|
||||
gcc -DNS_BLOCKS_AVAILABLE -fpreprocessed -dD -E "$1" | egrep -v '# [[:digit:]]' | sed -r 's/APPKIT_EXTERN/EXTERN_C/;s/ ?(NS_AVAILABLE(_MAC)?|NS_DEPRECATED_MAC|NS_CLASS_AVAILABLE)\([^)]+\)//;s/#pragma mark.*//;s/NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE//;s/NS_RETURNS_INNER_POINTER//;s/NS_FORMAT_FUNCTION\(([0-9]+), ?([0-9]+)\)//'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user