{"id":16073261,"url":"https://github.com/a2flo/standalone_musl","last_synced_at":"2025-03-18T05:31:18.104Z","repository":{"id":245608464,"uuid":"803513877","full_name":"a2flo/standalone_musl","owner":"a2flo","description":"A musl libc fork providing enhanced glibc compatibility and facilitating the creation of \"semi-static\" binaries.","archived":false,"fork":false,"pushed_at":"2025-02-19T17:09:25.000Z","size":5904,"stargazers_count":11,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"standalone_125","last_synced_at":"2025-02-28T07:34:39.821Z","etag":null,"topics":["c","c-plus-plus","glibc","glibc-compatibility","musl-libc","static-library"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/a2flo.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-20T21:41:06.000Z","updated_at":"2025-02-19T17:09:29.000Z","dependencies_parsed_at":"2024-06-23T01:50:10.558Z","dependency_job_id":"a870a912-85ef-483c-9ad8-10f09e914992","html_url":"https://github.com/a2flo/standalone_musl","commit_stats":null,"previous_names":["a2flo/standalone_musl"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2flo%2Fstandalone_musl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2flo%2Fstandalone_musl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2flo%2Fstandalone_musl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2flo%2Fstandalone_musl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a2flo","download_url":"https://codeload.github.com/a2flo/standalone_musl/tar.gz/refs/heads/standalone_125","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243903173,"owners_count":20366436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","c-plus-plus","glibc","glibc-compatibility","musl-libc","static-library"],"created_at":"2024-10-09T08:05:26.403Z","updated_at":"2025-03-18T05:31:18.098Z","avatar_url":"https://github.com/a2flo.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"This repository implements a musl libc fork that provides enhanced glibc\ncompatibility and facilitates the creation of \"semi-static\" binaries.\nThis is currently based on musl v1.2.5 (@0784374d56).\n\n\nGoals:\n * Enable the creation of \"semi-static\" binaries, i.e. statically linked\n   binaries that integrate the dynamic loader, allowing the use of\n   dlopen(), dlsym(), etc. for use cases that require this.\n   E.g. loading graphics drivers for Vulkan, CUDA, OpenXR, etc. support.\n * Provide ABI and API compatibility with glibc, as far as necessary to\n   support the first goal.\n * Dynamic replacement of system library loads by statically linking our\n   own libraries and providing their symbols.\n   E.g. dynamically replacing the load of libgcc_s.so by integrating and\n   providing LLVM's libunwind, libcxxabi and compiler-rt.\n\n\nNon-Goals:\n * Upstreaming: since all of these changes are very invasive and in many\n   ways contrary to what musl is doing, upstreaming any of this is very\n   much out of the question and generally pointless.\n   Note that I will try to keep of with musl development and rebase on\n   top of future release versions.\n\n\nLimitations and other info:\n * GNU indirect function support (\"ifunc\") is not fully supported. There\n   is some very limited support, but this should generally be avoided.\n   System libraries that make use of this can be replaced (see goal #3).\n * Building dynamic binaries is currently broken.\n * semi-static binaries must link these in the specified order:\n   ldso_rcrt1.o crti.o \u003cother-user-objects\u003e crtn.o\n * semi-static binaries must use the entry point _dlstart.\n   Linker option: -e _dlstart\n * semi-static binaries must link with -lc_ldso\n * semi-static binaries must use --whole-archive linking for making\n   integrated libraries and their symbols available to dynamically\n   loaded libraries.\n   Specifically, this needs whole archive linking for:\n   -lc, -lc_ldso and the clang/compiler-rt libclang_rt.builtins.a\n   Additionally, for C++: -lc++ -lc++abi -lunwind\n\n\nStatus:\n * When integrating additional system libraries, this is currently able\n   to load and actually make use of NVIDIA drivers for CUDA and Vulkan,\n   AMD AMDVLK drivers for use with Vulkan, and Mesa RADV drivers for\n   use with Vulkan.\n   Other drivers may also work, but these are the ones I've currently\n   tested. PRs to make other drivers work are welcome :)\n\n\nOn top of musl, this repository also integrates the following libraries\nto enhance and provide additional glibc compatibility:\n  * libgcompat (@7f2d3d5a82): https://git.adelielinux.org/adelie/gcompat\n  * libucontext (@be80075e95): https://github.com/kaniini/libucontext\n  * libbsd (v0.12.2): https://libbsd.freedesktop.org/wiki\n    (arc4random support only)\nPlease check the respective sub-folders for additional licensing terms.\n\n\nNOTE: A full toolchain integrating this will be released soon(tm).\n\n------------------------------------------------------------------------\nOriginal README\n------------------------------------------------------------------------\n\n    musl libc\n\nmusl, pronounced like the word \"mussel\", is an MIT-licensed\nimplementation of the standard C library targetting the Linux syscall\nAPI, suitable for use in a wide range of deployment environments. musl\noffers efficient static and dynamic linking support, lightweight code\nand low runtime overhead, strong fail-safe guarantees under correct\nusage, and correctness in the sense of standards conformance and\nsafety. musl is built on the principle that these goals are best\nachieved through simple code that is easy to understand and maintain.\n\nThe 1.1 release series for musl features coverage for all interfaces\ndefined in ISO C99 and POSIX 2008 base, along with a number of\nnon-standardized interfaces for compatibility with Linux, BSD, and\nglibc functionality.\n\nFor basic installation instructions, see the included INSTALL file.\nInformation on full musl-targeted compiler toolchains, system\nbootstrapping, and Linux distributions built on musl can be found on\nthe project website:\n\n    http://www.musl-libc.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa2flo%2Fstandalone_musl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa2flo%2Fstandalone_musl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa2flo%2Fstandalone_musl/lists"}