{"id":29860526,"url":"https://github.com/userdocs/musl-cross-make-test","last_synced_at":"2026-02-15T19:31:22.977Z","repository":{"id":306308742,"uuid":"1025382761","full_name":"userdocs/musl-cross-make-test","owner":"userdocs","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-27T19:51:56.000Z","size":249,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-28T06:41:02.828Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/userdocs.png","metadata":{"files":{"readme":"README.md","changelog":"changes-to-mcm.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT","agents":null,"dco":null,"cla":null}},"created_at":"2025-07-24T07:09:31.000Z","updated_at":"2025-10-22T04:52:37.000Z","dependencies_parsed_at":"2025-07-25T00:00:06.590Z","dependency_job_id":"c9393aa7-c535-4578-97fe-9aba6426fa29","html_url":"https://github.com/userdocs/musl-cross-make-test","commit_stats":null,"previous_names":["userdocs/musl-cross-make-test"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/userdocs/musl-cross-make-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fmusl-cross-make-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fmusl-cross-make-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fmusl-cross-make-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fmusl-cross-make-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/userdocs","download_url":"https://codeload.github.com/userdocs/musl-cross-make-test/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fmusl-cross-make-test/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29487449,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-07-30T03:42:39.855Z","updated_at":"2026-02-15T19:31:22.959Z","avatar_url":"https://github.com/userdocs.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"musl-cross-make\n===============\n\nThis is the second generation of musl-cross-make, a fast, simple,\nbut advanced makefile-based approach for producing musl-targeting\ncross compilers. Features include:\n\n- Single-stage GCC build, used to build both musl libc and its own\n  shared target libs depending on libc.\n\n- No hard-coded absolute paths; resulting cross compilers can be\n  copied/moved anywhere.\n\n- Ability to build multiple cross compilers for different targets\n  using a single set of patched source trees.\n\n- Nothing is installed until running `make install`, and the\n  installation location can be chosen at install time.\n\n- Automatic download of source packages, including GCC prerequisites\n  (GMP, MPC, MPFR), using https and checking hashes.\n\n- Automatic patching with canonical musl support patches and patches\n  which provide bug fixes and features musl depends on for some arch\n  targets.\n\n\nUsage\n-----\n\nThe build system can be configured by providing a `config.mak` file in\nthe top-level directory. The only mandatory variable is `TARGET`, which\nshould contain a gcc target tuple (such as `i486-linux-musl`), but many\nmore options are available. See the provided `config.mak.dist` and\n`presets/*` for examples.\n\nTo compile, run `make`. To install to `$(OUTPUT)`, run `make install`.\n\nThe default value for `$(OUTPUT)` is output; after installing here you\ncan move the cross compiler toolchain to another location as desired.\n\n\n\nSupported `TARGET`s\n-------------------\n\nThe following is a non-exhaustive list of `$(TARGET)` tuples that are\nbelieved to work:\n\n- `aarch64[_be]-linux-musl`\n- `arm[eb]-linux-musleabi[hf]`\n- `i*86-linux-musl`\n- `microblaze[el]-linux-musl`\n- `mips-linux-musl`\n- `mips[el]-linux-musl[sf]`\n- `mips64[el]-linux-musl[n32][sf]`\n- `powerpc-linux-musl[sf]`\n- `powerpc64[le]-linux-musl`\n- `riscv64-linux-musl`\n- `s390x-linux-musl`\n- `sh*[eb]-linux-musl[fdpic][sf]`\n- `x86_64-linux-musl[x32]`\n\n\n\nHow it works\n------------\n\nThe current musl-cross-make is factored into two layers:\n\n1. The top-level Makefile which is responsible for downloading,\n   verifying, extracting, and patching sources, and for setting up a\n   build directory, and\n\n2. Litecross, the cross compiler build system, which is itself a\n   Makefile symlinked into the build directory.\n\nMost of the real magic takes place in litecross. It begins by setting\nup symlinks to all the source trees provided to it by the caller, then\nbuilds a combined `src_toolchain` directory of symlinks that combines\nthe contents of the top-level gcc and binutils source trees and\nsymlinks to gmp, mpc, and mpfr. One configured invocation them\nconfigures all the GNU toolchain components together in a manner that\ndoes not require any of them to be installed in order for the others\nto use them.\n\nRather than building the whole toolchain tree at once, though,\nlitecross starts by building just the gcc directory and its\nprerequisites, to get an `xgcc` that can be used to configure musl. It\nthen configures musl, installs musl's headers to a staging \"build\nsysroot\", and builds `libgcc.a` using those headers. At this point it\nhas all the prerequisites to build musl `libc.a` and `libc.so`, which the\nrest of the gcc target-libs depend on; once they are built, the full\ntoolchain `make all` can proceed.\n\nLitecross does not actually depend on the musl-cross-make top-level\nbuild system; it can be used with any pre-extracted, properly patched\nset of source trees.\n\n\nProject scope and goals\n-----------------------\n\nThe primary goals of this project are to:\n\n- Provide canonical musl support patches for GCC and binutils.\n\n- Serve as a canonical example of how GCC should be built to target\n  musl.\n\n- Streamline the production of musl-targeting cross compilers so that\n  musl users can easily produce musl-linked applications or bootstrap\n  new systems using musl.\n\n- Assist musl and toolchain developers in development and testing.\n\nWhile the patches applied to GCC and binutils are all intended not to\nbreak non-musl configurations, musl-cross-make itself is specific to\nmusl. Changes to add support for exotic target variants outside of\nwhat upstream musl supports are probably out-of-scope unless they are\nnon-invasive. Changes to fix issues building musl-cross-make to run on\nnon-Linux systems are well within scope as long as they are clean.\n\nMost importantly, this is a side project to benefit musl and its\nusers. It's not intended to be something high-maintenance or to divert\ndevelopment effort away from musl itself.\n\n\nPatches included\n----------------\n\nIn addition to canonical musl support patches for GCC,\nmusl-cross-make's patch set provides:\n\n- Static-linked PIE support\n- Addition of `--enable-default-pie`\n- Fixes for SH-specific bugs and bitrot in GCC\n- Support for J2 Core CPU target in GCC \u0026 binutils\n- SH/FDPIC ABI support\n\nMost of these patches are integrated in gcc trunk/binutils master.\nThey should also be usable with Gregor's original musl-cross or other\nbuild systems, if desired.\n\nSome functionality (SH/FDPIC, and support for J2 specific features) is\npresently only available with gcc 5.2.0 and later, and binutils 2.25.1\nand later.\n\nLicense\n-------\n\nThe musl-cross-make build tools and documentation are licensed under\nthe MIT/Expat license as found in the `LICENSE` file.\n\nNote that this license does not cover the patches (`patches/`) or\nresulting binary artifacts.\n\nEach patch (`patches/`) is distributed under the terms of the license\nof the upstream project to which it is applied.\n\nSimilarly, any resulting binary artifacts produced using this build\ntooling retain the original licensing from the upstream projects.  The\nauthors of musl-cross-make do not make any additional copyright claims\nto these artifacts.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution submitted for\ninclusion in musl-cross-make by you shall be licensed as above without\nany additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserdocs%2Fmusl-cross-make-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuserdocs%2Fmusl-cross-make-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserdocs%2Fmusl-cross-make-test/lists"}