Commit Graph

132 Commits

Author SHA1 Message Date
Thomas A
973698b8f1 Update "bmalloc" Path 2023-04-26 13:34:26 -07:00
Thomas A
5f47b0aa33 Update WTF Include Path 2023-04-24 09:57:40 -07:00
Thomas A
b9f13c040a Update dylib Files In SDK To Fix Generating JavaScriptCore Assembly 2023-03-11 05:48:27 -08:00
Thomas A
dd92c559ec Update JavaScriptCore SDK Include Path 2023-03-08 08:38:00 -08:00
Thomas A
33e72be050 [Heimdal] Update SDK Path 2023-03-04 23:36:44 -08:00
Thomas A
8bb7f7bdd5 Add xar Submodule. Fix Building. 2023-02-26 16:11:29 -08:00
Thomas A
b6112cb6fa Add Ruby.framework To Developer SDK 2023-02-26 15:23:25 -08:00
Thomas A
07b8cb45eb Add removefile Submodule. Fix Building. 2023-02-19 18:40:29 -08:00
Thomas A
0ed8f0ca6f Add ncurses Submodule. Fix Paths. 2023-02-11 07:08:03 -08:00
Thomas A
6b40ed96fd Add libutil Submodule. Fix libutil Include Path. 2023-02-05 07:33:02 -08:00
Thomas A
892d810ba7 Add libunwind Submodule. Fix libunwind Paths. 2023-02-04 21:00:17 -08:00
Thomas A
e7d6ab7e1e Add libresolv submodule. Fix Paths. 2023-02-02 23:44:08 -08:00
Thomas A
b67319901c Add libiconv submodule. Fix Paths. 2023-02-02 20:58:05 -08:00
Thomas A
86af1529a7 Add libedit submodule. Fix Include Paths. 2023-02-01 22:44:09 -08:00
Thomas A
69f5a5dd0a Add copyfile submodule. Fix building. 2023-01-29 21:15:00 -08:00
Ariel Abreu
cdabb90a83
Add librpcsvc; build missing xdr sources in libinfo 2023-01-02 10:20:31 -05:00
Thomas A
88574f95de Add AuthenticationServices Stubs 2022-12-31 22:57:22 -08:00
Thomas A
5d83dd4699 Fix building for Libinfo 2022-12-08 14:28:44 -08:00
Thomas A
09f42148ee Relocate acm headers. Add acm stubs.
Fixes int-conversion error
2022-11-20 12:30:55 -08:00
Thomas A
126750fabd Add InternationalSupport Stubs 2022-11-13 15:40:01 -08:00
Thomas A
6bbbefebe6 Add .dylib files (symbolic-links) for generate-offlineasm.sh
The script relies on the System libraries existing in the SDK, otherwise, the linker will fail. For some reason, some of these files are ignored by the .gitignore file. I'm not sure why that is the case...

