Ports: Bump Zig version to 0.11.0-dev.4003+c6aa29b6f

This commit fixes the build for LLVM 16 now that the toolchain has been
updated, and updates us to the latest available Zig commit.

The main patch changes are making more symbols available (and exposing
them through std.c.serenity) and working around new Zig build
requirements.

Co-Authored-By: Andre Herbst <moormaster@gmx.net>
This commit is contained in:
sin-ack 2023-07-17 00:51:29 +00:00 committed by Linus Groh
parent 92b56ded02
commit 752d9d7c03
22 changed files with 814 additions and 508 deletions

View file

@ -4,312 +4,312 @@ Please make sure to keep this list up to date when adding and updating ports. :^
This list is also available at [ports.serenityos.net](https://ports.serenityos.net)
| Port | Name | Version | Website |
|-----------------------------------------------------|-----------------------------------------------------------------|--------------------------|--------------------------------------------------------------------------------|
| [`aclock`](aclock/) | aclock | 2.3 | https://github.com/tenox7/aclock |
| [`acpica-tools`](acpica-tools/) | ACPI Component Architecture Project Userspace Utilities | 20220331 | https://acpica.org/downloads |
| [`alpine`](alpine/) | Alpine Email Client | 2.26 | https://alpineapp.email |
| [`angband`](angband/) | Angband | 4.2.4 | https://rephial.org |
| [`Another-World`](Another-World/) | Another World Bytecode Interpreter | | https://github.com/fabiensanglard/Another-World-Bytecode-Interpreter |
| [`aria2`](aria2/) | aria2 | 1.36.0 | https://aria2.github.io |
| [`awk`](awk/) | The One True Awk | 20220122 | https://github.com/onetrueawk/awk |
| [`backward-cpp`](backward-cpp/) | Backward-cpp | 65a769f | https://github.com/bombela/backward-cpp |
| [`bash`](bash/) | GNU Bash | 5.2.15 | https://www.gnu.org/software/bash/ |
| [`bass`](bass/) | Beneath a Steel Sky | cd-1.2 | https://www.scummvm.org/games |
| [`bc`](bc/) | bc | 6.5.0 | https://github.com/gavinhoward/bc |
| [`bdwgc`](bdwgc/) | Boehm-Demers-Weiser Garbage Collector (libgc) | 8.2.2 | https://github.com/ivmai/bdwgc |
| [`binutils`](binutils/) | GNU Binutils | 2.40 | https://www.gnu.org/software/binutils/ |
| [`bison`](bison/) | GNU Bison | 3.8 | https://www.gnu.org/software/bison/ |
| [`bochs`](bochs/) | Bochs x86 PC emulator | 2.7 | https://sourceforge.net/projects/bochs/ |
| [`boost`](boost/) | Boost C++ libraries | 1.80.0 | https://www.boost.org/ |
| [`brogue`](brogue/) | BrogueCE | 1.11.1 | https://github.com/tmewett/BrogueCE |
| [`brotli`](brotli/) | Brotli | 1.0.9 | https://github.com/google/brotli |
| [`byacc`](byacc/) | Berkeley Yacc | 20220128 | https://invisible-island.net/byacc/byacc.html |
| [`bzip2`](bzip2/) | bzip2 | 1.0.8 | https://sourceware.org/bzip2/ |
| [`bzip3`](bzip3/) | bzip3 | 1.2.2 | https://github.com/kspalaiologos/bzip3 |
| [`c-ares`](c-ares/) | c-ares | 1.19.0 | https://c-ares.org |
| [`c-ray`](c-ray/) | C-Ray | 8f30eb9 | https://github.com/vkoskiv/c-ray |
| [`ca-certificates`](ca-certificates/) | Mozilla CA certificate store | 2022-04-26 | https://curl.se/docs/caextract.html |
| [`carl`](carl/) | Crypto Ancienne Resource Loader | 1.5 | https://github.com/classilla/cryanc |
| [`cavestory`](cavestory/) | Cave Story | 2.6.5-1 | https://github.com/nxengine/nxengine-evo |
| [`cbonsai`](cbonsai/) | cbonsai | 1.3.1 | https://gitlab.com/jallbrit/cbonsai |
| [`ccache`](ccache/) | ccache | 4.6.3 | https://ccache.dev/ |
| [`cfunge`](cfunge/) | cfunge | 2bc4fb2 | https://github.com/VorpalBlade/cfunge/ |
| [`chester`](chester/) | Chester Gameboy Emulator | | https://github.com/veikkos/chester |
| [`chocolate-doom`](chocolate-doom/) | Chocolate Doom | 3.0.1 | https://www.chocolate-doom.org/ |
| [`citron`](citron/) | Citron Programming Language | 0.0.9.3 | https://github.com/alimpfard/citron |
| [`ClassiCube`](ClassiCube/) | ClassiCube | 1.3.3 | https://github.com/UnknownShadow200/ClassiCube |
| [`cmake`](cmake/) | CMake | 3.26.4 | https://cmake.org/ |
| [`cmatrix`](cmatrix/) | cmatrix | 3112b12 | https://github.com/abishekvashok/cmatrix |
| [`composer`](composer/) | Composer | 2.4.3 | https://getcomposer.org/ |
| [`coreutils`](coreutils/) | GNU core utilities | 9.1 | https://www.gnu.org/software/coreutils/ |
| [`cpio`](cpio/) | GNU cpio archive utility | 2.13 | https://www.gnu.org/software/cpio/ |
| [`curl`](curl/) | curl | 8.0.1 | https://curl.se/ |
| [`dash`](dash/) | DASH | 0.5.10.2 | http://gondor.apana.org.au/~herbert/dash |
| [`deutex`](deutex/) | DeuTex | 5.2.2 | https://github.com/Doom-Utils/deutex |
| [`dialog`](dialog/) | Dialog | 1.3-20220526 | https://invisible-island.net/dialog/ |
| [`diffutils`](diffutils/) | GNU Diffutils | 3.8 | https://www.gnu.org/software/diffutils/ |
| [`dmidecode`](dmidecode/) | dmidecode | 3.5 | https://github.com/mirror/dmidecode |
| [`doom`](doom/) | DOOM | | https://github.com/SerenityOS/SerenityDOOM |
| [`dos2unix`](dos2unix/) | dos2unix | 7.5.0 | https://waterlan.home.xs4all.nl/dos2unix.html |
| [`dosbox-staging`](dosbox-staging/) | DOSBox Staging | 0.77.1 | https://dosbox-staging.github.io/ |
| [`dosfstools`](dosfstools/) | dosfstools utility suite | 4.2 | https://github.com/dosfstools/dosfstools/ |
| [`double-conversion`](double-conversion/) | double-conversion | 3.2.1 | https://github.com/google/double-conversion |
| [`drascula`](drascula/) | Dráscula: The Vampire Strikes Back | 1.0 | https://www.scummvm.org/games/#games-drascula |
| [`dreamweb`](dreamweb/) | DreamWeb | 1.1 | https://www.scummvm.org/games/#games-dreamweb |
| [`dropbear`](dropbear/) | Dropbear SSH | 2022.82 | https://dropbear.nl/mirror/dropbear.html |
| [`dtc`](dtc/) | Device Tree Compiler | 1.7.0 | https://github.com/dgibson/dtc |
| [`dungeonrush`](dungeonrush/) | DungeonRush | 1.1-beta | https://github.com/Rapiz1/DungeonRush |
| [`e2fsprogs`](e2fsprogs/) | e2fsprogs | 1.46.5 | http://e2fsprogs.sourceforge.net/ |
| [`ed`](ed/) | GNU ed | 1.18 | https://www.gnu.org/software/ed/ |
| [`edid-decode`](edid-decode/) | edid-decode | 20220315.cb74358c2896 | https://git.linuxtv.org/edid-decode |
| [`editline`](editline/) | editline | 1.17.1 | https://github.com/troglobit/editline |
| [`emu2`](emu2/) | emu2 DOS emulator | 2021.01 | https://github.com/dmsc/emu2 |
| [`epsilon`](epsilon/) | graphical calculator simulator | 15.5.0 | https://github.com/numworks/epsilon |
| [`expat`](expat/) | Expat XML parser | 2.5.0 | https://libexpat.github.io/ |
| [`ffmpeg`](ffmpeg/) | ffmpeg | 5.0 | https://ffmpeg.org |
| [`figlet`](figlet/) | FIGlet | 2.2.5 | http://www.figlet.org/ |
| [`file`](file/) | file (determine file type) | 5.44 | https://www.darwinsys.com/file/ |
| [`findutils`](findutils/) | GNU findutils | 4.9.0 | https://www.gnu.org/software/findutils/ |
| [`fio`](fio/) | fio - Flexible I/O tester | 3.33 | https://fio.readthedocs.io/en/latest/ |
| [`flac`](flac/) | Free Lossless Audio Codec | 1.4.2 | https://xiph.org/flac/ |
| [`flatbuffers`](flatbuffers/) | Flatbuffers | 2.0.0 | https://github.com/google/flatbuffers |
| [`flex`](flex/) | flex | 2.6.4 | https://github.com/westes/flex |
| [`fontconfig`](fontconfig/) | Fontconfig | 2.14.0 | https://www.freedesktop.org/wiki/Software/fontconfig/ |
| [`fotaq`](fotaq/) | Flight of the Amazon Queen | 1.0 | https://www.scummvm.org/games/#games-queen |
| [`freeciv`](freeciv/) | Freeciv | 3.0.0-beta2 | http://freeciv.org/ |
| [`freedink`](freedink/) | FreeDink | 109.6 | https://www.gnu.org/software/freedink/ |
| [`freetype`](freetype/) | FreeType | 2.13.0 | https://www.freetype.org/ |
| [`frotz`](frotz/) | Frotz | 2.54 | https://gitlab.com/DavidGriffith/frotz |
| [`gawk`](gawk/) | GNU awk | 5.2.1 | https://www.gnu.org/software/gawk/ |
| [`gcc`](gcc/) | GNU Compiler Collection | 13.1.0 | https://gcc.gnu.org/ |
| [`gdb`](gdb/) | GNU Project Debugger | 11.2 | https://sourceware.org/gdb |
| [`gemrb`](gemrb/) | GemRB | 0.9.1 | https://gemrb.org/ |
| [`genemu`](genemu/) | Genesis / MegaDrive Emulator | e39f690 | https://github.com/rasky/genemu |
| [`genext2fs`](genext2fs/) | genext2fs | 1.5.0 | https://github.com/bestouff/genext2fs |
| [`gettext`](gettext/) | GNU gettext | 0.21.1 | https://www.gnu.org/software/gettext/ |
| [`git`](git/) | Git | 2.40.0 | https://git-scm.com/ |
| [`glib`](glib/) | GLib | 2.76.1 | https://wiki.gnome.org/Projects/GLib |
| [`glm`](glm/) | OpenGL Mathematics (GLM) | 0.9.9.8 | https://github.com/g-truc/glm |
| [`gltron`](gltron/) | GLTron | 0.70 | http://gltron.org |
| [`glu`](glu/) | Mesa GLU | 9.0.2 | https://gitlab.freedesktop.org/mesa/glu |
| [`gmp`](gmp/) | GNU Multiple Precision Arithmetic Library (GMP) | 6.2.1 | https://gmplib.org/ |
| [`gnuapl`](gnuapl/) | GNU APL | 1.8 | https://www.gnu.org/software/apl/ |
| [`gnucobol`](gnucobol/) | GnuCOBOL | 3.1.2 | https://gnucobol.sourceforge.io/ |
| [`gnupg`](gnupg/) | GnuPG | 2.3.0 | https://gnupg.org/software/index.html |
| [`gnuplot`](gnuplot/) | Gnuplot | 5.2.8 | http://www.gnuplot.info/ |
| [`gperf`](gperf/) | GNU gperf | 3.1 | https://www.gnu.org/software/gperf/ |
| [`grep`](grep/) | GNU Grep | 3.10 | https://www.gnu.org/software/grep/ |
| [`grepcidr`](grepcidr/) | grepcidr | 2.0 | http://www.pc-tools.net/unix/grepcidr/ |
| [`griffon`](griffon/) | The Griffon Legend | 1.0 | https://www.scummvm.org/games/#games-griffon |
| [`gsl`](gsl/) | GNU Scientific Library | 2.7.1 | https://www.gnu.org/software/gsl/ |
| [`guile`](guile/) | The GNU guile programming language | 3.0.8 | https://www.gnu.org/software/guile/ |
| [`gzip`](gzip/) | GNU gzip | 1.12 | https://www.gnu.org/software/gzip/ |
| [`halflife`](halflife/) | Half-Life | 2022.12.26 | https://github.com/FWGS/hlsdk-portable |
| [`harfbuzz`](harfbuzz/) | HarfBuzz | 4.3.0 | https://github.com/harfbuzz/harfbuzz |
| [`hatari`](hatari/) | Atari ST/STE/TT/Falcon emulator | 2.4.0-devel | https://hatari.tuxfamily.org/ |
| [`hexedit`](hexedit/) | A console-based hex editor | 1.6 | https://github.com/pixel/hexedit |
| [`imagemagick`](imagemagick/) | ImageMagick | 7.1.1-5 | https://imagemagick.org |
| [`imgcat`](imgcat/) | imgcat | 2.5.1 | https://github.com/eddieantonio/imgcat |
| [`indent`](indent/) | GNU indent | 2.2.11 | https://www.gnu.org/software/indent/ |
| [`isl`](isl/) | Integer Set Library | 0.24 | https://libisl.sourceforge.io/ |
| [`ja2`](ja2/) | Jagged Alliance 2 Stracciatella | 0.15.x | https://github.com/safarp/ja2-stracciatella/tree/0.15.x |
| [`jakt`](jakt/) | Jakt Programming Language | | https://github.com/SerenityOS/jakt |
| [`jdupes`](jdupes/) | jdupes, an enhanced fork of 'fdupes' | 1.26.1 | https://github.com/jbruchon/jdupes |
| [`jfduke3d`](jfduke3d/) | JonoF's Duke Nukem 3D Port | 41cd46b | https://github.com/jonof/jfduke3d |
| [`joe`](joe/) | joe's own editor | 4.6 | https://joe-editor.sourceforge.io/ |
| [`jot`](jot/) | jot (OpenBSD) | 6.6 | https://github.com/ibara/libpuffy |
| [`jq`](jq/) | jq | 1.6 | https://stedolan.github.io/jq/ |
| [`kakoune`](kakoune/) | Modal text editor | 24d6072 | https://github.com/mawww/kakoune |
| [`klong`](klong/) | Klong | 20220315 | https://t3x.org/klong/ |
| [`less`](less/) | less | 590 | https://www.greenwoodsoftware.com/less/ |
| [`libarchive`](libarchive/) | libarchive | 3.6.1 | https://libarchive.org/ |
| [`libassuan`](libassuan/) | libassuan | 2.5.5 | https://gnupg.org/software/libassuan/index.html |
| [`libatomic_ops`](libatomic_ops/) | libatomic\_ops | 7.6.12 | https://www.hboehm.info/gc/ |
| [`libexpat`](libexpat/) | Expat | 2.4.8 | https://libexpat.github.io/ |
| [`libffi`](libffi/) | libffi | 3.4.2 | https://www.sourceware.org/libffi/ |
| [`libfftw3f`](libfftw3f/) | Fastest Fourier Transform in the West (single precision) | 3.3.10 | https://www.fftw.org/ |
| [`libgcrypt`](libgcrypt/) | libgcrypt | 1.10.1 | https://gnupg.org/software/libgcrypt/index.html |
| [`libgd`](libgd/) | libgd | 2.3.3 | https://libgd.github.io/ |
| [`libgpg-error`](libgpg-error/) | libgpg-error | 1.45 | https://gnupg.org/software/libgpg-error/index.html |
| [`libiconv`](libiconv/) | GNU libiconv | 1.17 | https://www.gnu.org/software/libiconv/ |
| [`libicu`](libicu/) | ICU | 69.1 | http://site.icu-project.org/ |
| [`libjodycode`](libjodycode/) | libjodycode | 3.1 | https://github.com/jbruchon/libjodycode |
| [`libjpeg`](libjpeg/) | libjpeg | 9e | https://ijg.org/ |
| [`libksba`](libksba/) | libksba | 1.5.1 | https://gnupg.org/software/libksba/index.html |
| [`libmad`](libmad/) | libmad | 0.15.1b | https://www.underbit.com/products/mad/ |
| [`libmikmod`](libmikmod/) | libmikmod | 3.3.11.1 | http://mikmod.sourceforge.net/ |
| [`libmodplug`](libmodplug/) | libmodplug | 0.8.9.0 | http://modplug-xmms.sourceforge.net/ |
| [`libmpeg2`](libmpeg2/) | libmpeg2 | 0.5.1 | https://libmpeg2.sourceforge.io/ |
| [`libmpg123`](libmpg123/) | libmpg123 | 1.29.3 | https://www.mpg123.de/ |
| [`libogg`](libogg/) | libogg | 1.3.5 | https://github.com/xiph/ogg |
| [`liboggz`](liboggz/) | liboggz | 1.1.1 | https://www.xiph.org/oggz/ |
| [`libopenal`](libopenal/) | OpenAL soft | 1.21.1 | https://openal-soft.org/ |
| [`libopus`](libopus/) | libopus | 1.3.1 | hhttps://opus-codec.org/ |
| [`libphysfs`](libphysfs/) | PhysicsFS | 3.0.2 | https://icculus.org/physfs/ |
| [`libpng`](libpng/) | libpng | 1.6.39 | https://libpng.org/ |
| [`libpuffy`](libpuffy/) | libpuffy | 1.0 | https://github.com/ibara/libpuffy |
| [`libsamplerate`](libsamplerate/) | libsamplerate | 0.2.2 | https://libsndfile.github.io/libsamplerate/ |
| [`libsixel`](libsixel/) | libsixel | 1.8.6 | https://github.com/saitoha/libsixel |
| [`libslirp`](libslirp/) | libslirp | 4.7.0 | https://gitlab.freedesktop.org/slirp/libslirp |
| [`libsodium`](libsodium/) | libsodium | 1.0.18 | https://doc.libsodium.org/ |
| [`libssh2`](libssh2/) | libssh2 | 1.10.0 | https://www.libssh2.org/ |
| [`libtheora`](libtheora/) | libtheora | 1.1.1 | https://www.theora.org/ |
| [`libtiff`](libtiff/) | libtiff | 4.5.0 | http://www.libtiff.org/ |
| [`libtool`](libtool/) | libtool | 2.4.7 | https://www.gnu.org/software/libtool/ |
| [`libunistring`](libunistring/) | libunistring | 1.0 | https://www.gnu.org/software/libunistring/ |
| [`libuuid`](libuuid/) | libuuid (from util-linux) | 2.38 | https://github.com/karelzak/util-linux/tree/master/libuuid |
| [`libuv`](libuv/) | libuv | 1.44.1 | https://github.com/libuv/libuv |
| [`libvorbis`](libvorbis/) | libvorbis | 1.3.7 | https://github.com/xiph/vorbis |
| [`libxml2`](libxml2/) | libxml2 | 2.9.14 | http://www.xmlsoft.org/ |
| [`libyaml`](libyaml/) | libyaml | 0.2.5 | https://pyyaml.org/wiki/LibYAML |
| [`libzip`](libzip/) | libzip | 1.8.0 | https://libzip.org/ |
| [`links`](links/) | Links web browser | 2.26 | http://links.twibright.com/ |
| [`lite-xl`](lite-xl/) | Lite-XL | 2.1.0 | https://lite-xl.com/ |
| [`llvm`](llvm/) | LLVM | 16.0.6 | https://llvm.org/ |
| [`lowdown`](lowdown/) | lowdown | 1.0.2 | https://kristaps.bsd.lv/lowdown/ |
| [`lrzip`](lrzip/) | lrzip | 0.651 | https://github.com/ckolivas/lrzip |
| [`lua`](lua/) | Lua | 5.4.4 | https://www.lua.org/ |
| [`luajit`](luajit/) | LuaJIT | 2.1.0-beta3 | https://luajit.org/luajit.html |
| [`luarocks`](luarocks/) | LuaRocks | 3.8.0 | https://luarocks.org/ |
| [`lure`](lure/) | Lure of the Temptress | 1.1 | https://www.scummvm.org/games/#games-lure |
| [`lynx`](lynx/) | Lynx web browser | 2.8.9rel.1 | https://lynx.invisible-island.net/ |
| [`lz4`](lz4/) | lz4 - Extremely Fast Compression algorithm | 1.9.4 | https://github.com/lz4/lz4 |
| [`lzo`](lzo/) | LZO lossless data compression algorithm | 2.10 | https://www.oberhumer.com/opensource/lzo/ |
| [`lzop`](lzop/) | LZO lossless data compression utility | 1.04 | https://www.lzop.org/ |
| [`m4`](m4/) | GNU M4 | 1.4.19 | https://www.gnu.org/software/m4/ |
| [`make`](make/) | GNU make | 4.4.1 | https://www.gnu.org/software/make/ |
| [`mandoc`](mandoc/) | mandoc | 1.14.5 | https://mandoc.bsd.lv/ |
| [`mawk`](mawk/) | mawk | 1.3.4-20200120 | https://invisible-island.net/mawk/ |
| [`mbedtls`](mbedtls/) | Mbed TLS | 3.1.0 | https://tls.mbed.org/ |
| [`mc`](mc/) | Midnight Commander | 4.8.29 | https://midnight-commander.org/ |
| [`md4c`](md4c/) | Markdown for C | 0.4.8 | https://github.com/mity/md4c |
| [`mednafen`](mednafen/) | Mednafen (My Emulator Doesn't Need A Frickin' Excellent Name) | 1.31.0-UNSTABLE | https://mednafen.github.io/ |
| [`mgba`](mgba/) | Game Boy, Game Boy Color and Game Boy Advance emulator | 0.9.3 | https://mgba.io/ |
| [`milkytracker`](milkytracker/) | milkytracker | 1.03.00 | https://github.com/milkytracker/MilkyTracker |
| [`mold`](mold/) | A Modern Linker | 1.5.1 | https://github.com/rui314/mold |
| [`mpc`](mpc/) | GNU Multiple Precision Complex Library (MPC) | 1.2.1 | http://www.multiprecision.org/mpc/ |
| [`mpfr`](mpfr/) | GNU Multiple Precision Floating-Point Reliable Library (MPFR) | 4.1.0 | https://www.mpfr.org/ |
| [`mrsh`](mrsh/) | mrsh | cd3c3a4 | https://mrsh.sh/ |
| [`mruby`](mruby/) | mruby | 3.0.0 | https://mruby.org/ |
| [`mysthous`](mysthous/) | Hi-Res Adventure #1: Mystery House | 1.0 | https://www.scummvm.org/games/#games-hires1 |
| [`nano`](nano/) | GNU nano | 7.2 | https://www.nano-editor.org/ |
| [`nasm`](nasm/) | Netwide Assembler (NASM) | 2.16.01 | https://www.nasm.us/ |
| [`ncdu`](ncdu/) | Ncdu | 1.18.1 | https://dev.yorhel.nl/ncdu |
| [`ncurses`](ncurses/) | ncurses | 6.3 | https://invisible-island.net/ncurses/announce.html |
| [`neofetch`](neofetch/) | neofetch | 7.1.0 | https://github.com/dylanaraps/neofetch |
| [`nesalizer`](nesalizer/) | Nesalizer | 5bb0458 | https://github.com/ulfalizer/nesalizer |
| [`nethack`](nethack/) | nethack | 3.6.7 | https://www.nethack.org/ |
| [`ninja`](ninja/) | Ninja | 1.11.0 | https://ninja-build.org/ |
| [`nippon`](nippon/) | Nippon Safes Inc. | 1.0 | https://www.scummvm.org/games/#games-nippon |
| [`nlohmann-json`](nlohmann-json/) | JSON for Modern C++ | 3.11.2 | https://json.nlohmann.me/ |
| [`npiet`](npiet/) | Piet language interpreter | 1.3f | https://www.bertnase.de/npiet/ |
| [`npth`](npth/) | New GNU Portable Threads Library | 1.6 | https://gnupg.org/software/npth/index.html |
| [`ntbtls`](ntbtls/) | The Not Too Bad TLS Library | 0.2.0 | https://gnupg.org/software/ntbtls/index.html |
| [`nyancat`](nyancat/) | Nyancat | | https://github.com/klange/nyancat |
| [`oksh`](oksh/) | oksh | 7.1 | https://github.com/ibara/oksh |
| [`OpenJDK`](OpenJDK/) | OpenJDK | 17.0.6 | https://openjdk.java.net/ |
| [`openrct2`](openrct2/) | OpenRCT2 | 0.4.4 | https://openrct2.org/ |
| [`openssh`](openssh/) | OpenSSH | 9.0-94eb685 | https://github.com/openssh/openssh-portable |
| [`openssl`](openssl/) | OpenSSL | 1.1.1s | https://www.openssl.org/ |
| [`openttd`](openttd/) | OpenTTD | 12.2 | https://www.openttd.org/ |
| [`openttd-opengfx`](openttd-opengfx/) | OpenGFX graphics for OpenTTD | 7.1 | https://www.openttd.org/ |
| [`openttd-opensfx`](openttd-opensfx/) | OpenSFX audio files for OpenTTD | 1.0.3 | https://www.openttd.org/ |
| [`opentyrian`](opentyrian/) | OpenTyrian | 84b820f | https://github.com/opentyrian/opentyrian |
| [`opentyrian-data`](opentyrian-data/) | OpenTyrian graphics and audio | 1.0.0 | https://camanis.net/tyrian/tyrian21.zip |
| [`opfor`](opfor/) | Half-Life: Opposing Force | 2022.12.26 | https://github.com/FWGS/hlsdk-portable |
| [`optipng`](optipng/) | OptiPNG | 0.7.7 | http://optipng.sourceforge.net/ |
| [`opusfile`](opusfile/) | opusfile | 0.12 | https://opus-codec.org/ |
| [`p7zip`](p7zip/) | p7zip | 17.04 | https://github.com/jinfeihan57/p7zip |
| [`pacman`](pacman/) | Pacman | b6241a3 | https://github.com/ebuc99/pacman |
| [`patch`](patch/) | patch (GNU) | 2.7.6 | https://savannah.gnu.org/projects/patch/ |
| [`pcre`](pcre/) | Perl-compatible Regular Expressions (PCRE) | 8.45 | https://www.pcre.org/ |
| [`pcre2`](pcre2/) | Perl-compatible Regular Expressions (PCRE2) | 10.40 | https://www.pcre.org/ |
| [`pfetch`](pfetch/) | pfetch | a906ff8 | https://github.com/dylanaraps/pfetch/ |
| [`php`](php/) | PHP | 8.1.12 | https://www.php.net/ |
| [`pixman`](pixman/) | pixman | 0.40.0 | http://pixman.org |
| [`pkgconf`](pkgconf/) | pkgconf | 1.8.0 | https://github.com/pkgconf/pkgconf |
| [`poppler`](poppler/) | Poppler is a PDF rendering library | 23.07.0 | https://poppler.freedesktop.org/ |
| [`potrace`](potrace/) | Bitmap tracing utility | 1.16 | https://potrace.sourceforge.net/ |
| [`powdertoy`](powdertoy/) | The Powder Toy | 96.2.350 | https://powdertoy.co.uk/ |
| [`prboom-plus`](prboom-plus/) | PrBoom+ | 2.6.2 | https://prboom-plus.sourceforge.io/ |
| [`printf`](printf/) | printf (OpenBSD) | 6.6 | https://github.com/ibara/libpuffy |
| [`pt2-clone`](pt2-clone/) | ProTracker 2 clone | 1.49 | https://github.com/8bitbubsy/pt2-clone |
| [`pv`](pv/) | Pipe Viewer | 1.6.20 | http://www.ivarch.com/programs/pv.shtml |
| [`python3`](python3/) | Python | 3.11.3 | https://www.python.org/ |
| [`qemu`](qemu/) | QEMU | 8.0.0 | https://qemu.org |
| [`qoi`](qoi/) | Quite OK Image Format for fast, lossless image compression | edb8d7b | https://github.com/phoboslab/qoi |
| [`qt6-qt5compat`](qt6-qt5compat/) | Qt6 Qt5Compat | 6.4.0 | https://doc.qt.io/qt-6/qtcore5-index.html |
| [`qt6-qtbase`](qt6-qtbase/) | Qt6 QtBase | 6.4.0 | https://qt.io |
| [`qt6-serenity`](qt6-serenity/) | QSerenityPlatform | | https://github.com/SerenityPorts/QSerenityPlatform |
| [`quake`](quake/) | Quake | 0.65 | https://github.com/SerenityOS/SerenityQuake |
| [`quake2`](quake2/) | QuakeII | 0.1 | https://github.com/shamazmazum/quake2sdl |
| [`quake3`](quake3/) | QuakeIII | 1.34 | https://github.com/ioquake/ioq3 |
| [`r0`](r0/) | r0 (minimalistic commandline hexadecimal editor) | 0.8 | https://github.com/radareorg/r0 |
| [`radare2`](radare2/) | radare2 reverse engineering framework | 5.7.6 | https://github.com/radareorg/radare2 |
| [`readline`](readline/) | GNU Readline Library | 8.1.2 | https://tiswww.case.edu/php/chet/readline/rltop.html |
| [`RetroArch`](RetroArch/) | RetroArch | 1.12.0 | https://www.retroarch.com |
| [`RISCVEmu`](RISCVEmu/) | A Basic C++ RISC-V Emulator | ad8ad6a | https://github.com/IdanHo/RISCVEmu |
| [`rsync`](rsync/) | rsync | 3.1.3 | https://rsync.samba.org/ |
| [`ruby`](ruby/) | Ruby | 3.2.2 | https://www.ruby-lang.org/ |
| [`rvvm`](rvvm/) | RVVM - The RISC-V Virtual Machine | 0.5 | https://github.com/LekKit/RVVM |
| [`sam`](sam/) | Software Automatic Mouth (SAM) | c86ea39 | https://github.com/vidarh/SAM |
| [`scummvm`](scummvm/) | ScummVM | 2.7.0 | https://www.scummvm.org/ |
| [`sdl12-compat`](sdl12-compat/) | SDL2 compatibility layer for SDL 1.2 games | 1.2.56 | https://github.com/libsdl-org/sdl12-compat/ |
| [`SDL2`](SDL2/) | Simple DirectMedia Layer (SDL2) | 2.24.0 | https://github.com/libsdl-org/SDL |
| [`SDL2-GNUBoy`](SDL2-GNUBoy/) | SDL2 GNUBoy | 1.2.1 | https://github.com/AlexOberhofer/SDL2-GNUBoy |
| [`SDL2_gfx`](SDL2_gfx/) | SDL2\_gfx (Graphics primitives add-on for SDL2) | 1.0.4 | https://sourceforge.net/projects/sdl2gfx/ |
| [`SDL2_image`](SDL2_image/) | SDL2\_image (Image loading add-on for SDL2) | 2.6.2 | https://github.com/libsdl-org/SDL_image |
| [`SDL2_mixer`](SDL2_mixer/) | SDL2\_mixer (Audio mixer add-on for SDL2) | 2.6.2 | https://github.com/libsdl-org/SDL_mixer |
| [`SDL2_net`](SDL2_net/) | SDL2\_net (Network add-on for SDL2) | 2.2.0 | https://github.com/libsdl-org/SDL_net |
| [`SDL2_sound`](SDL2_sound/) | SDL2\_sound (Abstract soundfile decoder add-on for SDL2) | | https://github.com/icculus/SDL_sound |
| [`SDL2_ttf`](SDL2_ttf/) | SDL2\_ttf (TrueType Font add-on for SDL2) | 2.20.1 | https://github.com/libsdl-org/SDL_ttf |
| [`SDL_mixer`](SDL_mixer/) | SDL\_mixer (Audio mixer add-on for SDL 1.2) | 1.2.12 | https://www.libsdl.org/projects/SDL_mixer/release-1.2.html |
| [`SDL_sound`](SDL_sound/) | SDL\_sound (Abstract soundfile decoder add-on for SDL 1.2) | 1.0.3 | https://www.icculus.org/SDL_sound/ |
| [`SDLPoP`](SDLPoP/) | Prince of Persia game | | https://github.com/NagyD/SDLPoP |
| [`sed`](sed/) | GNU sed | 4.9 | https://www.gnu.org/software/sed/ |
| [`serenity-theming`](serenity-theming/) | SerenityOS theming | 103b0ad | https://github.com/SerenityOS/theming |
| [`serious-sam-classic`](serious-sam-classic/) | Serious Sam - The First Encounter | 1.10.4 | https://github.com/tx00100xt/SeriousSamClassic |
| [`sfinx`](sfinx/) | Sfinx | 1.1 | https://www.scummvm.org/games/#games-sfinx |
| [`sl`](sl/) | Steam Locomotive (SL) | | https://github.com/mtoyoda/sl |
| [`soltys`](soltys/) | Soltys | 1.0 | https://www.scummvm.org/games/#games-soltys |
| [`sparsehash`](sparsehash/) | Google's C++ associative containers | 2.0.4 | https://github.com/sparsehash/sparsehash |
| [`speexdsp`](speexdsp/) | Speex audio processing library | 1.2.1 | https://www.speex.org/ |
| [`sqlite`](sqlite/) | SQLite | 3410200 | https://www.sqlite.org/ |
| [`ssmtp`](ssmtp/) | sSMTP is a simple MTA | 2.64-11 | https://wiki.debian.org/sSMTP |
| [`stb`](stb/) | stb single-file public domain libraries for C/C++ | af1a5bc | https://github.com/nothings/stb |
| [`stockfish`](stockfish/) | Stockfish: A free and strong UCI chess engine | 16 | https://github.com/official-stockfish/Stockfish |
| [`stpuzzles`](stpuzzles/) | Simon Tatham's Portable Puzzle Collection | | https://www.chiark.greenend.org.uk/~sgtatham/puzzles/ |
| [`stress-ng`](stress-ng/) | stress-ng | 0.14.03 | https://github.com/ColinIanKing/stress-ng |
| [`Super-Mario`](Super-Mario/) | Super-Mario Clone | | https://github.com/Bennyhwanggggg/Super-Mario-Clone-Cpp |
| [`SuperTuxKart`](SuperTuxKart/) | Super Tux Kart | 1.4 | https://supertuxkart.net/ |
| [`tar`](tar/) | GNU tar | 1.34 | https://www.gnu.org/software/tar/ |
| [`taskwarrior`](taskwarrior/) | TODO list manager | 2.6.2 | https://taskwarrior.org/ |
| [`tcl`](tcl/) | Tcl | 8.6.12 | https://www.tcl-lang.org/ |
| [`termcap`](termcap/) | GNU termcap | 1.3.1 | https://www.gnu.org/software/termutils/ |
| [`thesilversearcher`](thesilversearcher/) | The Silver Searcher: A fast code-searching tool | 2.2.0 | https://github.com/ggreer/the_silver_searcher |
| [`tig`](tig/) | Tig: text-mode interface for Git | 2.5.5 | https://jonas.github.io/tig/ |
| [`timidity`](timidity/) | TiMidity++ | 2.15.0 | http://timidity.sourceforge.net |
| [`tinycc`](tinycc/) | Tiny C Compiler (TinyCC) | dev | https://github.com/TinyCC/tinycc |
| [`tinyscheme`](tinyscheme/) | TinyScheme Interpreter | 1.42 | https://sourceforge.net/projects/tinyscheme/ |
| [`tr`](tr/) | tr (OpenBSD) | 6.7 | https://github.com/ibara/libpuffy |
| [`tree`](tree/) | tree | 2.0.4 | https://github.com/Old-Man-Programmer/tree |
| [`tuxracer`](tuxracer/) | Tux Racer | 0.61 | http://tuxracer.sourceforge.net/ |
| [`vim`](vim/) | Vim | 8.2.4554 | https://www.vim.org/ |
| [`vitetris`](vitetris/) | vitetris | 0.59.1 | https://github.com/vicgeralds/vitetris |
| [`vlang`](vlang/) | V programming language | weekly.2021.31 | https://github.com/vlang/v |
| [`vttest`](vttest/) | vttest | 20220215 | https://invisible-island.net/vttest/ |
| [`VVVVVV`](VVVVVV/) | Terry Cavanagh's VVVVVV | 2.3.6 | https://github.com/TerryCavanagh/VVVVVV/ |
| [`wayland`](wayland/) | Wayland client libraries | 1.21.0 | https://wayland.freedesktop.org/ |
| [`wget`](wget/) | GNU Wget | 1.21.3 | https://www.gnu.org/software/wget/ |
| [`which`](which/) | GNU which | 2.21 | https://www.gnu.org/software/which/ |
| [`wireguard-tools`](wireguard-tools/) | WireGuard Tools | 1.0.20210914 | https://www.wireguard.com/ |
| [`x264`](x264/) | x264 | baee400 | https://www.videolan.org/developers/x264.html |
| [`x265`](x265/) | x265 | 3.5 | https://bitbucket.org/multicoreware/x265_git/wiki/Home |
| [`xash3d-fwgs`](xash3d-fwgs/) | Xash3D FWGS game engine | 2022.12.26 | https://github.com/FWGS/xash3d-fwgs |
| [`xz`](xz/) | xz | 5.2.5 | https://tukaani.org/xz/ |
| [`yasm`](yasm/) | Yasm Modular Assembler | 1.3.0 | https://yasm.tortall.net/ |
| [`zig`](zig/) | Zig programming language | 0.11.0-dev.670+f7fea080b | https://ziglang.org/ |
| [`zlib`](zlib/) | zlib | 1.2.13 | https://www.zlib.net/ |
| [`zsh`](zsh/) | Z Shell (Zsh) | 5.9 | https://www.zsh.org |
| [`zstd`](zstd/) | Zstandard | 1.5.2 | https://facebook.github.io/zstd/ |
| Port | Name | Version | Website |
|-----------------------------------------------------|-----------------------------------------------------------------|---------------------------|--------------------------------------------------------------------------------|
| [`aclock`](aclock/) | aclock | 2.3 | https://github.com/tenox7/aclock |
| [`acpica-tools`](acpica-tools/) | ACPI Component Architecture Project Userspace Utilities | 20220331 | https://acpica.org/downloads |
| [`alpine`](alpine/) | Alpine Email Client | 2.26 | https://alpineapp.email |
| [`angband`](angband/) | Angband | 4.2.4 | https://rephial.org |
| [`Another-World`](Another-World/) | Another World Bytecode Interpreter | | https://github.com/fabiensanglard/Another-World-Bytecode-Interpreter |
| [`aria2`](aria2/) | aria2 | 1.36.0 | https://aria2.github.io |
| [`awk`](awk/) | The One True Awk | 20220122 | https://github.com/onetrueawk/awk |
| [`backward-cpp`](backward-cpp/) | Backward-cpp | 65a769f | https://github.com/bombela/backward-cpp |
| [`bash`](bash/) | GNU Bash | 5.2.15 | https://www.gnu.org/software/bash/ |
| [`bass`](bass/) | Beneath a Steel Sky | cd-1.2 | https://www.scummvm.org/games |
| [`bc`](bc/) | bc | 6.5.0 | https://github.com/gavinhoward/bc |
| [`bdwgc`](bdwgc/) | Boehm-Demers-Weiser Garbage Collector (libgc) | 8.2.2 | https://github.com/ivmai/bdwgc |
| [`binutils`](binutils/) | GNU Binutils | 2.40 | https://www.gnu.org/software/binutils/ |
| [`bison`](bison/) | GNU Bison | 3.8 | https://www.gnu.org/software/bison/ |
| [`bochs`](bochs/) | Bochs x86 PC emulator | 2.7 | https://sourceforge.net/projects/bochs/ |
| [`boost`](boost/) | Boost C++ libraries | 1.80.0 | https://www.boost.org/ |
| [`brogue`](brogue/) | BrogueCE | 1.11.1 | https://github.com/tmewett/BrogueCE |
| [`brotli`](brotli/) | Brotli | 1.0.9 | https://github.com/google/brotli |
| [`byacc`](byacc/) | Berkeley Yacc | 20220128 | https://invisible-island.net/byacc/byacc.html |
| [`bzip2`](bzip2/) | bzip2 | 1.0.8 | https://sourceware.org/bzip2/ |
| [`bzip3`](bzip3/) | bzip3 | 1.2.2 | https://github.com/kspalaiologos/bzip3 |
| [`c-ares`](c-ares/) | c-ares | 1.19.0 | https://c-ares.org |
| [`c-ray`](c-ray/) | C-Ray | 8f30eb9 | https://github.com/vkoskiv/c-ray |
| [`ca-certificates`](ca-certificates/) | Mozilla CA certificate store | 2022-04-26 | https://curl.se/docs/caextract.html |
| [`carl`](carl/) | Crypto Ancienne Resource Loader | 1.5 | https://github.com/classilla/cryanc |
| [`cavestory`](cavestory/) | Cave Story | 2.6.5-1 | https://github.com/nxengine/nxengine-evo |
| [`cbonsai`](cbonsai/) | cbonsai | 1.3.1 | https://gitlab.com/jallbrit/cbonsai |
| [`ccache`](ccache/) | ccache | 4.6.3 | https://ccache.dev/ |
| [`cfunge`](cfunge/) | cfunge | 2bc4fb2 | https://github.com/VorpalBlade/cfunge/ |
| [`chester`](chester/) | Chester Gameboy Emulator | | https://github.com/veikkos/chester |
| [`chocolate-doom`](chocolate-doom/) | Chocolate Doom | 3.0.1 | https://www.chocolate-doom.org/ |
| [`citron`](citron/) | Citron Programming Language | 0.0.9.3 | https://github.com/alimpfard/citron |
| [`ClassiCube`](ClassiCube/) | ClassiCube | 1.3.3 | https://github.com/UnknownShadow200/ClassiCube |
| [`cmake`](cmake/) | CMake | 3.26.4 | https://cmake.org/ |
| [`cmatrix`](cmatrix/) | cmatrix | 3112b12 | https://github.com/abishekvashok/cmatrix |
| [`composer`](composer/) | Composer | 2.4.3 | https://getcomposer.org/ |
| [`coreutils`](coreutils/) | GNU core utilities | 9.1 | https://www.gnu.org/software/coreutils/ |
| [`cpio`](cpio/) | GNU cpio archive utility | 2.13 | https://www.gnu.org/software/cpio/ |
| [`curl`](curl/) | curl | 8.0.1 | https://curl.se/ |
| [`dash`](dash/) | DASH | 0.5.10.2 | http://gondor.apana.org.au/~herbert/dash |
| [`deutex`](deutex/) | DeuTex | 5.2.2 | https://github.com/Doom-Utils/deutex |
| [`dialog`](dialog/) | Dialog | 1.3-20220526 | https://invisible-island.net/dialog/ |
| [`diffutils`](diffutils/) | GNU Diffutils | 3.8 | https://www.gnu.org/software/diffutils/ |
| [`dmidecode`](dmidecode/) | dmidecode | 3.5 | https://github.com/mirror/dmidecode |
| [`doom`](doom/) | DOOM | | https://github.com/SerenityOS/SerenityDOOM |
| [`dos2unix`](dos2unix/) | dos2unix | 7.5.0 | https://waterlan.home.xs4all.nl/dos2unix.html |
| [`dosbox-staging`](dosbox-staging/) | DOSBox Staging | 0.77.1 | https://dosbox-staging.github.io/ |
| [`dosfstools`](dosfstools/) | dosfstools utility suite | 4.2 | https://github.com/dosfstools/dosfstools/ |
| [`double-conversion`](double-conversion/) | double-conversion | 3.2.1 | https://github.com/google/double-conversion |
| [`drascula`](drascula/) | Dráscula: The Vampire Strikes Back | 1.0 | https://www.scummvm.org/games/#games-drascula |
| [`dreamweb`](dreamweb/) | DreamWeb | 1.1 | https://www.scummvm.org/games/#games-dreamweb |
| [`dropbear`](dropbear/) | Dropbear SSH | 2022.82 | https://dropbear.nl/mirror/dropbear.html |
| [`dtc`](dtc/) | Device Tree Compiler | 1.7.0 | https://github.com/dgibson/dtc |
| [`dungeonrush`](dungeonrush/) | DungeonRush | 1.1-beta | https://github.com/Rapiz1/DungeonRush |
| [`e2fsprogs`](e2fsprogs/) | e2fsprogs | 1.46.5 | http://e2fsprogs.sourceforge.net/ |
| [`ed`](ed/) | GNU ed | 1.18 | https://www.gnu.org/software/ed/ |
| [`edid-decode`](edid-decode/) | edid-decode | 20220315.cb74358c2896 | https://git.linuxtv.org/edid-decode |
| [`editline`](editline/) | editline | 1.17.1 | https://github.com/troglobit/editline |
| [`emu2`](emu2/) | emu2 DOS emulator | 2021.01 | https://github.com/dmsc/emu2 |
| [`epsilon`](epsilon/) | graphical calculator simulator | 15.5.0 | https://github.com/numworks/epsilon |
| [`expat`](expat/) | Expat XML parser | 2.5.0 | https://libexpat.github.io/ |
| [`ffmpeg`](ffmpeg/) | ffmpeg | 5.0 | https://ffmpeg.org |
| [`figlet`](figlet/) | FIGlet | 2.2.5 | http://www.figlet.org/ |
| [`file`](file/) | file (determine file type) | 5.44 | https://www.darwinsys.com/file/ |
| [`findutils`](findutils/) | GNU findutils | 4.9.0 | https://www.gnu.org/software/findutils/ |
| [`fio`](fio/) | fio - Flexible I/O tester | 3.33 | https://fio.readthedocs.io/en/latest/ |
| [`flac`](flac/) | Free Lossless Audio Codec | 1.4.2 | https://xiph.org/flac/ |
| [`flatbuffers`](flatbuffers/) | Flatbuffers | 2.0.0 | https://github.com/google/flatbuffers |
| [`flex`](flex/) | flex | 2.6.4 | https://github.com/westes/flex |
| [`fontconfig`](fontconfig/) | Fontconfig | 2.14.0 | https://www.freedesktop.org/wiki/Software/fontconfig/ |
| [`fotaq`](fotaq/) | Flight of the Amazon Queen | 1.0 | https://www.scummvm.org/games/#games-queen |
| [`freeciv`](freeciv/) | Freeciv | 3.0.0-beta2 | http://freeciv.org/ |
| [`freedink`](freedink/) | FreeDink | 109.6 | https://www.gnu.org/software/freedink/ |
| [`freetype`](freetype/) | FreeType | 2.13.0 | https://www.freetype.org/ |
| [`frotz`](frotz/) | Frotz | 2.54 | https://gitlab.com/DavidGriffith/frotz |
| [`gawk`](gawk/) | GNU awk | 5.2.1 | https://www.gnu.org/software/gawk/ |
| [`gcc`](gcc/) | GNU Compiler Collection | 13.1.0 | https://gcc.gnu.org/ |
| [`gdb`](gdb/) | GNU Project Debugger | 11.2 | https://sourceware.org/gdb |
| [`gemrb`](gemrb/) | GemRB | 0.9.1 | https://gemrb.org/ |
| [`genemu`](genemu/) | Genesis / MegaDrive Emulator | e39f690 | https://github.com/rasky/genemu |
| [`genext2fs`](genext2fs/) | genext2fs | 1.5.0 | https://github.com/bestouff/genext2fs |
| [`gettext`](gettext/) | GNU gettext | 0.21.1 | https://www.gnu.org/software/gettext/ |
| [`git`](git/) | Git | 2.40.0 | https://git-scm.com/ |
| [`glib`](glib/) | GLib | 2.76.1 | https://wiki.gnome.org/Projects/GLib |
| [`glm`](glm/) | OpenGL Mathematics (GLM) | 0.9.9.8 | https://github.com/g-truc/glm |
| [`gltron`](gltron/) | GLTron | 0.70 | http://gltron.org |
| [`glu`](glu/) | Mesa GLU | 9.0.2 | https://gitlab.freedesktop.org/mesa/glu |
| [`gmp`](gmp/) | GNU Multiple Precision Arithmetic Library (GMP) | 6.2.1 | https://gmplib.org/ |
| [`gnuapl`](gnuapl/) | GNU APL | 1.8 | https://www.gnu.org/software/apl/ |
| [`gnucobol`](gnucobol/) | GnuCOBOL | 3.1.2 | https://gnucobol.sourceforge.io/ |
| [`gnupg`](gnupg/) | GnuPG | 2.3.0 | https://gnupg.org/software/index.html |
| [`gnuplot`](gnuplot/) | Gnuplot | 5.2.8 | http://www.gnuplot.info/ |
| [`gperf`](gperf/) | GNU gperf | 3.1 | https://www.gnu.org/software/gperf/ |
| [`grep`](grep/) | GNU Grep | 3.10 | https://www.gnu.org/software/grep/ |
| [`grepcidr`](grepcidr/) | grepcidr | 2.0 | http://www.pc-tools.net/unix/grepcidr/ |
| [`griffon`](griffon/) | The Griffon Legend | 1.0 | https://www.scummvm.org/games/#games-griffon |
| [`gsl`](gsl/) | GNU Scientific Library | 2.7.1 | https://www.gnu.org/software/gsl/ |
| [`guile`](guile/) | The GNU guile programming language | 3.0.8 | https://www.gnu.org/software/guile/ |
| [`gzip`](gzip/) | GNU gzip | 1.12 | https://www.gnu.org/software/gzip/ |
| [`halflife`](halflife/) | Half-Life | 2022.12.26 | https://github.com/FWGS/hlsdk-portable |
| [`harfbuzz`](harfbuzz/) | HarfBuzz | 4.3.0 | https://github.com/harfbuzz/harfbuzz |
| [`hatari`](hatari/) | Atari ST/STE/TT/Falcon emulator | 2.4.0-devel | https://hatari.tuxfamily.org/ |
| [`hexedit`](hexedit/) | A console-based hex editor | 1.6 | https://github.com/pixel/hexedit |
| [`imagemagick`](imagemagick/) | ImageMagick | 7.1.1-5 | https://imagemagick.org |
| [`imgcat`](imgcat/) | imgcat | 2.5.1 | https://github.com/eddieantonio/imgcat |
| [`indent`](indent/) | GNU indent | 2.2.11 | https://www.gnu.org/software/indent/ |
| [`isl`](isl/) | Integer Set Library | 0.24 | https://libisl.sourceforge.io/ |
| [`ja2`](ja2/) | Jagged Alliance 2 Stracciatella | 0.15.x | https://github.com/safarp/ja2-stracciatella/tree/0.15.x |
| [`jakt`](jakt/) | Jakt Programming Language | | https://github.com/SerenityOS/jakt |
| [`jdupes`](jdupes/) | jdupes, an enhanced fork of 'fdupes' | 1.26.1 | https://github.com/jbruchon/jdupes |
| [`jfduke3d`](jfduke3d/) | JonoF's Duke Nukem 3D Port | 41cd46b | https://github.com/jonof/jfduke3d |
| [`joe`](joe/) | joe's own editor | 4.6 | https://joe-editor.sourceforge.io/ |
| [`jot`](jot/) | jot (OpenBSD) | 6.6 | https://github.com/ibara/libpuffy |
| [`jq`](jq/) | jq | 1.6 | https://stedolan.github.io/jq/ |
| [`kakoune`](kakoune/) | Modal text editor | 24d6072 | https://github.com/mawww/kakoune |
| [`klong`](klong/) | Klong | 20220315 | https://t3x.org/klong/ |
| [`less`](less/) | less | 590 | https://www.greenwoodsoftware.com/less/ |
| [`libarchive`](libarchive/) | libarchive | 3.6.1 | https://libarchive.org/ |
| [`libassuan`](libassuan/) | libassuan | 2.5.5 | https://gnupg.org/software/libassuan/index.html |
| [`libatomic_ops`](libatomic_ops/) | libatomic\_ops | 7.6.12 | https://www.hboehm.info/gc/ |
| [`libexpat`](libexpat/) | Expat | 2.4.8 | https://libexpat.github.io/ |
| [`libffi`](libffi/) | libffi | 3.4.2 | https://www.sourceware.org/libffi/ |
| [`libfftw3f`](libfftw3f/) | Fastest Fourier Transform in the West (single precision) | 3.3.10 | https://www.fftw.org/ |
| [`libgcrypt`](libgcrypt/) | libgcrypt | 1.10.1 | https://gnupg.org/software/libgcrypt/index.html |
| [`libgd`](libgd/) | libgd | 2.3.3 | https://libgd.github.io/ |
| [`libgpg-error`](libgpg-error/) | libgpg-error | 1.45 | https://gnupg.org/software/libgpg-error/index.html |
| [`libiconv`](libiconv/) | GNU libiconv | 1.17 | https://www.gnu.org/software/libiconv/ |
| [`libicu`](libicu/) | ICU | 69.1 | http://site.icu-project.org/ |
| [`libjodycode`](libjodycode/) | libjodycode | 3.1 | https://github.com/jbruchon/libjodycode |
| [`libjpeg`](libjpeg/) | libjpeg | 9e | https://ijg.org/ |
| [`libksba`](libksba/) | libksba | 1.5.1 | https://gnupg.org/software/libksba/index.html |
| [`libmad`](libmad/) | libmad | 0.15.1b | https://www.underbit.com/products/mad/ |
| [`libmikmod`](libmikmod/) | libmikmod | 3.3.11.1 | http://mikmod.sourceforge.net/ |
| [`libmodplug`](libmodplug/) | libmodplug | 0.8.9.0 | http://modplug-xmms.sourceforge.net/ |
| [`libmpeg2`](libmpeg2/) | libmpeg2 | 0.5.1 | https://libmpeg2.sourceforge.io/ |
| [`libmpg123`](libmpg123/) | libmpg123 | 1.29.3 | https://www.mpg123.de/ |
| [`libogg`](libogg/) | libogg | 1.3.5 | https://github.com/xiph/ogg |
| [`liboggz`](liboggz/) | liboggz | 1.1.1 | https://www.xiph.org/oggz/ |
| [`libopenal`](libopenal/) | OpenAL soft | 1.21.1 | https://openal-soft.org/ |
| [`libopus`](libopus/) | libopus | 1.3.1 | hhttps://opus-codec.org/ |
| [`libphysfs`](libphysfs/) | PhysicsFS | 3.0.2 | https://icculus.org/physfs/ |
| [`libpng`](libpng/) | libpng | 1.6.39 | https://libpng.org/ |
| [`libpuffy`](libpuffy/) | libpuffy | 1.0 | https://github.com/ibara/libpuffy |
| [`libsamplerate`](libsamplerate/) | libsamplerate | 0.2.2 | https://libsndfile.github.io/libsamplerate/ |
| [`libsixel`](libsixel/) | libsixel | 1.8.6 | https://github.com/saitoha/libsixel |
| [`libslirp`](libslirp/) | libslirp | 4.7.0 | https://gitlab.freedesktop.org/slirp/libslirp |
| [`libsodium`](libsodium/) | libsodium | 1.0.18 | https://doc.libsodium.org/ |
| [`libssh2`](libssh2/) | libssh2 | 1.10.0 | https://www.libssh2.org/ |
| [`libtheora`](libtheora/) | libtheora | 1.1.1 | https://www.theora.org/ |
| [`libtiff`](libtiff/) | libtiff | 4.5.0 | http://www.libtiff.org/ |
| [`libtool`](libtool/) | libtool | 2.4.7 | https://www.gnu.org/software/libtool/ |
| [`libunistring`](libunistring/) | libunistring | 1.0 | https://www.gnu.org/software/libunistring/ |
| [`libuuid`](libuuid/) | libuuid (from util-linux) | 2.38 | https://github.com/karelzak/util-linux/tree/master/libuuid |
| [`libuv`](libuv/) | libuv | 1.44.1 | https://github.com/libuv/libuv |
| [`libvorbis`](libvorbis/) | libvorbis | 1.3.7 | https://github.com/xiph/vorbis |
| [`libxml2`](libxml2/) | libxml2 | 2.9.14 | http://www.xmlsoft.org/ |
| [`libyaml`](libyaml/) | libyaml | 0.2.5 | https://pyyaml.org/wiki/LibYAML |
| [`libzip`](libzip/) | libzip | 1.8.0 | https://libzip.org/ |
| [`links`](links/) | Links web browser | 2.26 | http://links.twibright.com/ |
| [`lite-xl`](lite-xl/) | Lite-XL | 2.1.0 | https://lite-xl.com/ |
| [`llvm`](llvm/) | LLVM | 16.0.6 | https://llvm.org/ |
| [`lowdown`](lowdown/) | lowdown | 1.0.2 | https://kristaps.bsd.lv/lowdown/ |
| [`lrzip`](lrzip/) | lrzip | 0.651 | https://github.com/ckolivas/lrzip |
| [`lua`](lua/) | Lua | 5.4.4 | https://www.lua.org/ |
| [`luajit`](luajit/) | LuaJIT | 2.1.0-beta3 | https://luajit.org/luajit.html |
| [`luarocks`](luarocks/) | LuaRocks | 3.8.0 | https://luarocks.org/ |
| [`lure`](lure/) | Lure of the Temptress | 1.1 | https://www.scummvm.org/games/#games-lure |
| [`lynx`](lynx/) | Lynx web browser | 2.8.9rel.1 | https://lynx.invisible-island.net/ |
| [`lz4`](lz4/) | lz4 - Extremely Fast Compression algorithm | 1.9.4 | https://github.com/lz4/lz4 |
| [`lzo`](lzo/) | LZO lossless data compression algorithm | 2.10 | https://www.oberhumer.com/opensource/lzo/ |
| [`lzop`](lzop/) | LZO lossless data compression utility | 1.04 | https://www.lzop.org/ |
| [`m4`](m4/) | GNU M4 | 1.4.19 | https://www.gnu.org/software/m4/ |
| [`make`](make/) | GNU make | 4.4.1 | https://www.gnu.org/software/make/ |
| [`mandoc`](mandoc/) | mandoc | 1.14.5 | https://mandoc.bsd.lv/ |
| [`mawk`](mawk/) | mawk | 1.3.4-20200120 | https://invisible-island.net/mawk/ |
| [`mbedtls`](mbedtls/) | Mbed TLS | 3.1.0 | https://tls.mbed.org/ |
| [`mc`](mc/) | Midnight Commander | 4.8.29 | https://midnight-commander.org/ |
| [`md4c`](md4c/) | Markdown for C | 0.4.8 | https://github.com/mity/md4c |
| [`mednafen`](mednafen/) | Mednafen (My Emulator Doesn't Need A Frickin' Excellent Name) | 1.31.0-UNSTABLE | https://mednafen.github.io/ |
| [`mgba`](mgba/) | Game Boy, Game Boy Color and Game Boy Advance emulator | 0.9.3 | https://mgba.io/ |
| [`milkytracker`](milkytracker/) | milkytracker | 1.03.00 | https://github.com/milkytracker/MilkyTracker |
| [`mold`](mold/) | A Modern Linker | 1.5.1 | https://github.com/rui314/mold |
| [`mpc`](mpc/) | GNU Multiple Precision Complex Library (MPC) | 1.2.1 | http://www.multiprecision.org/mpc/ |
| [`mpfr`](mpfr/) | GNU Multiple Precision Floating-Point Reliable Library (MPFR) | 4.1.0 | https://www.mpfr.org/ |
| [`mrsh`](mrsh/) | mrsh | cd3c3a4 | https://mrsh.sh/ |
| [`mruby`](mruby/) | mruby | 3.0.0 | https://mruby.org/ |
| [`mysthous`](mysthous/) | Hi-Res Adventure #1: Mystery House | 1.0 | https://www.scummvm.org/games/#games-hires1 |
| [`nano`](nano/) | GNU nano | 7.2 | https://www.nano-editor.org/ |
| [`nasm`](nasm/) | Netwide Assembler (NASM) | 2.16.01 | https://www.nasm.us/ |
| [`ncdu`](ncdu/) | Ncdu | 1.18.1 | https://dev.yorhel.nl/ncdu |
| [`ncurses`](ncurses/) | ncurses | 6.3 | https://invisible-island.net/ncurses/announce.html |
| [`neofetch`](neofetch/) | neofetch | 7.1.0 | https://github.com/dylanaraps/neofetch |
| [`nesalizer`](nesalizer/) | Nesalizer | 5bb0458 | https://github.com/ulfalizer/nesalizer |
| [`nethack`](nethack/) | nethack | 3.6.7 | https://www.nethack.org/ |
| [`ninja`](ninja/) | Ninja | 1.11.0 | https://ninja-build.org/ |
| [`nippon`](nippon/) | Nippon Safes Inc. | 1.0 | https://www.scummvm.org/games/#games-nippon |
| [`nlohmann-json`](nlohmann-json/) | JSON for Modern C++ | 3.11.2 | https://json.nlohmann.me/ |
| [`npiet`](npiet/) | Piet language interpreter | 1.3f | https://www.bertnase.de/npiet/ |
| [`npth`](npth/) | New GNU Portable Threads Library | 1.6 | https://gnupg.org/software/npth/index.html |
| [`ntbtls`](ntbtls/) | The Not Too Bad TLS Library | 0.2.0 | https://gnupg.org/software/ntbtls/index.html |
| [`nyancat`](nyancat/) | Nyancat | | https://github.com/klange/nyancat |
| [`oksh`](oksh/) | oksh | 7.1 | https://github.com/ibara/oksh |
| [`OpenJDK`](OpenJDK/) | OpenJDK | 17.0.6 | https://openjdk.java.net/ |
| [`openrct2`](openrct2/) | OpenRCT2 | 0.4.4 | https://openrct2.org/ |
| [`openssh`](openssh/) | OpenSSH | 9.0-94eb685 | https://github.com/openssh/openssh-portable |
| [`openssl`](openssl/) | OpenSSL | 1.1.1s | https://www.openssl.org/ |
| [`openttd`](openttd/) | OpenTTD | 12.2 | https://www.openttd.org/ |
| [`openttd-opengfx`](openttd-opengfx/) | OpenGFX graphics for OpenTTD | 7.1 | https://www.openttd.org/ |
| [`openttd-opensfx`](openttd-opensfx/) | OpenSFX audio files for OpenTTD | 1.0.3 | https://www.openttd.org/ |
| [`opentyrian`](opentyrian/) | OpenTyrian | 84b820f | https://github.com/opentyrian/opentyrian |
| [`opentyrian-data`](opentyrian-data/) | OpenTyrian graphics and audio | 1.0.0 | https://camanis.net/tyrian/tyrian21.zip |
| [`opfor`](opfor/) | Half-Life: Opposing Force | 2022.12.26 | https://github.com/FWGS/hlsdk-portable |
| [`optipng`](optipng/) | OptiPNG | 0.7.7 | http://optipng.sourceforge.net/ |
| [`opusfile`](opusfile/) | opusfile | 0.12 | https://opus-codec.org/ |
| [`p7zip`](p7zip/) | p7zip | 17.04 | https://github.com/jinfeihan57/p7zip |
| [`pacman`](pacman/) | Pacman | b6241a3 | https://github.com/ebuc99/pacman |
| [`patch`](patch/) | patch (GNU) | 2.7.6 | https://savannah.gnu.org/projects/patch/ |
| [`pcre`](pcre/) | Perl-compatible Regular Expressions (PCRE) | 8.45 | https://www.pcre.org/ |
| [`pcre2`](pcre2/) | Perl-compatible Regular Expressions (PCRE2) | 10.40 | https://www.pcre.org/ |
| [`pfetch`](pfetch/) | pfetch | a906ff8 | https://github.com/dylanaraps/pfetch/ |
| [`php`](php/) | PHP | 8.1.12 | https://www.php.net/ |
| [`pixman`](pixman/) | pixman | 0.40.0 | http://pixman.org |
| [`pkgconf`](pkgconf/) | pkgconf | 1.8.0 | https://github.com/pkgconf/pkgconf |
| [`poppler`](poppler/) | Poppler is a PDF rendering library | 23.07.0 | https://poppler.freedesktop.org/ |
| [`potrace`](potrace/) | Bitmap tracing utility | 1.16 | https://potrace.sourceforge.net/ |
| [`powdertoy`](powdertoy/) | The Powder Toy | 96.2.350 | https://powdertoy.co.uk/ |
| [`prboom-plus`](prboom-plus/) | PrBoom+ | 2.6.2 | https://prboom-plus.sourceforge.io/ |
| [`printf`](printf/) | printf (OpenBSD) | 6.6 | https://github.com/ibara/libpuffy |
| [`pt2-clone`](pt2-clone/) | ProTracker 2 clone | 1.49 | https://github.com/8bitbubsy/pt2-clone |
| [`pv`](pv/) | Pipe Viewer | 1.6.20 | http://www.ivarch.com/programs/pv.shtml |
| [`python3`](python3/) | Python | 3.11.3 | https://www.python.org/ |
| [`qemu`](qemu/) | QEMU | 8.0.0 | https://qemu.org |
| [`qoi`](qoi/) | Quite OK Image Format for fast, lossless image compression | edb8d7b | https://github.com/phoboslab/qoi |
| [`qt6-qt5compat`](qt6-qt5compat/) | Qt6 Qt5Compat | 6.4.0 | https://doc.qt.io/qt-6/qtcore5-index.html |
| [`qt6-qtbase`](qt6-qtbase/) | Qt6 QtBase | 6.4.0 | https://qt.io |
| [`qt6-serenity`](qt6-serenity/) | QSerenityPlatform | | https://github.com/SerenityPorts/QSerenityPlatform |
| [`quake`](quake/) | Quake | 0.65 | https://github.com/SerenityOS/SerenityQuake |
| [`quake2`](quake2/) | QuakeII | 0.1 | https://github.com/shamazmazum/quake2sdl |
| [`quake3`](quake3/) | QuakeIII | 1.34 | https://github.com/ioquake/ioq3 |
| [`r0`](r0/) | r0 (minimalistic commandline hexadecimal editor) | 0.8 | https://github.com/radareorg/r0 |
| [`radare2`](radare2/) | radare2 reverse engineering framework | 5.7.6 | https://github.com/radareorg/radare2 |
| [`readline`](readline/) | GNU Readline Library | 8.1.2 | https://tiswww.case.edu/php/chet/readline/rltop.html |
| [`RetroArch`](RetroArch/) | RetroArch | 1.12.0 | https://www.retroarch.com |
| [`RISCVEmu`](RISCVEmu/) | A Basic C++ RISC-V Emulator | ad8ad6a | https://github.com/IdanHo/RISCVEmu |
| [`rsync`](rsync/) | rsync | 3.1.3 | https://rsync.samba.org/ |
| [`ruby`](ruby/) | Ruby | 3.2.2 | https://www.ruby-lang.org/ |
| [`rvvm`](rvvm/) | RVVM - The RISC-V Virtual Machine | 0.5 | https://github.com/LekKit/RVVM |
| [`sam`](sam/) | Software Automatic Mouth (SAM) | c86ea39 | https://github.com/vidarh/SAM |
| [`scummvm`](scummvm/) | ScummVM | 2.7.0 | https://www.scummvm.org/ |
| [`sdl12-compat`](sdl12-compat/) | SDL2 compatibility layer for SDL 1.2 games | 1.2.56 | https://github.com/libsdl-org/sdl12-compat/ |
| [`SDL2`](SDL2/) | Simple DirectMedia Layer (SDL2) | 2.24.0 | https://github.com/libsdl-org/SDL |
| [`SDL2-GNUBoy`](SDL2-GNUBoy/) | SDL2 GNUBoy | 1.2.1 | https://github.com/AlexOberhofer/SDL2-GNUBoy |
| [`SDL2_gfx`](SDL2_gfx/) | SDL2\_gfx (Graphics primitives add-on for SDL2) | 1.0.4 | https://sourceforge.net/projects/sdl2gfx/ |
| [`SDL2_image`](SDL2_image/) | SDL2\_image (Image loading add-on for SDL2) | 2.6.2 | https://github.com/libsdl-org/SDL_image |
| [`SDL2_mixer`](SDL2_mixer/) | SDL2\_mixer (Audio mixer add-on for SDL2) | 2.6.2 | https://github.com/libsdl-org/SDL_mixer |
| [`SDL2_net`](SDL2_net/) | SDL2\_net (Network add-on for SDL2) | 2.2.0 | https://github.com/libsdl-org/SDL_net |
| [`SDL2_sound`](SDL2_sound/) | SDL2\_sound (Abstract soundfile decoder add-on for SDL2) | | https://github.com/icculus/SDL_sound |
| [`SDL2_ttf`](SDL2_ttf/) | SDL2\_ttf (TrueType Font add-on for SDL2) | 2.20.1 | https://github.com/libsdl-org/SDL_ttf |
| [`SDL_mixer`](SDL_mixer/) | SDL\_mixer (Audio mixer add-on for SDL 1.2) | 1.2.12 | https://www.libsdl.org/projects/SDL_mixer/release-1.2.html |
| [`SDL_sound`](SDL_sound/) | SDL\_sound (Abstract soundfile decoder add-on for SDL 1.2) | 1.0.3 | https://www.icculus.org/SDL_sound/ |
| [`SDLPoP`](SDLPoP/) | Prince of Persia game | | https://github.com/NagyD/SDLPoP |
| [`sed`](sed/) | GNU sed | 4.9 | https://www.gnu.org/software/sed/ |
| [`serenity-theming`](serenity-theming/) | SerenityOS theming | 103b0ad | https://github.com/SerenityOS/theming |
| [`serious-sam-classic`](serious-sam-classic/) | Serious Sam - The First Encounter | 1.10.4 | https://github.com/tx00100xt/SeriousSamClassic |
| [`sfinx`](sfinx/) | Sfinx | 1.1 | https://www.scummvm.org/games/#games-sfinx |
| [`sl`](sl/) | Steam Locomotive (SL) | | https://github.com/mtoyoda/sl |
| [`soltys`](soltys/) | Soltys | 1.0 | https://www.scummvm.org/games/#games-soltys |
| [`sparsehash`](sparsehash/) | Google's C++ associative containers | 2.0.4 | https://github.com/sparsehash/sparsehash |
| [`speexdsp`](speexdsp/) | Speex audio processing library | 1.2.1 | https://www.speex.org/ |
| [`sqlite`](sqlite/) | SQLite | 3410200 | https://www.sqlite.org/ |
| [`ssmtp`](ssmtp/) | sSMTP is a simple MTA | 2.64-11 | https://wiki.debian.org/sSMTP |
| [`stb`](stb/) | stb single-file public domain libraries for C/C++ | af1a5bc | https://github.com/nothings/stb |
| [`stockfish`](stockfish/) | Stockfish: A free and strong UCI chess engine | 16 | https://github.com/official-stockfish/Stockfish |
| [`stpuzzles`](stpuzzles/) | Simon Tatham's Portable Puzzle Collection | | https://www.chiark.greenend.org.uk/~sgtatham/puzzles/ |
| [`stress-ng`](stress-ng/) | stress-ng | 0.14.03 | https://github.com/ColinIanKing/stress-ng |
| [`Super-Mario`](Super-Mario/) | Super-Mario Clone | | https://github.com/Bennyhwanggggg/Super-Mario-Clone-Cpp |
| [`SuperTuxKart`](SuperTuxKart/) | Super Tux Kart | 1.4 | https://supertuxkart.net/ |
| [`tar`](tar/) | GNU tar | 1.34 | https://www.gnu.org/software/tar/ |
| [`taskwarrior`](taskwarrior/) | TODO list manager | 2.6.2 | https://taskwarrior.org/ |
| [`tcl`](tcl/) | Tcl | 8.6.12 | https://www.tcl-lang.org/ |
| [`termcap`](termcap/) | GNU termcap | 1.3.1 | https://www.gnu.org/software/termutils/ |
| [`thesilversearcher`](thesilversearcher/) | The Silver Searcher: A fast code-searching tool | 2.2.0 | https://github.com/ggreer/the_silver_searcher |
| [`tig`](tig/) | Tig: text-mode interface for Git | 2.5.5 | https://jonas.github.io/tig/ |
| [`timidity`](timidity/) | TiMidity++ | 2.15.0 | http://timidity.sourceforge.net |
| [`tinycc`](tinycc/) | Tiny C Compiler (TinyCC) | dev | https://github.com/TinyCC/tinycc |
| [`tinyscheme`](tinyscheme/) | TinyScheme Interpreter | 1.42 | https://sourceforge.net/projects/tinyscheme/ |
| [`tr`](tr/) | tr (OpenBSD) | 6.7 | https://github.com/ibara/libpuffy |
| [`tree`](tree/) | tree | 2.0.4 | https://github.com/Old-Man-Programmer/tree |
| [`tuxracer`](tuxracer/) | Tux Racer | 0.61 | http://tuxracer.sourceforge.net/ |
| [`vim`](vim/) | Vim | 8.2.4554 | https://www.vim.org/ |
| [`vitetris`](vitetris/) | vitetris | 0.59.1 | https://github.com/vicgeralds/vitetris |
| [`vlang`](vlang/) | V programming language | weekly.2021.31 | https://github.com/vlang/v |
| [`vttest`](vttest/) | vttest | 20220215 | https://invisible-island.net/vttest/ |
| [`VVVVVV`](VVVVVV/) | Terry Cavanagh's VVVVVV | 2.3.6 | https://github.com/TerryCavanagh/VVVVVV/ |
| [`wayland`](wayland/) | Wayland client libraries | 1.21.0 | https://wayland.freedesktop.org/ |
| [`wget`](wget/) | GNU Wget | 1.21.3 | https://www.gnu.org/software/wget/ |
| [`which`](which/) | GNU which | 2.21 | https://www.gnu.org/software/which/ |
| [`wireguard-tools`](wireguard-tools/) | WireGuard Tools | 1.0.20210914 | https://www.wireguard.com/ |
| [`x264`](x264/) | x264 | baee400 | https://www.videolan.org/developers/x264.html |
| [`x265`](x265/) | x265 | 3.5 | https://bitbucket.org/multicoreware/x265_git/wiki/Home |
| [`xash3d-fwgs`](xash3d-fwgs/) | Xash3D FWGS game engine | 2022.12.26 | https://github.com/FWGS/xash3d-fwgs |
| [`xz`](xz/) | xz | 5.2.5 | https://tukaani.org/xz/ |
| [`yasm`](yasm/) | Yasm Modular Assembler | 1.3.0 | https://yasm.tortall.net/ |
| [`zig`](zig/) | Zig programming language | 0.11.0-dev.4003+c6aa29b6f | https://ziglang.org/ |
| [`zlib`](zlib/) | zlib | 1.2.13 | https://www.zlib.net/ |
| [`zsh`](zsh/) | Z Shell (Zsh) | 5.9 | https://www.zsh.org |
| [`zstd`](zstd/) | Zstandard | 1.5.2 | https://facebook.github.io/zstd/ |

View file

@ -1,11 +1,21 @@
#!/usr/bin/env -S bash ../.port_include.sh
port='zig'
version='0.11.0-dev.670+f7fea080b'
files='https://github.com/ziglang/zig-bootstrap/archive/b9a466fd23d7777e1b3b87d49074ce66370fb7b3.tar.gz zig-bootstrap-b9a466f.tar.gz 84cf91d727c53ef49220ea6b2864dae3bd48e5e5a73be95bf3672c38a72b0946'
workdir='zig-bootstrap-b9a466fd23d7777e1b3b87d49074ce66370fb7b3'
version='0.11.0-dev.4003+c6aa29b6f'
files='https://github.com/ziglang/zig-bootstrap/archive/bf1b2cdb83141ad9336eec42160c9fe87f90198d.tar.gz zig-bootstrap-bf1b2cd.tar.gz 363f97884f4a291c7167468e53cf4570fa03bc7b8973365dbce2019ffc103150
https://github.com/ziglang/zig/archive/c6aa29b6fdba1606bfd218b17de89f64179c0ed8.tar.gz zig-c6aa29b.tar.gz d63c5087a737c46072f155eacacaa406af67addab39ad8179c44b0fc7d698ac1'
# The actual directory to build in.
workdir='zig-bootstrap-bf1b2cdb83141ad9336eec42160c9fe87f90198d'
# The newer Zig directory we move into the workdir.
zigdir='zig-c6aa29b6fdba1606bfd218b17de89f64179c0ed8'
post_fetch() {
# Move the newer version of Zig into the bootstrap
run rm -rf zig
run mv "../${zigdir}" zig
# Copy the scripts that the build process will use
run mkdir -p out
run cp -r "${PORT_META_DIR}/scripts" out/
}

View file

@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: sin-ack <sin-ack@protonmail.com>
Date: Tue, 27 Sep 2022 00:08:46 +0000
Subject: [PATCH] Add support for SerenityOS
Subject: [PATCH] [libc++] Add support for SerenityOS
This commit teaches libc++ about what features are available in our
LibC, namely:
@ -28,10 +28,10 @@ Co-Authored-By: Daniel Bertalan <dani@danielbertalan.dev>
create mode 100644 zig/lib/libcxx/include/__support/serenity/xlocale.h
diff --git a/zig/lib/libcxx/include/__config b/zig/lib/libcxx/include/__config
index d9a47343dad1faf52826abbcd6da7578cec9932a..74a8970eddfaec23f421c3edbe974f77ad055e27 100644
index 7967c70035414e65a10aa82e564cf1ce48a12032..dad99cd4cc2520e22e9ef8e60ce3e9267c733cbc 100644
--- a/zig/lib/libcxx/include/__config
+++ b/zig/lib/libcxx/include/__config
@@ -910,7 +910,8 @@ _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD
@@ -930,7 +930,8 @@ _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD
defined(__sun__) || \
defined(__MVS__) || \
defined(_AIX) || \
@ -41,7 +41,7 @@ index d9a47343dad1faf52826abbcd6da7578cec9932a..74a8970eddfaec23f421c3edbe974f77
// clang-format on
# define _LIBCPP_HAS_THREAD_API_PTHREAD
# elif defined(__Fuchsia__)
@@ -988,7 +989,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD
@@ -1008,7 +1009,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD
# endif
# if defined(__BIONIC__) || defined(__NuttX__) || defined(__Fuchsia__) || defined(__wasi__) || \
@ -51,10 +51,10 @@ index d9a47343dad1faf52826abbcd6da7578cec9932a..74a8970eddfaec23f421c3edbe974f77
# endif
diff --git a/zig/lib/libcxx/include/__locale b/zig/lib/libcxx/include/__locale
index 40f9a3ff57c22635254be654227333b2a10eca6a..1c499c078b44a49abead17ce566801b4c34733f3 100644
index e0ffa0ca00ffe2b13c363440da0f7cd26c6d65db..33e994abe361af548ccbc5e17c251741546f5503 100644
--- a/zig/lib/libcxx/include/__locale
+++ b/zig/lib/libcxx/include/__locale
@@ -42,6 +42,8 @@
@@ -44,6 +44,8 @@
# include <__support/musl/xlocale.h>
#elif defined(_LIBCPP_HAS_MUSL_LIBC)
# include <__support/musl/xlocale.h>
@ -94,10 +94,10 @@ index 0000000000000000000000000000000000000000..0f939d2f6989e2ad617145308d079776
+
+#endif
diff --git a/zig/lib/libcxx/include/locale b/zig/lib/libcxx/include/locale
index b01c66d0430f66ee74118e73296780bb864e920b..da29b7d00c709788facb049f417b6d5ccb5b70e1 100644
index 874866f69822366f24a99458a040d07651c7ae4a..55632f101f06528c3a9eb01e062f69b06d887369 100644
--- a/zig/lib/libcxx/include/locale
+++ b/zig/lib/libcxx/include/locale
@@ -217,7 +217,7 @@ template <class charT> class messages_byname;
@@ -216,7 +216,7 @@ template <class charT> class messages_byname;
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
// Most unix variants have catopen. These are the specific ones that don't.

View file

@ -0,0 +1 @@
../../../Toolchain/Patches/llvm/0012-cmake-Increase-the-default-stack-size-when-running-o.patch

View file

@ -1,94 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: sin-ack <sin-ack@users.noreply.github.com>
Date: Sat, 1 Oct 2022 20:05:58 +0000
Subject: [PATCH] llvm: Implement bigint-to-LLVM int for 32-bit compiler builds
The conversion to DoubleLimb is necessary due to LLVM only accepting
64-bit limbs for big integers. Since we need some space to store it, we
also have to allocate. This is an unfortunate penalty that 32-bit
compiler builds have to take.
---
zig/lib/std/math/big/int.zig | 21 +++++++++++++++++++++
zig/src/codegen/llvm.zig | 28 ++++++++++++++++++++++++++--
2 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/zig/lib/std/math/big/int.zig b/zig/lib/std/math/big/int.zig
index 534e8a570d675aba91f8623a08859aa2d7d533fd..30db3f36df0311faef1eaba3d69a9785d9e50296 100644
--- a/zig/lib/std/math/big/int.zig
+++ b/zig/lib/std/math/big/int.zig
@@ -1899,6 +1899,27 @@ pub const Const = struct {
};
}
+ /// Convert each limb to a DoubleLimb and write it to `double_limbs`.
+ /// Return the slice of limbs that was used.
+ /// Asserts `double_limbs` is big enough to store the value.
+ pub fn toDoubleLimb(self: Const, double_limbs: []DoubleLimb) ![]DoubleLimb {
+ // TODO: Add tests (and check if this works on big-endian)!
+ assert(double_limbs.len >= (try std.math.divCeil(usize, self.limbs.len, 2)));
+
+ var i: usize = 0;
+ var double_limb_i: usize = 0;
+ while (i < self.limbs.len) : ({
+ i += 2;
+ double_limb_i += 1;
+ }) {
+ const most_significant: Limb = if (i + 1 == self.limbs.len) 0 else self.limbs[i + 1];
+ const least_significant = self.limbs[i];
+ double_limbs[double_limb_i] = @intCast(DoubleLimb, least_significant) | (@intCast(DoubleLimb, most_significant) << @bitSizeOf(Limb));
+ }
+
+ return double_limbs[0..double_limb_i];
+ }
+
pub fn dump(self: Const) void {
for (self.limbs[0..self.limbs.len]) |limb| {
std.debug.print("{x} ", .{limb});
diff --git a/zig/src/codegen/llvm.zig b/zig/src/codegen/llvm.zig
index 4115a4870ea3f8731b929afd65f5111bee1f2983..e3ae805402e063341519ebeb7ee62c8717e45697 100644
--- a/zig/src/codegen/llvm.zig
+++ b/zig/src/codegen/llvm.zig
@@ -3241,8 +3241,20 @@ pub const DeclGen = struct {
@intCast(c_uint, bigint.limbs.len),
bigint.limbs.ptr,
);
+ } else {
+ // Because LLVM only accepts 64-bit limbs for constIntOfArbitraryPrecision, we must convert to double-limb here (and allocate to do so).
+ // You (yes, you!) can fix this by making LLVM accept 32-bit limbs for creating an integer of arbitrary precision.
+ const double_limb_count = math.divCeil(usize, bigint.limbs.len, 2) catch return Error.CodegenFail;
+ var double_limb_space = try dg.gpa.alloc(math.big.DoubleLimb, double_limb_count);
+ defer dg.gpa.free(double_limb_space);
+
+ _ = bigint.toDoubleLimb(double_limb_space) catch return Error.CodegenFail;
+
+ break :v llvm_type.constIntOfArbitraryPrecision(
+ @intCast(c_uint, double_limb_count),
+ double_limb_space.ptr,
+ );
}
- @panic("TODO implement bigint to llvm int for 32-bit compiler builds");
};
if (!bigint.positive) {
return llvm.constNeg(unsigned_val);
@@ -3269,8 +3281,20 @@ pub const DeclGen = struct {
@intCast(c_uint, bigint.limbs.len),
bigint.limbs.ptr,
);
+ } else {
+ // Because LLVM only accepts 64-bit limbs for constIntOfArbitraryPrecision, we must convert to double-limb here (and allocate to do so).
+ // You (yes, you!) can fix this by making LLVM accept 32-bit limbs for creating an integer of arbitrary precision.
+ const double_limb_count = math.divCeil(usize, bigint.limbs.len, 2) catch return Error.CodegenFail;
+ var double_limb_space = try dg.gpa.alloc(math.big.DoubleLimb, double_limb_count);
+ defer dg.gpa.free(double_limb_space);
+
+ _ = bigint.toDoubleLimb(double_limb_space) catch return Error.CodegenFail;
+
+ break :v llvm_type.constIntOfArbitraryPrecision(
+ @intCast(c_uint, double_limb_count),
+ double_limb_space.ptr,
+ );
}
- @panic("TODO implement bigint to llvm int for 32-bit compiler builds");
};
if (!bigint.positive) {
return llvm.constNeg(unsigned_val);

View file

@ -1,6 +1,6 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: sin-ack <sin-ack@users.noreply.github.com>
Date: Sun, 11 Dec 2022 17:18:09 +0000
Date: Sun, 16 Jul 2023 17:34:51 +0300
Subject: [PATCH] Add SerenityOS target
Named "serenity" within the code to match what LLVM says.
@ -12,12 +12,11 @@ Named "serenity" within the code to match what LLVM says.
zig/src/libc_installation.zig | 6 +++++-
zig/src/link/Elf.zig | 9 +++++++++
zig/src/target.zig | 5 ++++-
zig/src/type.zig | 1 +
zig/src/zig_llvm.h | 3 ++-
9 files changed, 32 insertions(+), 3 deletions(-)
8 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/zig/lib/std/target.zig b/zig/lib/std/target.zig
index 49a7bd1c7dd1334067ed3b867f5ada7b99538355..af7b14be8e01509280d59b0196ff3a3040a48bf6 100644
index 2a96e84001ebf67ce29a9059f62045776530549a..b137e48c02d7d7ecc0f5eae61f6225504bf0ba3d 100644
--- a/zig/lib/std/target.zig
+++ b/zig/lib/std/target.zig
@@ -60,6 +60,7 @@ pub const Target = struct {
@ -44,7 +43,7 @@ index 49a7bd1c7dd1334067ed3b867f5ada7b99538355..af7b14be8e01509280d59b0196ff3a30
=> true,
.linux,
@@ -563,6 +566,7 @@ pub const Target = struct {
@@ -568,6 +571,7 @@ pub const Target = struct {
.watchos,
.driverkit,
.shadermodel,
@ -52,7 +51,7 @@ index 49a7bd1c7dd1334067ed3b867f5ada7b99538355..af7b14be8e01509280d59b0196ff3a30
=> return .none,
}
}
@@ -1740,6 +1744,8 @@ pub const Target = struct {
@@ -1690,6 +1694,8 @@ pub const Target = struct {
// TODO revisit when multi-arch for Haiku is available
.haiku => return copy(&result, "/system/runtime_loader"),
@ -62,7 +61,7 @@ index 49a7bd1c7dd1334067ed3b867f5ada7b99538355..af7b14be8e01509280d59b0196ff3a30
// implement the standard dynamic linker path code for it.
.ananas,
diff --git a/zig/lib/std/zig/CrossTarget.zig b/zig/lib/std/zig/CrossTarget.zig
index aad0cb42f252d04b858133ba6ec598aa043f1c1c..a401ba49ee7afde0279c537a890cd33d3fe4815e 100644
index d42b02d931dc3afa7cc33b1576ec77d123fc5bd5..479c1bffc8df034ee2d876118c1aa2579758ac44 100644
--- a/zig/lib/std/zig/CrossTarget.zig
+++ b/zig/lib/std/zig/CrossTarget.zig
@@ -137,6 +137,7 @@ fn updateOsVersionRange(self: *CrossTarget, os: Target.Os) void {
@ -73,7 +72,7 @@ index aad0cb42f252d04b858133ba6ec598aa043f1c1c..a401ba49ee7afde0279c537a890cd33d
.other,
=> {
self.os_version_min = .{ .none = {} };
@@ -693,6 +694,7 @@ fn parseOs(result: *CrossTarget, diags: *ParseOptions.Diagnostics, text: []const
@@ -734,6 +735,7 @@ fn parseOs(result: *CrossTarget, diags: *ParseOptions.Diagnostics, text: []const
.plan9,
.driverkit,
.shadermodel,
@ -82,10 +81,10 @@ index aad0cb42f252d04b858133ba6ec598aa043f1c1c..a401ba49ee7afde0279c537a890cd33d
=> return error.InvalidOperatingSystemVersion,
diff --git a/zig/src/codegen/llvm.zig b/zig/src/codegen/llvm.zig
index e3ae805402e063341519ebeb7ee62c8717e45697..ba4f2c0840f15b7776f4d8768d3a525551069484 100644
index ec456e53a7b29be235ec329882e593545273c732..32baa8fbb39a699e57450ed36d5897991c32524b 100644
--- a/zig/src/codegen/llvm.zig
+++ b/zig/src/codegen/llvm.zig
@@ -143,6 +143,7 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {
@@ -144,6 +144,7 @@ pub fn targetTriple(allocator: Allocator, target: std.Target) ![:0]u8 {
.watchos => "watchos",
.driverkit => "driverkit",
.shadermodel => "shadermodel",
@ -93,7 +92,7 @@ index e3ae805402e063341519ebeb7ee62c8717e45697..ba4f2c0840f15b7776f4d8768d3a5255
.opencl,
.glsl450,
.vulkan,
@@ -246,6 +247,7 @@ pub fn targetOs(os_tag: std.Target.Os.Tag) llvm.OSType {
@@ -250,6 +251,7 @@ pub fn targetOs(os_tag: std.Target.Os.Tag) llvm.OSType {
.emscripten => .Emscripten,
.driverkit => .DriverKit,
.shadermodel => .ShaderModel,
@ -102,10 +101,10 @@ index e3ae805402e063341519ebeb7ee62c8717e45697..ba4f2c0840f15b7776f4d8768d3a5255
}
diff --git a/zig/src/codegen/llvm/bindings.zig b/zig/src/codegen/llvm/bindings.zig
index 90d0f51c7b36f7f3df19594933034f483a24c757..f11d1a6743493e18d5b4c2c6f19356d249f88cba 100644
index b093588e80c1dcbcd3d515ffa09b9ffefcd55828..385b17bd16a2f957f6e79bd7c068820415bcae6f 100644
--- a/zig/src/codegen/llvm/bindings.zig
+++ b/zig/src/codegen/llvm/bindings.zig
@@ -1287,6 +1287,7 @@ pub const OSType = enum(c_int) {
@@ -1298,6 +1298,7 @@ pub const OSType = enum(c_int) {
WASI,
Emscripten,
ShaderModel,
@ -114,7 +113,7 @@ index 90d0f51c7b36f7f3df19594933034f483a24c757..f11d1a6743493e18d5b4c2c6f19356d2
pub const ArchType = enum(c_int) {
diff --git a/zig/src/libc_installation.zig b/zig/src/libc_installation.zig
index 0a50f970123fbf2298cdf3666a1e7d6a59130e20..af50f4ebfaa783328513d9d9086cdfa9aee83b76 100644
index 355c3bad8dcd53a03e4df133f0a470b91d390a22..c048b865270640877e0bd042c21faa7e8317991f 100644
--- a/zig/src/libc_installation.zig
+++ b/zig/src/libc_installation.zig
@@ -8,6 +8,7 @@ const build_options = @import("build_options");
@ -145,10 +144,10 @@ index 0a50f970123fbf2298cdf3666a1e7d6a59130e20..af50f4ebfaa783328513d9d9086cdfa9
else
"sys/errno.h";
diff --git a/zig/src/link/Elf.zig b/zig/src/link/Elf.zig
index ebb1cbdfb8efc867d34e0315256e6efa4c90a035..46c61a10fefd8aa2efe43c023e261e97197dc4b3 100644
index 0258b0a6a70ad07bf6bad54ccf24954d67bb98d9..fc2d11a10eb8aa31a739a0da15b592cd0f0b90ac 100644
--- a/zig/src/link/Elf.zig
+++ b/zig/src/link/Elf.zig
@@ -3152,6 +3152,15 @@ const CsuObjects = struct {
@@ -3382,6 +3382,15 @@ const CsuObjects = struct {
.static_pie => result.set( "rcrt0.o", null, "crtbegin.o", "crtend.o", null ),
// zig fmt: on
},
@ -165,10 +164,10 @@ index ebb1cbdfb8efc867d34e0315256e6efa4c90a035..46c61a10fefd8aa2efe43c023e261e97
// zig fmt: off
.dynamic_lib => result.set( null, "crti.o", "crtbeginS.o", "crtendS.o", "crtn.o" ),
diff --git a/zig/src/target.zig b/zig/src/target.zig
index 836791a1d1d7c69655d056b39ed58f2399ed12f4..02c9a23d9ac0dfa870defba94c8b302a5dab7927 100644
index f07dcc43d21e516ef5e5f392d231207a4e6389eb..95efc730d9c2ba61a19200bf11ad1456a37650dc 100644
--- a/zig/src/target.zig
+++ b/zig/src/target.zig
@@ -187,7 +187,7 @@ pub fn libcNeedsLibUnwind(target: std.Target) bool {
@@ -190,7 +190,7 @@ pub fn libcNeedsLibUnwind(target: std.Target) bool {
}
pub fn requiresPIE(target: std.Target) bool {
@ -177,7 +176,7 @@ index 836791a1d1d7c69655d056b39ed58f2399ed12f4..02c9a23d9ac0dfa870defba94c8b302a
}
/// This function returns whether non-pic code is completely invalid on the given target.
@@ -472,6 +472,9 @@ pub fn libcFullLinkFlags(target: std.Target) []const []const u8 {
@@ -476,6 +476,9 @@ pub fn libcFullLinkFlags(target: std.Target) []const []const u8 {
"-lpthread",
"-lc",
},
@ -187,23 +186,11 @@ index 836791a1d1d7c69655d056b39ed58f2399ed12f4..02c9a23d9ac0dfa870defba94c8b302a
else => switch (target.abi) {
.android => &[_][]const u8{
"-lm",
diff --git a/zig/src/type.zig b/zig/src/type.zig
index 1aefa8f7a1c77ddf58b1cb7271b57db6618704fb..13f8dc1879ed37e0452c78c698b72fcb3b955ec2 100644
--- a/zig/src/type.zig
+++ b/zig/src/type.zig
@@ -6772,6 +6772,7 @@ pub const CType = enum {
.ananas,
.fuchsia,
.minix,
+ .serenity,
=> switch (target.cpu.arch) {
.msp430 => switch (self) {
.short, .ushort, .int, .uint => return 16,
diff --git a/zig/src/zig_llvm.h b/zig/src/zig_llvm.h
index 7f9bd0a1619d30239a1ab92c3b9675d8c1bdb987..dc1561421fa0afedf892ddbdf698b57aeb83af72 100644
index 74dcd105649ab9633f67a8caaf26e2d3ba5b5aef..6dc140d69c16935654a9d58658184def3464be35 100644
--- a/zig/src/zig_llvm.h
+++ b/zig/src/zig_llvm.h
@@ -468,7 +468,8 @@ enum ZigLLVM_OSType {
@@ -475,7 +475,8 @@ enum ZigLLVM_OSType {
ZigLLVM_WASI, // Experimental WebAssembly OS
ZigLLVM_Emscripten,
ZigLLVM_ShaderModel, // DirectX ShaderModel

View file

@ -6,23 +6,24 @@ Subject: [PATCH] Implement SerenityOS support in std
---
zig/lib/std/Thread.zig | 2 +-
zig/lib/std/c.zig | 1 +
zig/lib/std/c/serenity.zig | 396 +++++++++++++++++++++++++++
zig/lib/std/c/serenity.zig | 621 +++++++++++++++++++++++++++
zig/lib/std/c/serenity/constants.zig | 6 +
zig/lib/std/debug.zig | 3 +-
zig/lib/std/fs.zig | 72 ++++-
zig/lib/std/fs.zig | 72 +++-
zig/lib/std/fs/get_app_data_dir.zig | 2 +-
zig/lib/std/os.zig | 3 +-
8 files changed, 479 insertions(+), 6 deletions(-)
zig/lib/std/target.zig | 1 +
9 files changed, 705 insertions(+), 6 deletions(-)
create mode 100644 zig/lib/std/c/serenity.zig
create mode 100644 zig/lib/std/c/serenity/constants.zig
diff --git a/zig/lib/std/Thread.zig b/zig/lib/std/Thread.zig
index e2e17a29259e1e2cf323ad90451f6fe7906e12a9..125e63bfd138a5a08653f4c815846c42e8eca3c5 100644
index 99e2feb4cf432d7fb323b62412e810a7b932d9a9..4dcc644b36cf99a7c18084c5ccdaeffa7723e7bd 100644
--- a/zig/lib/std/Thread.zig
+++ b/zig/lib/std/Thread.zig
@@ -617,7 +617,7 @@ const PosixThreadImpl = struct {
@@ -636,7 +636,7 @@ const PosixThreadImpl = struct {
};
return @intCast(usize, count);
return @as(usize, @intCast(count));
},
- .solaris => {
+ .solaris, .serenity => {
@ -30,7 +31,7 @@ index e2e17a29259e1e2cf323ad90451f6fe7906e12a9..125e63bfd138a5a08653f4c815846c42
// /dev/kstat via ioctls, and traverse a linked list for each
// cpu.
diff --git a/zig/lib/std/c.zig b/zig/lib/std/c.zig
index 5f03f1c61902a191de87b49f0dcbdfec4a872d34..92c4bfcccb6bf45fcd8df748d346c8ec0dc84208 100644
index 149f3ab7e19919ad8d2b57988aa1db61213ea60d..d7720089a346f4c2ea8ef8f9aac15459b3fc2235 100644
--- a/zig/lib/std/c.zig
+++ b/zig/lib/std/c.zig
@@ -54,6 +54,7 @@ pub usingnamespace switch (builtin.os.tag) {
@ -43,10 +44,10 @@ index 5f03f1c61902a191de87b49f0dcbdfec4a872d34..92c4bfcccb6bf45fcd8df748d346c8ec
diff --git a/zig/lib/std/c/serenity.zig b/zig/lib/std/c/serenity.zig
new file mode 100644
index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460c79bd3ba
index 0000000000000000000000000000000000000000..1c8dc37af9d528338d2c5543b5f3a47894264c0e
--- /dev/null
+++ b/zig/lib/std/c/serenity.zig
@@ -0,0 +1,396 @@
@@ -0,0 +1,621 @@
+pub const std = @import("std");
+pub const SerenityConstants = @import("serenity/constants.zig");
+
@ -56,6 +57,46 @@ index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460
+pub const off_t = i64;
+pub const nlink_t = u64;
+
+// see Kernel/API/POSIX/sys/socket.h
+pub const sa_family_t = u16;
+
+// see Kernel/API/POSIX/sys/types.h
+pub const socklen_t = u32;
+
+// see Userland/Libraries/LibC/netdb.h
+pub const addrinfo = struct {
+ flags: u16,
+ family: sa_family_t,
+ socktype: u16,
+ protocol: u16,
+ addrlen: socklen_t,
+ addr: ?*sockaddr,
+ canonname: ?[*:0]const u8,
+ next: ?*addrinfo,
+};
+
+// see Kernel/API/POSIX/sys/socket.h
+pub const AF = struct {
+ pub const MASK = 0xff;
+ pub const UNSPEC = 0;
+ pub const LOCAL = 1;
+ pub const UNIX = LOCAL;
+ pub const INET = 2;
+ pub const INET6 = 3;
+ pub const MAX = 4;
+};
+
+// see Userland/Libraries/LibC/netdb.h
+pub const AI = struct {
+ pub const PASSIVE = 1;
+ pub const CANONNAME = 2;
+ pub const NUMERICHOST = 4;
+ pub const NUMERICSERV = 8;
+ pub const V4MAPPED = 16;
+ pub const ALL = 32;
+ pub const ADDRCONFIG = 64;
+};
+
+pub const E = enum(i32) {
+ SUCCESS = SerenityConstants.ESUCCESS,
+ PERM = SerenityConstants.EPERM,
@ -141,6 +182,23 @@ index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460
+ STALE = SerenityConstants.ESTALE,
+};
+
+// see Userland/Libraries/LibC/netdb.h
+pub const EAI = enum(c_int) {
+ ADDRFAMILY = 1,
+ AGAIN = 2,
+ BADFLAGS = 3,
+ FAIL = 4,
+ FAMILY = 5,
+ MEMORY = 6,
+ NODATA = 7,
+ NONAME = 8,
+ SERVICE = 9,
+ SOCKTYPE = 10,
+ SYSTEM = 11,
+ OVERFLOW = 12,
+ _,
+};
+
+pub const PATH_MAX = SerenityConstants.PATH_MAX;
+
+pub const time_t = i64;
@ -222,6 +280,21 @@ index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460
+
+pub const IOV_MAX = SerenityConstants.IOV_MAX;
+
+// see Kernel/API/POSIX/sys/socket.h
+pub const IPPROTO = struct {
+ pub const IP = 0;
+ pub const ICMP = 1;
+ pub const IGMP = 2;
+ pub const IPIP = 4;
+ pub const TCP = 6;
+ pub const UDP = 17;
+ pub const IPV6 = 41;
+ pub const ESP = 50;
+ pub const AH = 51;
+ pub const ICMPV6 = 58;
+ pub const RAW = 255;
+};
+
+pub const pthread_mutex_t = extern struct {
+ lock: u32 = 0,
+ owner: ?std.c.pthread_t = null,
@ -235,6 +308,8 @@ index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460
+ clockid: c_int = CLOCK.MONOTONIC_COARSE, // clockid_t
+};
+
+pub const PTHREAD_STACK_MIN = SerenityConstants.PTHREAD_STACK_MIN;
+
+pub const uid_t = u32;
+pub const gid_t = u32;
+
@ -335,6 +410,145 @@ index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460
+ pub const END = SerenityConstants.SEEK_END;
+};
+
+pub const SIG = struct {
+ pub const ABRT = SerenityConstants.SIGABRT;
+ pub const ALRM = SerenityConstants.SIGALRM;
+ pub const BUS = SerenityConstants.SIGBUS;
+ pub const CANCEL = SerenityConstants.SIGCANCEL;
+ pub const CHLD = SerenityConstants.SIGCHLD;
+ pub const CONT = SerenityConstants.SIGCONT;
+ pub const FPE = SerenityConstants.SIGFPE;
+ pub const HUP = SerenityConstants.SIGHUP;
+ pub const ILL = SerenityConstants.SIGILL;
+ pub const INFO = SerenityConstants.SIGINFO;
+ pub const INT = SerenityConstants.SIGINT;
+ pub const INVAL = SerenityConstants.SIGINVAL;
+ pub const IO = SerenityConstants.SIGIO;
+ pub const KILL = SerenityConstants.SIGKILL;
+ pub const PIPE = SerenityConstants.SIGPIPE;
+ pub const PROF = SerenityConstants.SIGPROF;
+ pub const QUIT = SerenityConstants.SIGQUIT;
+ pub const SEGV = SerenityConstants.SIGSEGV;
+ pub const STKFLT = SerenityConstants.SIGSTKFLT;
+ pub const STOP = SerenityConstants.SIGSTOP;
+ pub const SYS = SerenityConstants.SIGSYS;
+ pub const TERM = SerenityConstants.SIGTERM;
+ pub const TRAP = SerenityConstants.SIGTRAP;
+ pub const TSTP = SerenityConstants.SIGTSTP;
+ pub const TTIN = SerenityConstants.SIGTTIN;
+ pub const TTOU = SerenityConstants.SIGTTOU;
+ pub const URG = SerenityConstants.SIGURG;
+ pub const USR1 = SerenityConstants.SIGUSR1;
+ pub const USR2 = SerenityConstants.SIGUSR2;
+ pub const VTALRM = SerenityConstants.SIGVTALRM;
+ pub const WINCH = SerenityConstants.SIGWINCH;
+ pub const XCPU = SerenityConstants.SIGXCPU;
+ pub const XFSZ = SerenityConstants.SIGXFSZ;
+};
+
+pub const sigval = extern union {
+ int: i32,
+ ptr: *anyopaque,
+};
+
+pub const siginfo_t = extern struct {
+ signo: c_int,
+ code: c_int,
+ errno: c_int,
+ pid: pid_t,
+ uid: uid_t,
+ addr: ?*const anyopaque,
+ status: c_int,
+ band: c_int,
+ value: sigval,
+};
+
+pub const sigset_t = u32;
+pub const empty_sigset: sigset_t = 0;
+
+pub const Sigaction = extern struct {
+ pub const handler_fn = *const fn (c_int) align(1) callconv(.C) void;
+ pub const sigaction_fn = *const fn (c_int, *const siginfo_t, ?*const anyopaque) callconv(.C) void;
+
+ handler: extern union {
+ handler: ?handler_fn,
+ sigaction: ?sigaction_fn,
+ },
+ mask: sigset_t,
+ flags: c_int,
+};
+
+pub const SO = struct {
+ pub const ACCEPTCONN = SerenityConstants.SO_ACCEPTCONN;
+ pub const BINDTODEVICE = SerenityConstants.SO_BINDTODEVICE;
+ pub const BROADCAST = SerenityConstants.SO_BROADCAST;
+ pub const DEBUG = SerenityConstants.SO_DEBUG;
+ pub const DONTROUTE = SerenityConstants.SO_DONTROUTE;
+ pub const ERROR = SerenityConstants.SO_ERROR;
+ pub const KEEPALIVE = SerenityConstants.SO_KEEPALIVE;
+ pub const LINGER = SerenityConstants.SO_LINGER;
+ pub const OOBINLINE = SerenityConstants.SO_OOBINLINE;
+ pub const PEERCRED = SerenityConstants.SO_PEERCRED;
+ pub const RCVBUF = SerenityConstants.SO_RCVBUF;
+ pub const RCVLOWAT = SerenityConstants.SO_RCVLOWAT;
+ pub const RCVTIMEO = SerenityConstants.SO_RCVTIMEO;
+ pub const REUSEADDR = SerenityConstants.SO_REUSEADDR;
+ pub const SNDBUF = SerenityConstants.SO_SNDBUF;
+ pub const SNDLOWAT = SerenityConstants.SO_SNDLOWAT;
+ pub const SNDTIMEO = SerenityConstants.SO_SNDTIMEO;
+ pub const TIMESTAMP = SerenityConstants.SO_TIMESTAMP;
+ pub const TYPE = SerenityConstants.SO_TYPE;
+};
+
+pub const SOL = struct {
+ pub const SOCKET = SerenityConstants.SOL_SOCKET;
+};
+
+// see Kernel/API/POSIX/netinet/in.h
+pub const in_port_t = u16;
+
+pub const in_addr = extern struct {
+ addr: u32,
+};
+
+pub const in6_addr = extern union {
+ addr: [16]u8,
+ addr32: [4]u32,
+};
+
+// see Kernel/API/POSIX/sys/socket.h
+pub const sockaddr = extern struct {
+ /// address family
+ family: sa_family_t,
+ /// actually longer; address value
+ data: [14]u8,
+
+ // see Kernel/API/POSIX/netinet/in.h
+ pub const in = extern struct {
+ family: sa_family_t = AF.INET,
+ port: in_port_t,
+ addr: in_addr,
+ zero: [8]u8 = [8]u8{ 0, 0, 0, 0, 0, 0, 0, 0 },
+ };
+
+ pub const in6 = extern struct {
+ family: sa_family_t = AF.INET6,
+ port: in_port_t,
+ flowinfo: u32,
+ addr: in6_addr,
+ scope_id: u32,
+ };
+
+ // see Kernel/API/POSIX/sys/un.h
+ /// Definitions for UNIX IPC domain.
+ pub const un = extern struct {
+ family: sa_family_t = AF.LOCAL,
+
+ /// path name
+ path: [106]u8,
+ };
+};
+
+pub const POLL = struct {
+ pub const IN = SerenityConstants.POLLIN;
+ pub const RDNORM = SerenityConstants.POLLRDNORM;
@ -348,6 +562,18 @@ index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460
+ pub const RDHUP = SerenityConstants.POLLRDHUP;
+};
+
+//see Kernel/API/POSIX/sys/socket.h
+pub const SOCK = struct {
+ pub const TYPE_MASK = 0xff;
+ pub const STREAM = 1;
+ pub const DGRAM = 2;
+ pub const RAW = 3;
+ pub const RDM = 4;
+ pub const SEQPACKET = 5;
+ pub const NONBLOCK = 2048;
+ pub const CLOEXEC = 524288;
+};
+
+pub const pollfd = struct {
+ fd: c_int,
+ events: c_short,
@ -365,7 +591,7 @@ index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460
+ pub const NOWAIT = SerenityConstants.WNOWAIT;
+
+ pub fn EXITSTATUS(s: u32) u8 {
+ return @intCast(u8, (s & 0xff00) >> 8);
+ return @intCast((s & 0xff00) >> 8);
+ }
+
+ pub fn STOPSIG(s: u32) u32 {
@ -385,7 +611,7 @@ index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460
+ }
+
+ pub fn IFSIGNALED(s: u32) bool {
+ return (@intCast(u8, (s & 0x7f) + 1) >> 1) > 0;
+ return (@as(u8, @intCast((s & 0x7f) + 1)) >> 1) > 0;
+ }
+
+ pub fn IFCONTINUED(s: u32) bool {
@ -421,7 +647,7 @@ index 0000000000000000000000000000000000000000..747023f1b1b5613b24751312058a5460
+ pub const RANDOMIZED = SerenityConstants.MAP_RANDOMIZED;
+ pub const PURGEABLE = SerenityConstants.MAP_PURGEABLE;
+ pub const FIXED_NOREPLACE = SerenityConstants.MAP_FIXED_NOREPLACE;
+ pub const FAILED = @intToPtr(*anyopaque, @bitCast(usize, @as(isize, -1)));
+ pub const FAILED: *anyopaque = @ptrFromInt(@as(usize, @bitCast(@as(isize, -1))));
+};
+
+pub const MSF = struct {
@ -456,18 +682,18 @@ index 0000000000000000000000000000000000000000..94d7b1c091f7affb5c968738a8719cbb
+ );
+}
diff --git a/zig/lib/std/debug.zig b/zig/lib/std/debug.zig
index 90ceff3df157f3d94feddceae12de59fc2e3581d..5c25a8c9cebcb0cce01b229808ea67c57c968d5e 100644
index 44f6ce136759b773e2426656aa9907b5fc51d9fc..9b5f6f993ef870689d31a8ee99bb358b4d25278d 100644
--- a/zig/lib/std/debug.zig
+++ b/zig/lib/std/debug.zig
@@ -812,6 +812,7 @@ pub fn openSelfDebugInfo(allocator: mem.Allocator) anyerror!DebugInfo {
@@ -771,6 +771,7 @@ pub fn openSelfDebugInfo(allocator: mem.Allocator) OpenSelfDebugInfoError!DebugI
.dragonfly,
.openbsd,
.macos,
.windows,
.solaris,
+ .serenity,
=> return DebugInfo.init(allocator),
else => return error.UnsupportedDebugInfo,
}
@@ -1761,7 +1762,7 @@ pub const ModuleDebugInfo = switch (native_os) {
.solaris,
.windows,
=> return try DebugInfo.init(allocator),
@@ -1748,7 +1749,7 @@ pub const ModuleDebugInfo = switch (native_os) {
};
}
},
@ -477,19 +703,19 @@ index 90ceff3df157f3d94feddceae12de59fc2e3581d..5c25a8c9cebcb0cce01b229808ea67c5
dwarf: DW.DwarfInfo,
mapped_memory: []align(mem.page_size) const u8,
diff --git a/zig/lib/std/fs.zig b/zig/lib/std/fs.zig
index e253aaff9e9505182db90c8fa08aa931dca8a0ba..cebf86fc05164ff311731deb4c75730d4dc84d27 100644
index cb6ce2032ec7e2f2bc720f354558bb5335ae7d24..3894bc6dfc4bb383f7055dd4a264e9f9e2132d76 100644
--- a/zig/lib/std/fs.zig
+++ b/zig/lib/std/fs.zig
@@ -34,7 +34,7 @@ pub const Watch = @import("fs/watch.zig").Watch;
@@ -39,7 +39,7 @@ pub const Watch = @import("fs/watch.zig").Watch;
/// fit into a UTF-8 encoded array of this length.
/// The byte count includes room for a null sentinel byte.
pub const MAX_PATH_BYTES = switch (builtin.os.tag) {
- .linux, .macos, .ios, .freebsd, .netbsd, .dragonfly, .openbsd, .haiku, .solaris => os.PATH_MAX,
+ .linux, .macos, .ios, .freebsd, .netbsd, .dragonfly, .openbsd, .haiku, .solaris, .serenity => os.PATH_MAX,
- .linux, .macos, .ios, .freebsd, .openbsd, .netbsd, .dragonfly, .haiku, .solaris => os.PATH_MAX,
+ .linux, .macos, .ios, .freebsd, .openbsd, .netbsd, .dragonfly, .haiku, .solaris, .serenity => os.PATH_MAX,
// Each UTF-16LE character may be expanded to 3 UTF-8 bytes.
// If it would require 4 UTF-8 bytes, then there would be a surrogate
// pair in the UTF-16LE, and we (over)account 3 bytes for it that way.
@@ -521,6 +521,69 @@ pub const IterableDir = struct {
@@ -528,6 +528,69 @@ pub const IterableDir = struct {
self.first_iter = true;
}
},
@ -525,7 +751,7 @@ index e253aaff9e9505182db90c8fa08aa931dca8a0ba..cebf86fc05164ff311731deb4c75730d
+ return null;
+ }
+
+ const name = mem.sliceTo(@ptrCast([*:0]u8, &entry.?.d_name), 0);
+ const name = mem.sliceTo(@as([*:0]u8, @ptrCast(&entry.?.d_name)), 0);
+ if (mem.eql(u8, name, ".") or mem.eql(u8, name, ".."))
+ continue :start_over;
+
@ -539,15 +765,15 @@ index e253aaff9e9505182db90c8fa08aa931dca8a0ba..cebf86fc05164ff311731deb4c75730d
+ error.FileNotFound => unreachable, // lost the race
+ else => |e| return e,
+ };
+ const entry_kind = switch (stat_info.mode & os.S.IFMT) {
+ os.S.IFIFO => Entry.Kind.NamedPipe,
+ os.S.IFCHR => Entry.Kind.CharacterDevice,
+ os.S.IFDIR => Entry.Kind.Directory,
+ os.S.IFBLK => Entry.Kind.BlockDevice,
+ os.S.IFREG => Entry.Kind.File,
+ os.S.IFLNK => Entry.Kind.SymLink,
+ os.S.IFSOCK => Entry.Kind.UnixDomainSocket,
+ else => Entry.Kind.Unknown,
+ const entry_kind: Entry.Kind = switch (stat_info.mode & os.S.IFMT) {
+ os.S.IFIFO => .named_pipe,
+ os.S.IFCHR => .character_device,
+ os.S.IFDIR => .directory,
+ os.S.IFBLK => .block_device,
+ os.S.IFREG => .file,
+ os.S.IFLNK => .sym_link,
+ os.S.IFSOCK => .unix_domain_socket,
+ else => .unknown,
+ };
+ return Entry{
+ .name = name,
@ -559,7 +785,7 @@ index e253aaff9e9505182db90c8fa08aa931dca8a0ba..cebf86fc05164ff311731deb4c75730d
.haiku => struct {
dir: Dir,
buf: [1024]u8, // TODO align(@alignOf(os.dirent64)),
@@ -906,6 +969,11 @@ pub const IterableDir = struct {
@@ -913,6 +976,11 @@ pub const IterableDir = struct {
.buf = undefined,
.first_iter = first_iter_start_value,
},
@ -571,8 +797,8 @@ index e253aaff9e9505182db90c8fa08aa931dca8a0ba..cebf86fc05164ff311731deb4c75730d
.windows => return Iterator{
.dir = self.dir,
.index = 0,
@@ -2941,7 +3009,7 @@ pub fn selfExePath(out_buffer: []u8) SelfExePathError![]u8 {
return out_buffer[0..real_path.len];
@@ -2993,7 +3061,7 @@ pub fn selfExePath(out_buffer: []u8) SelfExePathError![]u8 {
return result;
}
switch (builtin.os.tag) {
- .linux => return os.readlinkZ("/proc/self/exe", out_buffer),
@ -581,7 +807,7 @@ index e253aaff9e9505182db90c8fa08aa931dca8a0ba..cebf86fc05164ff311731deb4c75730d
.freebsd, .dragonfly => {
var mib = [4]c_int{ os.CTL.KERN, os.KERN.PROC, os.KERN.PROC_PATHNAME, -1 };
diff --git a/zig/lib/std/fs/get_app_data_dir.zig b/zig/lib/std/fs/get_app_data_dir.zig
index 4f7ba9af623841cc8be7b6c48d55037f689fec8d..5a5b4de8aefe6962979a9a65f937cc35c78d7631 100644
index 2f599c32130e2be12f44fa015df91816614d5f5b..896dde5ab8e0e573dc137d9a86be8298abef8a1a 100644
--- a/zig/lib/std/fs/get_app_data_dir.zig
+++ b/zig/lib/std/fs/get_app_data_dir.zig
@@ -44,7 +44,7 @@ pub fn getAppDataDir(allocator: mem.Allocator, appname: []const u8) GetAppDataDi
@ -594,23 +820,35 @@ index 4f7ba9af623841cc8be7b6c48d55037f689fec8d..5a5b4de8aefe6962979a9a65f937cc35
return fs.path.join(allocator, &[_][]const u8{ xdg, appname });
}
diff --git a/zig/lib/std/os.zig b/zig/lib/std/os.zig
index f13ee03a967df2899aed1b935dd12975f5d07332..b1c174b774b40553c455d768c11ec6c752796a06 100644
index cb988ca9a8e67f1c3c383a0b2a74bda7b0e14152..0c740baadaeb045c0c01dc7be92f3472b01afa17 100644
--- a/zig/lib/std/os.zig
+++ b/zig/lib/std/os.zig
@@ -36,6 +36,7 @@ pub const haiku = std.c;
@@ -35,6 +35,7 @@ pub const freebsd = std.c;
pub const haiku = std.c;
pub const netbsd = std.c;
pub const openbsd = std.c;
pub const solaris = std.c;
+pub const serenity = std.c;
pub const solaris = std.c;
pub const linux = @import("os/linux.zig");
pub const plan9 = @import("os/plan9.zig");
pub const uefi = @import("os/uefi.zig");
@@ -5112,7 +5113,7 @@ pub fn getFdPath(fd: fd_t, out_buffer: *[MAX_PATH_BYTES]u8) RealPathError![]u8 {
@@ -5205,7 +5206,7 @@ pub fn getFdPath(fd: fd_t, out_buffer: *[MAX_PATH_BYTES]u8) RealPathError![]u8 {
const len = mem.indexOfScalar(u8, out_buffer[0..], @as(u8, 0)) orelse MAX_PATH_BYTES;
return out_buffer[0..len];
},
- .linux => {
+ .linux, .serenity => {
var procfs_buf: ["/proc/self/fd/-2147483648".len:0]u8 = undefined;
const proc_path = std.fmt.bufPrint(procfs_buf[0..], "/proc/self/fd/{d}\x00", .{fd}) catch unreachable;
var procfs_buf: ["/proc/self/fd/-2147483648\x00".len]u8 = undefined;
const proc_path = std.fmt.bufPrintZ(procfs_buf[0..], "/proc/self/fd/{d}", .{fd}) catch unreachable;
diff --git a/zig/lib/std/target.zig b/zig/lib/std/target.zig
index b137e48c02d7d7ecc0f5eae61f6225504bf0ba3d..956edd944f587759ae04f69d477447f96441367c 100644
--- a/zig/lib/std/target.zig
+++ b/zig/lib/std/target.zig
@@ -2079,6 +2079,7 @@ pub const Target = struct {
.ananas,
.fuchsia,
.minix,
+ .serenity,
=> switch (target.cpu.arch) {
.msp430 => switch (c_type) {
.char => return 8,

View file

@ -8,7 +8,7 @@ Subject: [PATCH] build: Adjust build process for SerenityOS
1 file changed, 52 insertions(+), 1 deletion(-)
diff --git a/build b/build
index 5db75471ba94da22550136754c5ae71a56b4527c..2e757e44e852e41bd998ff70c2a9992b69d2910f 100755
index 71b49cf828bc7f224a3a5dd0533fb4d4ccb873db..aae2f445209bbab53670a4809293e22e8a5091c0 100755
--- a/build
+++ b/build
@@ -17,6 +17,7 @@ case $TARGET_OS_CMAKE in

View file

@ -0,0 +1,21 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Andre Herbst <moormaster@gmx.net>
Date: Sat, 8 Jul 2023 14:17:19 +0200
Subject: [PATCH] zlib: Fix implicit write() method declaration error
---
zlib/gzguts.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/zlib/gzguts.h b/zlib/gzguts.h
index 57faf37165a3546c3d0a783457a51e7dedff49ae..3c700c2a908cf4f675299fb4769f905533945831 100644
--- a/zlib/gzguts.h
+++ b/zlib/gzguts.h
@@ -19,6 +19,7 @@
#endif
#include <stdio.h>
+#include <unistd.h>
#include "zlib.h"
#ifdef STDC
# include <string.h>

View file

@ -0,0 +1,21 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Andre Herbst <moormaster@gmx.net>
Date: Sun, 9 Jul 2023 01:24:04 +0200
Subject: [PATCH] build: Remove unsupported zig linker flag -z seperate-code
---
build | 1 +
1 file changed, 1 insertion(+)
diff --git a/build b/build
index aae2f445209bbab53670a4809293e22e8a5091c0..31754a58c596a80bcb302b98faae15c88ebe798b 100755
--- a/build
+++ b/build
@@ -190,6 +190,7 @@ cmake "$ROOTDIR/llvm" \
-DCMAKE_SYSTEM_NAME="$TARGET_OS_CMAKE" \
-DCMAKE_C_COMPILER="$ZIG;cc;-fno-sanitize=all;-s;-target;$TARGET;-mcpu=$MCPU" \
-DCMAKE_CXX_COMPILER="$ZIG;c++;-fno-sanitize=all;-s;-target;$TARGET;-mcpu=$MCPU" \
+ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--hash-style=gnu,-z,relro,-z,now,-z,noexecstack,-z,max-page-size=0x1000" \
-DCMAKE_ASM_COMPILER="$ZIG;cc;-fno-sanitize=all;-s;-target;$TARGET;-mcpu=$MCPU" \
-DCMAKE_RC_COMPILER="$ROOTDIR/out/host/bin/llvm-rc" \
-DCMAKE_AR="$ROOTDIR/out/host/bin/llvm-ar" \

View file

@ -0,0 +1,27 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: sin-ack <sin-ack@users.noreply.github.com>
Date: Sun, 16 Jul 2023 22:00:18 +0300
Subject: [PATCH] docgen: Filter ZIG_LIBC from the environment
This environment variable can leak into the doctest builds and cause
them to look for the host libraries in the target libc locations.
---
zig/doc/docgen.zig | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/zig/doc/docgen.zig b/zig/doc/docgen.zig
index 675dcccf70b599600112fd894e7b4bc3a38ad52f..1b0ba0e2775cb16e3bf324d4045d90ab6b81fee5 100644
--- a/zig/doc/docgen.zig
+++ b/zig/doc/docgen.zig
@@ -1307,6 +1307,11 @@ fn genHtml(
var env_map = try process.getEnvMap(allocator);
try env_map.put("YES_COLOR", "1");
+ // If we're cross-compiling Zig, it's possible that a different libc
+ // location is set via ZIG_LIBC. Since doctests are to execute on the
+ // host exclusively, we filter this variable out.
+ env_map.remove("ZIG_LIBC");
+
const host = try std.zig.system.NativeTargetInfo.detect(.{});
const builtin_code = try getBuiltinCode(allocator, &env_map, zig_exe, opt_zig_lib_dir);

View file

@ -0,0 +1,22 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: sin-ack <sin-ack@users.noreply.github.com>
Date: Mon, 17 Jul 2023 03:26:04 +0300
Subject: [PATCH] build: Set Zig version to 0.11.0-dev.4003+c6aa29b6f
---
build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build b/build
index 31754a58c596a80bcb302b98faae15c88ebe798b..ce4ded52344a89fbad56141c5ad30b11f46d4527 100755
--- a/build
+++ b/build
@@ -6,7 +6,7 @@ TARGET="$1" # Example: riscv64-linux-gnu
MCPU="$2" # Examples: `baseline`, `native`, `generic+v7a`, or `arm1176jzf_s`
ROOTDIR="$(pwd)"
-ZIG_VERSION="0.11.0-dev.2680+a1aa55ebe"
+ZIG_VERSION="0.11.0-dev.4003+c6aa29b6f"
TARGET_OS_AND_ABI=${TARGET#*-} # Example: linux-gnu

View file

@ -1,6 +1,6 @@
# Patches for zig on SerenityOS
## `0001-Add-support-for-building-LLVM-on-SerenityOS.patch`
## `0001-Support-Add-support-for-building-LLVM-on-SerenityOS.patch`
Add support for building LLVM on SerenityOS
@ -9,12 +9,12 @@ Adds SerenityOS `#ifdef`s for platform-specific code.
We stub out wait4, as SerenityOS doesn't support querying a child
process's resource usage information.
## `0002-Add-triple-for-SerenityOS.patch`
## `0002-Triple-Add-triple-for-SerenityOS.patch`
Add triple for SerenityOS
## `0003-Add-support-for-SerenityOS.patch`
## `0003-Driver-Add-support-for-SerenityOS.patch`
Add support for SerenityOS
@ -23,7 +23,7 @@ This makes the compiler look for libraries and headers in the right
places, and enables some security mitigations like stack-smashing
protection and position-independent code by default.
## `0004-Default-to-ftls-model-initial-exec-on-SerenityOS.patch`
## `0004-Driver-Default-to-ftls-model-initial-exec-on-Serenit.patch`
Default to -ftls-model=initial-exec on SerenityOS
@ -32,7 +32,7 @@ the default local-exec when building code for Serenity.
This patch should be removed when we implement proper TLS support.
## `0005-Add-support-for-SerenityOS.patch`
## `0005-libc-Add-support-for-SerenityOS.patch`
Add support for SerenityOS
@ -51,7 +51,7 @@ This commit is an adaptation of the LLVM patch by Daniel Bertalan to fit
the layout of the zig-bootstrap project.
## `0006-Allow-undefined-symbols-on-SerenityOS.patch`
## `0006-cmake-Allow-undefined-symbols-on-SerenityOS.patch`
Allow undefined symbols on SerenityOS
@ -59,7 +59,7 @@ Allow undefined symbols in LLVM libraries, which is needed because only
stubs are available for SerenityOS libraries when libc++ and libunwind
are built.
## `0007-Support-building-shared-libLLVM-and-libClang-for-Ser.patch`
## `0007-cmake-Support-building-shared-libLLVM-and-libClang-f.patch`
Support building shared libLLVM and libClang for SerenityOS
@ -75,21 +75,17 @@ it, and the ELF sections that store version data would just waste space.
Add SerenityOS to config.guess
## `0009-Prevent-the-use-of-POSIX-shm-on-SerenityOS.patch`
## `0009-llvm-Prevent-the-use-of-POSIX-shm-on-SerenityOS.patch`
Prevent the use of POSIX shm on SerenityOS
POSIX shm is not supported by SerenityOS yet, so this causes a
compilation error.
## `0010-llvm-Implement-bigint-to-LLVM-int-for-32-bit-compile.patch`
## `0010-cmake-Increase-the-default-stack-size-when-running-o.patch`
llvm: Implement bigint-to-LLVM int for 32-bit compiler builds
cmake: Increase the default stack size when running on SerenityOS
The conversion to DoubleLimb is necessary due to LLVM only accepting
64-bit limbs for big integers. Since we need some space to store it, we
also have to allocate. This is an unfortunate penalty that 32-bit
compiler builds have to take.
## `0011-Add-SerenityOS-target.patch`
@ -107,3 +103,25 @@ Implement SerenityOS support in std
build: Adjust build process for SerenityOS
## `0014-zlib-Fix-implicit-write-method-declaration-error.patch`
zlib: Fix implicit write() method declaration error
## `0015-build-Remove-unsupported-zig-linker-flag-z-seperate-.patch`
build: Remove unsupported zig linker flag -z seperate-code
## `0016-docgen-Filter-ZIG_LIBC-from-the-environment.patch`
docgen: Filter ZIG_LIBC from the environment
This environment variable can leak into the doctest builds and cause
them to look for the host libraries in the target libc locations.
## `0017-build-Set-Zig-version-to-0.11.0-dev.4003-c6aa29b6f.patch`
build: Set Zig version to 0.11.0-dev.4003+c6aa29b6f

View file

@ -149,10 +149,64 @@ PROT_EXEC
PROT_NONE
PROT_READ
PROT_WRITE
PTHREAD_STACK_MIN
R_OK
SEEK_CUR
SEEK_END
SEEK_SET
SIGABRT
SIGALRM
SIGBUS
SIGCANCEL
SIGCHLD
SIGCONT
SIGFPE
SIGHUP
SIGILL
SIGINFO
SIGINT
SIGINVAL
SIGIO
SIGKILL
SIGPIPE
SIGPROF
SIGQUIT
SIGSEGV
SIGSTKFLT
SIGSTOP
SIGSYS
SIGTERM
SIGTRAP
SIGTSTP
SIGTTIN
SIGTTOU
SIGURG
SIGUSR1
SIGUSR2
SIGVTALRM
SIGWINCH
SIGXCPU
SIGXFSZ
SOL_SOCKET
SO_ACCEPTCONN
SO_BINDTODEVICE
SO_BROADCAST
SO_DEBUG
SO_DONTROUTE
SO_ERROR
SO_KEEPALIVE
SO_LINGER
SO_OOBINLINE
SO_PEERCRED
SO_RCVBUF
SO_RCVLOWAT
SO_RCVTIMEO
SO_REUSEADDR
SO_SNDBUF
SO_SNDLOWAT
SO_SNDTIMEO
SO_TIMESTAMP
SO_TYPE
STDERR_FILENO
STDIN_FILENO
STDOUT_FILENO

View file

@ -12,6 +12,7 @@ const SerenityIncludes = @cImport({
@cInclude("stdio.h");
@cInclude("sys/file.h");
@cInclude("sys/mman.h");
@cInclude("sys/socket.h");
@cInclude("sys/stat.h");
@cInclude("sys/types.h");
@cInclude("sys/uio.h");