{"id":24870926,"url":"https://github.com/exein-io/icedragon","last_synced_at":"2026-05-06T20:36:02.351Z","repository":{"id":259216698,"uuid":"876382170","full_name":"exein-io/icedragon","owner":"exein-io","description":"Linux cross-compilation suite for building portable software","archived":false,"fork":false,"pushed_at":"2025-11-05T10:01:53.000Z","size":145,"stargazers_count":2,"open_issues_count":4,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-05T15:52:17.706Z","etag":null,"topics":["cross-compiler","gentoo","linux","llvm","musl","musl-libc","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exein-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-21T21:54:42.000Z","updated_at":"2025-07-03T04:34:30.000Z","dependencies_parsed_at":"2025-02-15T09:18:05.420Z","dependency_job_id":"d2e52607-95fa-4e3a-9d20-4944581fadea","html_url":"https://github.com/exein-io/icedragon","commit_stats":null,"previous_names":["exein-io/cross-llvm","exein-io/icedragon"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/exein-io/icedragon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exein-io%2Ficedragon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exein-io%2Ficedragon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exein-io%2Ficedragon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exein-io%2Ficedragon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exein-io","download_url":"https://codeload.github.com/exein-io/icedragon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exein-io%2Ficedragon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32711517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T19:35:05.142Z","status":"ssl_error","status_checked_at":"2026-05-06T19:35:03.996Z","response_time":117,"last_error":"SSL_read: 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":["cross-compiler","gentoo","linux","llvm","musl","musl-libc","rust"],"created_at":"2025-02-01T04:17:33.698Z","updated_at":"2026-05-06T20:36:02.337Z","avatar_url":"https://github.com/exein-io.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# icedragon\n\nLinux cross-compilation suite for building portable, statically linked\nsoftware.\n\nCurrently supports the following languages:\n\n* C\n* C++\n* Rust\n\nIcedragon consists of two parts:\n\n* Container images, with a \"zero-setup\" set of toolchains and essential\n  libraries.\n* CLI, which leverages the container images, but feels like using a regular\n  compiler on your host.\n\nIt's based on:\n\n* [Gentoo] ([musl-llvm] flavor), which is used as the base system for the\n  containers.\n  * [crossdev], which manages [Gentoo] sysroots for different\n    architectures.\n* [musl] libc, which, unlike [glibc], can be statically linked\n  without imposing any runtime dependencies.\n* [LLVM] compiler infrastructure.\n* [rustup], which is used for managing [Rust] toolchains.\n\n## How is icedragon different from Alpine Linux?\n\nLet's start with similarities. Both icedragon and [Alpine] are using\n[musl] as the C standard library. Both can be used to build portable,\nstatically linked binaries.\n\nThe most important difference is that icedragon is not a Linux distribution.\nIt's just [Gentoo] with specific configuration, provided as ready to use\ncontainers. All packaging-related work necessary for icedragon to work is done\nupstream.\n\nThe second difference is that [Alpine] uses [GCC] and [GNU C++ library].\nIcedragon uses [LLVM] and [LLVM C++ library] and doesn't come with [GCC].\n\nThe last difference is strong focus on cross-compilation in icedragon, which\nprovides sysroots and toolchains for foreign architectures out of the box. It\ndoes so thanks to [crossdev], which allows management and installation of\npackages inside sysroots. There is no such tooling on Alpine.\n\n## Featured libraries and tools\n\nIcedragon comes with a set of static libraries and tools which can be\nconsidered \"build essentials\" for the most of C/C++ software on Linux, as well\nas for Rust crates, which don't vendor C dependencies and expect them to be\npresent in the system.\n\n* Compression libraries:\n  * brotli\n  * zstd\n  * zlib\n* Cryptography libraries:\n  * gpgme\n  * OpenSSL\n* JSON\n  * json-c\n* Key-value stores\n  * rocksdb\n* Linux-specific libraries and utilities:\n  * util-linux\n* Network libraries:\n  * c-ares\n  * libcurl\n* Regular expressions:\n  * libpcre2\n* Tools\n  * protoc\n\nWe are open to adding more libraries and tools as long as they have reasonable\nsize.\n\n## GNU extensions\n\nmusl aims to stay compatible with the [POSIX C standard] for the sake of\nportability. [glibc], on the other hand, adds so called [GNU extensions] -\nadditional modules and functions which are not part of the standard. As a\nresult, software making use of GNU extensions doesn't build with musl.\n\nHowever, there are projects which provide standalone, musl-compatible ports of\nvarious GNU extensions:\n\n* [argp-standalone]\n* [error-standalone]\n* [musl-fts]\n\nThey still don't provide 100% compatibility with glibc, but they are good enough\nto make building of most [Gentoo] packages possible.\n\nThese ports can be linked statically and don't issue any `dlopen` calls.\n\nA similar incompatibility exists between [compiler-rt] (the runtime library\nprovided by [LLVM], used in icedragon), and [libgcc] (a similar library\nprovided by [GCC]). [libgcc] comes with extensions, which are not included by\ndefault in [compiler-rt]. It also exports symbols from [libunwind] ([GCC]'s\nunwinder library).\n\nLLVM community addressed that problem by creating [llvm-libgcc] subproject,\nwhich:\n\n* Builds a copy of [compiler-rt] with GNU extensions enabled.\n* Uses [LLVM libunwind], which is compatible with GCC's unwinder library.\n* Links them together, providing a drop-in replacement for [libgcc].\n\nicedragon provides all the GNU extension ports mentioned above.\n\n[Gentoo]: https://www.gentoo.org\n[crossdev]: https://wiki.gentoo.org/wiki/Crossdev\n[musl]: https://musl.libc.org\n[glibc]: https://www.gnu.org/software/libc\n[LLVM]: https://llvm.org\n[rustup]: https://rustup.rs\n[Rust]: https://www.rust-lang.org\n[Alpine]: https://www.alpinelinux.org\n[GCC]: https://gcc.gnu.org\n[GNU C++ library]: https://gcc.gnu.org/onlinedocs/libstdc++\n[LLVM C++ library]: https://libcxx.llvm.org\n[POSIX C library]: https://en.wikipedia.org/wiki/C_POSIX_library\n[GNU extensions]: https://www.gnu.org/software/gnulib/manual/html_node/Glibc-Function-Substitutes.html\n[argp-standalone]: https://github.com/ericonr/argp-standalone\n[error-standalone]: https://hacktivis.me/git/error-standalone\n[musl-fts]: https://github.com/void-linux/musl-fts\n[libgcc]: https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html\n[libunwind]: https://libunwind.nongnu.org/docs.html\n[llvm-libgcc]: https://github.com/llvm/llvm-project/tree/main/llvm-libgcc\n[LLVM libunwind]: https://github.com/llvm/llvm-project/tree/main/libunwind\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexein-io%2Ficedragon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexein-io%2Ficedragon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexein-io%2Ficedragon/lists"}