In an official macOS SDK, .tbd (a text-based library stub) files are used instead. However, I wasn't able to figure out if these files can be used on Linux. So for the time being, I'll just symbol-link the .dylib files when needed.
2022-11-02 12:40:54 -07:00
Thomas A
01a2408cf0 Add SDK framework headers for Bom and Photos 2022-09-09 08:26:51 -07:00
CuriousTommy
029d33179b
Implement Support For Generating Header (#1213)
Implemented CMake methods for:
* Deleting the old headers before generating the new headers.
* Updating the "Developer" and "framework-include" headers.
* Generating the private frameworks headers into their proper dedicated folders ("PrivateFrameworks" and "framework-private-include")

Updated multiple frameworks to take advantage of this feature.
2022-09-06 12:14:20 -07:00
Thomas A
da3ac8d67f Merge branch 'master' into darlingserver_relocation_updates 2022-04-30 10:48:20 -07:00
Thomas A
3bf299239d Fix Building libnotify 2022-04-23 15:31:40 -07:00
Thomas A
7d10bb398f Fix AvailabilityVersions Symbol Links 2022-04-21 17:45:39 -07:00
Thomas A
28dc2475f6 Fix building dyld 2022-04-19 08:48:56 -07:00
Thomas A
1888097dd1 Fix Building For Libsystem 2022-04-17 20:49:05 -07:00
Thomas A
0253375bb3 Fix Building Libc 2022-04-10 08:30:32 -07:00
Thomas A
0e42ca3e7a Fix Building libmalloc 2022-04-03 17:05:51 -07:00
Ariel Abreu
49f1f9ba52
Update darlingserver and libkqueue
This commit includes support for Mach port filters in kqueue (via the new kqchan facility in darlingserver).

Additionally, ccache usage can now be disabled via DARLING_NO_CCACHE.
2022-02-10 14:00:31 -05:00
Ariel Abreu
bd13d4edf8
Bring back mldr and start work on darlingserver
The goal of this new branch is to implement Darling entirely in userspace, no LKM necessary.

This first commit re-introduces mldr (a userspace Mach-O loader last used about 4 years ago in 89d6e6ddb1) together with some updates from the Mach-O loading code in the LKM.

This commit also sets up the basis for darlingserver: RPC and process/thread tracking.
2021-12-16 12:00:38 -05:00
Ariel Abreu
7fc8b6d04c
Many improvements for xtrace
The biggest improvement is the ability to log xtrace's output to a separate file for each thread. Jumbled output has been a big reason why xtrace is hard to use with multi-threaded programs, but this provides a nice optional solution to that problem. It doesn't come without its drawbacks, however: because xtrace has to open descriptors for the logfiles, it can affect program behavior, especially if the program sees the descriptors and decides to do something with them (like close them, which some programs do).

xtrace no longer buffers output on the stack (which could lead to stack overflows or truncated output). Actually, it doesn't buffer output at all anymore, which might be an issue (it means more potentially jumbled output when using the normal output method). If turns out to be a signifcant issue, we can re-add buffering in xtrace_log using a per-thread buffer rather than an on-stack one.

The kevent family of syscalls is now properly described! This means that those calls will now print much more useful output.

Also, to work around a stack overflow issue when running within signal handlers, xtrace now overrides the default sigstack with its own larger one. It's not apparent why xtrace is using so much stack space, but it seems like 16KiB is enough for now (rather than the default of 8KiB).

Executing the xtrace command with no arguments now produces a help message describing the various environment variables that can be used to modify xtrace's behavior.

Also, the simple printf family of functions in libsystem_kernel now support various argument sizes.

Finally, there's no reason to call the wrapper for `semaphore_signal_trap` in `bsdthread_terminate` (causing unnecessary xtrace output), so call our implementation directly instead.
2021-11-14 00:52:12 -05:00
Ariel Abreu
464e4f1587
Add some more stubs in some authentication frameworks
This is for the remaining PAM modules
2021-07-07 15:37:10 -04:00
Ariel Abreu
68c043779a
Stub NetFS framework 2021-07-07 15:33:36 -04:00
Ariel Abreu
50ad72b403
Stub ServerInformation framework 2021-07-07 15:32:41 -04:00
Ariel Abreu
ee4f2c17de
Merge remote-tracking branch 'origin/vchroot-abs-symlinks' into pyobjc 2021-07-04 10:49:30 -04:00
Ariel Abreu
b248894547
Many, many fixes/additions for PyObjC
* Fix the Carbon framework to properly reexport the right frameworks
  * Add many missing Carbon-related type definitions
  * A couple of fixes in some submodules (see their commits)
2021-06-28 23:48:24 -04:00
Ariel Abreu
b806f089fe
Add SyncServices stubs 2021-06-28 23:44:29 -04:00
Ariel Abreu
2aa2f32784
Add ScreenSaver stubs 2021-06-28 23:43:11 -04:00
Ariel Abreu
b6808ef1da
Add InputMethodKit stubs 2021-06-28 23:42:04 -04:00
Ariel Abreu
3761b3d7f1
Resolve absolute symlinks relative to the prefix
This requires a change in libelfloader to ensure the interpreter is resolved according to the Linux root and not the prefix.
2021-06-12 09:03:07 -04:00
Ariel Abreu
35534fcaa3
Use Apple's open-source JavaNativeFoundation
Closes #963
2021-05-21 13:58:14 -04:00
Ariel Abreu
ca96b4f108
Update a few submodules 2021-04-30 09:43:54 -04:00
Ariel Abreu
1c3749bf8a
Update libxpc 2021-04-22 23:43:14 -04:00
Ariel Abreu
8e59ab1f02
Add a bunch of stubs 2021-02-26 12:43:16 -05:00
Ariel Abreu
758c43e188
Stub some frameworks and constants
With these in place, Xcode 11's `xcodebuild` is now segfaulting for a change!
2021-02-22 23:11:06 -05:00
Ariel Abreu
05a3f730a1
Stub JavaNativeFoundation and JavaRuntimeSupport 2021-02-17 12:01:45 -05:00
Ariel Abreu
f34b642426
Update XPC header symlink paths 2021-01-07 00:25:02 -05:00
Ariel Abreu
d394cd3127
Get xtrace working again (for multithreaded programs)
We basically have to reimplement locking, memory allocation, and TLS for xtrace directly on top of Linux syscalls because it can't use almost anything external (it can pretty much only use libsystem_kernel).

The one exception is that we use `pthread_key`s from libpthread to make TLS easier to implement. The only side effect that has is that it's one less available key for the application we're tracing to use, but we shouldn't ever see that cause problems (and if we do see it cause problems later on, then we can revise that).
2020-12-11 20:48:19 -05:00