diff options
Diffstat (limited to 'Toolchain/Patches')
18 files changed, 87 insertions, 102 deletions
diff --git a/Toolchain/Patches/binutils.patch b/Toolchain/Patches/binutils.patch index be6713987d..05805bc6ac 100644 --- a/Toolchain/Patches/binutils.patch +++ b/Toolchain/Patches/binutils.patch @@ -17,10 +17,10 @@ triple. create mode 100644 gas/config/te-serenity.h diff --git a/bfd/config.bfd b/bfd/config.bfd -index cfe58247..9a10e011 100644 +index a4c6c8e8854f1e3841827150a900b2ce6aa0c88e..87c41563e201a75bba80a2d9f5057250b0aebcdd 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd -@@ -277,6 +277,11 @@ case "${targ}" in +@@ -274,6 +274,11 @@ case "${targ}" in targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec" want64=true ;; @@ -32,7 +32,7 @@ index cfe58247..9a10e011 100644 aarch64-*-linux* | aarch64-*-netbsd*) targ_defvec=aarch64_elf64_le_vec targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec aarch64_pei_vec" -@@ -656,6 +661,11 @@ case "${targ}" in +@@ -655,6 +660,11 @@ case "${targ}" in targ_selvecs= targ64_selvecs=x86_64_elf64_vec ;; @@ -44,7 +44,7 @@ index cfe58247..9a10e011 100644 #ifdef BFD64 x86_64-*-cloudabi*) targ_defvec=x86_64_elf64_cloudabi_vec -@@ -721,6 +731,11 @@ case "${targ}" in +@@ -720,6 +730,11 @@ case "${targ}" in targ_selvecs=i386_elf32_vec want64=true ;; @@ -57,10 +57,10 @@ index cfe58247..9a10e011 100644 i[3-7]86-*-lynxos*) targ_defvec=i386_elf32_vec diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c -index e0632681..4e9ba9fd 100644 +index 9cd33a91660695cfedad2a027434d44fb515e5b5..f2a02726b6d2b561b4cdaa2106c3a9fb6c3df750 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c -@@ -481,7 +481,8 @@ const char extra_symbol_chars[] = "*%-([{}" +@@ -474,7 +474,8 @@ const char extra_symbol_chars[] = "*%-([{}" && !defined (TE_Haiku) \ && !defined (TE_FreeBSD) \ && !defined (TE_DragonFly) \ @@ -72,7 +72,7 @@ index e0632681..4e9ba9fd 100644 --divide will remove '/' from this list. */ diff --git a/gas/config/te-serenity.h b/gas/config/te-serenity.h new file mode 100644 -index 00000000..f38faf59 +index 0000000000000000000000000000000000000000..f38faf598cba7f561ed9528ee37328228ee55bdc --- /dev/null +++ b/gas/config/te-serenity.h @@ -0,0 +1,3 @@ @@ -80,7 +80,7 @@ index 00000000..f38faf59 + +#define TE_SerenityOS 1 diff --git a/gas/configure.tgt b/gas/configure.tgt -index 62f806bd..67ca2445 100644 +index 62f806bdfe8e9f281ab0d1f19e216c7662fcf8b1..67ca244530b87c981569053cc91e9171ec1796fb 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -134,6 +134,7 @@ case ${generic_target} in @@ -100,10 +100,10 @@ index 62f806bd..67ca2445 100644 ia16-*-elf*) fmt=elf ;; diff --git a/ld/Makefile.am b/ld/Makefile.am -index b55a873d..760f328a 100644 +index d31021c13e2e342cc82c2d49ac9c178f3a723d38..5f6f4d9a4c612691b7ea3d974cfe995a5ed80515 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am -@@ -463,6 +463,7 @@ ALL_64_EMULATION_SOURCES = \ +@@ -456,6 +456,7 @@ ALL_64_EMULATION_SOURCES = \ eelf_x86_64_cloudabi.c \ eelf_x86_64_fbsd.c \ eelf_x86_64_haiku.c \ @@ -112,10 +112,10 @@ index b55a873d..760f328a 100644 ehppa64linux.c \ ei386pep.c \ diff --git a/ld/Makefile.in b/ld/Makefile.in -index 61e93eea..8b9ee2cf 100644 +index ee0c98f65b0ff2dc9a1d4e8118e5bc8bea22ff68..170d9f090797d57814e701eb5089912bb000bd0d 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in -@@ -953,6 +953,7 @@ ALL_64_EMULATION_SOURCES = \ +@@ -952,6 +952,7 @@ ALL_64_EMULATION_SOURCES = \ eelf_x86_64_cloudabi.c \ eelf_x86_64_fbsd.c \ eelf_x86_64_haiku.c \ @@ -124,10 +124,10 @@ index 61e93eea..8b9ee2cf 100644 ehppa64linux.c \ ei386pep.c \ diff --git a/ld/configure.tgt b/ld/configure.tgt -index c7acf3f1..d34b9ea3 100644 +index 2bae9099b6aae1f23afa5be74e84aeb7626d1058..b96ae9d69f51141780510e3a366e0f4fcd93d5c5 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt -@@ -59,6 +59,9 @@ aarch64-*-freebsd*) targ_emul=aarch64fbsd +@@ -96,6 +96,9 @@ aarch64-*-freebsd*) targ_emul=aarch64fbsd aarch64-*-fuchsia*) targ_emul=aarch64elf targ_extra_emuls="aarch64elfb armelf armelfb" ;; @@ -137,7 +137,7 @@ index c7acf3f1..d34b9ea3 100644 aarch64_be-*-linux-gnu_ilp32) targ_emul=aarch64linux32b targ_extra_libpath="aarch64linuxb aarch64linux aarch64linux32 armelfb_linux_eabi armelf_linux_eabi" -@@ -332,6 +335,9 @@ i[3-7]86-*-linux-*) targ_emul=elf_i386 +@@ -369,6 +372,9 @@ i[3-7]86-*-linux-*) targ_emul=elf_i386 i[3-7]86-*-redox*) targ_emul=elf_i386 targ_extra_emuls=elf_x86_64 ;; @@ -147,7 +147,7 @@ index c7acf3f1..d34b9ea3 100644 i[3-7]86-*-sysv[45]*) targ_emul=elf_i386 targ_extra_emuls=elf_iamcu ;; -@@ -970,6 +976,9 @@ x86_64-*-linux-*) targ_emul=elf_x86_64 +@@ -1007,6 +1013,9 @@ x86_64-*-linux-*) targ_emul=elf_x86_64 x86_64-*-redox*) targ_emul=elf_x86_64 targ_extra_emuls=elf_i386 ;; @@ -155,5 +155,5 @@ index c7acf3f1..d34b9ea3 100644 + targ_extra_emuls="elf_i386" + ;; x86_64-*-solaris2*) targ_emul=elf_x86_64_sol2 - targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu elf_l1om elf_k1om" + targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu" targ_extra_libpath=$targ_extra_emuls diff --git a/Toolchain/Patches/gcc/0001-Add-a-gcc-driver-for-SerenityOS.patch b/Toolchain/Patches/gcc/0001-Add-a-gcc-driver-for-SerenityOS.patch index 073338ff0a..8bb93a480e 100644 --- a/Toolchain/Patches/gcc/0001-Add-a-gcc-driver-for-SerenityOS.patch +++ b/Toolchain/Patches/gcc/0001-Add-a-gcc-driver-for-SerenityOS.patch @@ -1,7 +1,7 @@ -From 00ad6c7f79fffa5fe13a9e5b77ad06e987fde3e8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andreas Kling <awesomekling@gmail.com> Date: Fri, 5 Apr 2019 03:02:52 +0200 -Subject: [PATCH 1/6] Add a gcc driver for SerenityOS +Subject: [PATCH] Add a gcc driver for SerenityOS This patch adds support for the `*-*-serenity` target to gcc. @@ -19,17 +19,17 @@ Co-Authored-By: Brian Gianforcaro <bgianf@serenityos.org> Co-Authored-By: Philip Herron <herron.philip@googlemail.com> Co-Authored-By: Shannon Booth <shannon.ml.booth@gmail.com> --- - gcc/config.gcc | 20 ++++++++++++++++ + gcc/config.gcc | 20 +++++++++++++++ gcc/config/i386/serenity.h | 7 ++++++ gcc/config/serenity.h | 51 ++++++++++++++++++++++++++++++++++++++ - gcc/config/serenity.opt | 35 ++++++++++++++++++++++++++++ - 4 files changed, 109 insertions(+) + gcc/config/serenity.opt | 35 ++++++++++++++++++++++++++ + 4 files changed, 113 insertions(+) create mode 100644 gcc/config/i386/serenity.h create mode 100644 gcc/config/serenity.h create mode 100644 gcc/config/serenity.opt diff --git a/gcc/config.gcc b/gcc/config.gcc -index c5064dd37..f8a468c6f 100644 +index c5064dd376660c192d5573997b4fc86b6b3e3838..f8a468c6f86c559eda37f780cf592245e42c78ac 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -673,6 +673,13 @@ x86_cpus="generic intel" @@ -68,7 +68,7 @@ index c5064dd37..f8a468c6f 100644 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h" diff --git a/gcc/config/i386/serenity.h b/gcc/config/i386/serenity.h new file mode 100644 -index 000000000..53a4b8e93 +index 0000000000000000000000000000000000000000..53a4b8e93b74b4808a4bfed91c4d5558217c584a --- /dev/null +++ b/gcc/config/i386/serenity.h @@ -0,0 +1,7 @@ @@ -81,7 +81,7 @@ index 000000000..53a4b8e93 +#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int") diff --git a/gcc/config/serenity.h b/gcc/config/serenity.h new file mode 100644 -index 000000000..dc2f5361e +index 0000000000000000000000000000000000000000..17551aaa1a07e6c0b7365f98899375122ba12529 --- /dev/null +++ b/gcc/config/serenity.h @@ -0,0 +1,51 @@ @@ -138,7 +138,7 @@ index 000000000..dc2f5361e + } while(0); diff --git a/gcc/config/serenity.opt b/gcc/config/serenity.opt new file mode 100644 -index 000000000..2756a5575 +index 0000000000000000000000000000000000000000..2756a5575480449a2c46b9fdfde541ba2787a263 --- /dev/null +++ b/gcc/config/serenity.opt @@ -0,0 +1,35 @@ @@ -177,6 +177,3 @@ index 000000000..2756a5575 +Driver + +; This comment is to ensure we retain the blank line above. --- -2.36.1 - diff --git a/Toolchain/Patches/gcc/0002-fixincludes-Skip-for-SerenityOS-targets.patch b/Toolchain/Patches/gcc/0002-fixincludes-Skip-for-SerenityOS-targets.patch index 926f4664d3..21bd5de027 100644 --- a/Toolchain/Patches/gcc/0002-fixincludes-Skip-for-SerenityOS-targets.patch +++ b/Toolchain/Patches/gcc/0002-fixincludes-Skip-for-SerenityOS-targets.patch @@ -1,7 +1,7 @@ -From e7d65e2c0943078214d9231cbb5c5e8eb9b5c726 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andreas Kling <awesomekling@gmail.com> Date: Fri, 5 Apr 2019 03:02:52 +0200 -Subject: [PATCH 2/6] fixincludes: Skip for SerenityOS targets +Subject: [PATCH] fixincludes: Skip for SerenityOS targets `fixincludes` is responsible for fixing mistakes in system headers that rely in compiler extensions that GCC doesn't support or cause errors in @@ -13,7 +13,7 @@ Our headers don't have such problems, so this hack is of no use for us. 1 file changed, 1 insertion(+) diff --git a/fixincludes/mkfixinc.sh b/fixincludes/mkfixinc.sh -index df90720b7..a45cdd0de 100755 +index df90720b716f2386f343f5ba46a2d8d706188dd5..a45cdd0de6833a1e632292722387be453a079053 100755 --- a/fixincludes/mkfixinc.sh +++ b/fixincludes/mkfixinc.sh @@ -11,6 +11,7 @@ target=fixinc.sh @@ -24,6 +24,3 @@ index df90720b7..a45cdd0de 100755 i?86-*-cygwin* | \ i?86-*-mingw32* | \ x86_64-*-mingw32* | \ --- -2.36.1 - diff --git a/Toolchain/Patches/gcc/0003-libgcc-Build-for-SerenityOS.patch b/Toolchain/Patches/gcc/0003-libgcc-Build-for-SerenityOS.patch index d615a4e848..63926b1763 100644 --- a/Toolchain/Patches/gcc/0003-libgcc-Build-for-SerenityOS.patch +++ b/Toolchain/Patches/gcc/0003-libgcc-Build-for-SerenityOS.patch @@ -1,7 +1,7 @@ -From 9297a27635e83df95c644b9f776d65078c97162e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andreas Kling <awesomekling@gmail.com> Date: Mon, 16 May 2022 15:01:06 +0200 -Subject: [PATCH 3/6] libgcc: Build for SerenityOS +Subject: [PATCH] libgcc: Build for SerenityOS This patch enables building gcc's own C runtime files, and sets up exception handling support. @@ -20,7 +20,7 @@ Co-Authored-By: Shannon Booth <shannon.ml.booth@gmail.com> 3 files changed, 25 insertions(+) diff --git a/gcc/configure b/gcc/configure -index 5ce055771..2deaac5bc 100755 +index 5ce0557719a9fe0acf9a0f0ffaf949e9eeba0eb1..2deaac5bc85815a7e3efc47a935fb81fca9b24da 100755 --- a/gcc/configure +++ b/gcc/configure @@ -31608,6 +31608,9 @@ case "$target" in @@ -34,7 +34,7 @@ index 5ce055771..2deaac5bc 100755 if test x$gcc_cv_target_dl_iterate_phdr = xyes; then diff --git a/libgcc/config.host b/libgcc/config.host -index 8c56fcae5..f5855cfa6 100644 +index 8c56fcae5d2fdfcc8d1f9b2614f0c41ad44f258f..f5855cfa66d7950c3d7565ad938b4e4727d7b46d 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -1534,6 +1534,22 @@ nvptx-*) @@ -61,7 +61,7 @@ index 8c56fcae5..f5855cfa6 100644 echo "*** Configuration ${host} not supported" 1>&2 exit 1 diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c -index 7f9be5e6b..817c3fe21 100644 +index 7f9be5e6b021a539278570ad202f1f9c45311ca1..817c3fe219252ab3e1707913ebd53dfd97616b58 100644 --- a/libgcc/unwind-dw2-fde-dip.c +++ b/libgcc/unwind-dw2-fde-dip.c @@ -57,6 +57,12 @@ @@ -77,6 +77,3 @@ index 7f9be5e6b..817c3fe21 100644 #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ && defined(TARGET_DL_ITERATE_PHDR) \ && defined(__linux__) --- -2.36.1 - diff --git a/Toolchain/Patches/gcc/0004-libgcc-Do-not-link-libgcc_s-to-LibC.patch b/Toolchain/Patches/gcc/0004-libgcc-Do-not-link-libgcc_s-to-LibC.patch index 221330925b..ac13a3c45f 100644 --- a/Toolchain/Patches/gcc/0004-libgcc-Do-not-link-libgcc_s-to-LibC.patch +++ b/Toolchain/Patches/gcc/0004-libgcc-Do-not-link-libgcc_s-to-LibC.patch @@ -1,7 +1,7 @@ -From c4e0f7d997b3f7cd5c5465a636e097e43170d609 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andreas Kling <awesomekling@gmail.com> Date: Mon, 16 May 2022 15:03:14 +0200 -Subject: [PATCH 4/6] libgcc: Do not link libgcc_s to LibC +Subject: [PATCH] libgcc: Do not link libgcc_s to LibC The toolchain is built before LibC, so linking to the C runtime library would fail. @@ -17,7 +17,7 @@ Co-Authored-By: Shannon Booth <shannon.ml.booth@gmail.com> 1 file changed, 1 deletion(-) diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc -index 4efd7b43d..932fa0cfb 100644 +index 4efd7b43dff96b6adb87993e4c66cbcb5ae144dc..932fa0cfbdeff6bb029fcf4b44d93d126d1ecd5f 100644 --- a/libgcc/config/t-slibgcc +++ b/libgcc/config/t-slibgcc @@ -26,7 +26,6 @@ SHLIB_MAP = @shlib_map_file@ @@ -28,6 +28,3 @@ index 4efd7b43d..932fa0cfb 100644 SHLIB_MAKE_SOLINK = $(LN_S) $(SHLIB_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK) SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) --- -2.36.1 - diff --git a/Toolchain/Patches/gcc/0005-i386-Disable-math-errno-for-SerenityOS.patch b/Toolchain/Patches/gcc/0005-i386-Disable-math-errno-for-SerenityOS.patch index 404eeecbbe..ca550a63ae 100644 --- a/Toolchain/Patches/gcc/0005-i386-Disable-math-errno-for-SerenityOS.patch +++ b/Toolchain/Patches/gcc/0005-i386-Disable-math-errno-for-SerenityOS.patch @@ -1,7 +1,7 @@ -From 7cb91a236863aa5c582d25a920ffbb7408c10e2f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bertalan <dani@danielbertalan.dev> Date: Mon, 16 May 2022 15:04:33 +0200 -Subject: [PATCH 5/6] i386: Disable math errno for SerenityOS +Subject: [PATCH] i386: Disable math errno for SerenityOS SerenityOS uses exceptions for math error handling, which allows the compiler to do more optimizations on calls to math functions. This patch @@ -11,7 +11,7 @@ has the effect of setting -fno-math-errno by default. 1 file changed, 4 insertions(+) diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc -index 07fdd045f..6e2419563 100644 +index 07fdd045f3032a445a0be45fa62eab9636c3ce2f..6e241956311fbcee3d7e04c7a30f4b73cd61877f 100644 --- a/gcc/common/config/i386/i386-common.cc +++ b/gcc/common/config/i386/i386-common.cc @@ -1707,6 +1707,10 @@ ix86_option_init_struct (struct gcc_options *opts) @@ -25,6 +25,3 @@ index 07fdd045f..6e2419563 100644 opts->x_flag_pcc_struct_return = 2; opts->x_flag_asynchronous_unwind_tables = 2; } --- -2.36.1 - diff --git a/Toolchain/Patches/gcc/0006-libstdc-Support-SerenityOS.patch b/Toolchain/Patches/gcc/0006-libstdc-Support-SerenityOS.patch index 96bb013a0d..ad5a3930b6 100644 --- a/Toolchain/Patches/gcc/0006-libstdc-Support-SerenityOS.patch +++ b/Toolchain/Patches/gcc/0006-libstdc-Support-SerenityOS.patch @@ -1,7 +1,10 @@ -From b581fd421af5691bdafda7d30b20723f77d0cc88 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andreas Kling <awesomekling@gmail.com> Date: Mon, 16 May 2022 15:08:53 +0200 -Subject: [PATCH 6/6] libstdc++: Support SerenityOS +Subject: [PATCH] libstdc++: Support SerenityOS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit During the toolchain build, SerenityOS libraries are not available, so we have to manually tell libstdc++ about what our LibC supports. @@ -24,7 +27,7 @@ Co-Authored-By: Shannon Booth <shannon.ml.booth@gmail.com> 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 -index 138bd58d8..6cd7564b6 100644 +index e3cc3a8e867d3428d34f2b4db9c47104a0385450..6e30c391dac74101321a52ca17d8215c05f87844 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -1374,7 +1374,7 @@ AC_DEFUN([GLIBCXX_ENABLE_LIBSTDCXX_TIME], [ @@ -46,7 +49,7 @@ index 138bd58d8..6cd7564b6 100644 ;; *) diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index 9b94fd71e..51e45878f 100755 +index eac6039212168e1cd33e1b6c2b938324fd403f12..11d23dba48e5799c31335f71911e1c4dca65a245 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -11914,6 +11914,11 @@ else @@ -89,7 +92,7 @@ index 9b94fd71e..51e45878f 100755 $as_echo "#define HAVE_ASINF 1" >>confdefs.h diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host -index ec32980aa..e060300f3 100644 +index ec32980aa0db898623804980af65dad588e4d9f5..e060300f3777fbd38795954ca75e9c4809cfc4e3 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -297,6 +297,9 @@ case "${host_os}" in @@ -103,7 +106,7 @@ index ec32980aa..e060300f3 100644 os_include_dir="os/solaris" ;; diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4 -index ae5283b7a..b9fc96e94 100644 +index ae5283b7ad378934b409455e7409ac9cac26a20a..b9fc96e942cba64aa76de1decc0daa9999fd53e9 100644 --- a/libstdc++-v3/crossconfig.m4 +++ b/libstdc++-v3/crossconfig.m4 @@ -9,7 +9,7 @@ case "${host}" in @@ -115,6 +118,3 @@ index ae5283b7a..b9fc96e94 100644 AC_DEFINE(HAVE_ACOSF) AC_DEFINE(HAVE_ASINF) AC_DEFINE(HAVE_ATAN2F) --- -2.36.1 - diff --git a/Toolchain/Patches/gcc/ReadMe.md b/Toolchain/Patches/gcc/ReadMe.md index 0dbae0a2ab..0347faaea4 100644 --- a/Toolchain/Patches/gcc/ReadMe.md +++ b/Toolchain/Patches/gcc/ReadMe.md @@ -10,6 +10,7 @@ It specifies which flags need to be passed to the linker, defines the __serenity__ macro, sets the correct underlying type of `size_t` and `ptrdiff_t`, and enables IFUNCs. + ## `0002-fixincludes-Skip-for-SerenityOS-targets.patch` fixincludes: Skip for SerenityOS targets @@ -27,6 +28,7 @@ libgcc: Build for SerenityOS This patch enables building gcc's own C runtime files, and sets up exception handling support. + ## `0004-libgcc-Do-not-link-libgcc_s-to-LibC.patch` libgcc: Do not link libgcc_s to LibC @@ -34,6 +36,7 @@ libgcc: Do not link libgcc_s to LibC The toolchain is built before LibC, so linking to the C runtime library would fail. + ## `0005-i386-Disable-math-errno-for-SerenityOS.patch` i386: Disable math errno for SerenityOS @@ -51,3 +54,4 @@ we have to manually tell libstdc++ about what our LibC supports. In most places, we take the Newlib code paths. + diff --git a/Toolchain/Patches/llvm/0001-Support-Add-support-for-building-LLVM-on-SerenityOS.patch b/Toolchain/Patches/llvm/0001-Support-Add-support-for-building-LLVM-on-SerenityOS.patch index a49051da5c..6b97ed9452 100644 --- a/Toolchain/Patches/llvm/0001-Support-Add-support-for-building-LLVM-on-SerenityOS.patch +++ b/Toolchain/Patches/llvm/0001-Support-Add-support-for-building-LLVM-on-SerenityOS.patch @@ -14,7 +14,7 @@ process's resource usage information. 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/llvm/include/llvm/Support/SwapByteOrder.h b/llvm/include/llvm/Support/SwapByteOrder.h -index e8612ba66..f0109f4b3 100644 +index e8612ba6654b5d950b2eb570c23ebbb79d4dc035..f0109f4b30e83cefc745e0575deaf89b1e51c35a 100644 --- a/llvm/include/llvm/Support/SwapByteOrder.h +++ b/llvm/include/llvm/Support/SwapByteOrder.h @@ -22,7 +22,7 @@ @@ -27,7 +27,7 @@ index e8612ba66..f0109f4b3 100644 #elif defined(_AIX) #include <sys/machine.h> diff --git a/llvm/lib/Support/Unix/Path.inc b/llvm/lib/Support/Unix/Path.inc -index 2ae7c6dc4..bf173117b 100644 +index 2ae7c6dc47e071a7801c346a6d40e0db45e49beb..bf173117bb9be72902597569dc94ff81efe5af38 100644 --- a/llvm/lib/Support/Unix/Path.inc +++ b/llvm/lib/Support/Unix/Path.inc @@ -112,7 +112,7 @@ typedef uint_t uint; @@ -50,7 +50,7 @@ index 2ae7c6dc4..bf173117b 100644 // statvfs::f_basetype contains a null-terminated FSType name of the mounted target StringRef fstype(Vfs.f_basetype); diff --git a/llvm/lib/Support/Unix/Program.inc b/llvm/lib/Support/Unix/Program.inc -index 089342030..3ffe064e5 100644 +index 089342030b97e178d749a54b2d43ae5338b5b097..3ffe064e5f0de06ac76c34b218e44fe7a8d9eaf6 100644 --- a/llvm/lib/Support/Unix/Program.inc +++ b/llvm/lib/Support/Unix/Program.inc @@ -336,7 +336,7 @@ static bool Execute(ProcessInfo &PI, StringRef Program, diff --git a/Toolchain/Patches/llvm/0002-Triple-Add-triple-for-SerenityOS.patch b/Toolchain/Patches/llvm/0002-Triple-Add-triple-for-SerenityOS.patch index dd4b1a0e2b..dcb961459c 100644 --- a/Toolchain/Patches/llvm/0002-Triple-Add-triple-for-SerenityOS.patch +++ b/Toolchain/Patches/llvm/0002-Triple-Add-triple-for-SerenityOS.patch @@ -9,7 +9,7 @@ Subject: [PATCH] [Triple] Add triple for SerenityOS 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h -index ba4584dc6..7249849e8 100644 +index ba4584dc60faf1b9a170493bbe3075c08d5ff2a8..56e793cc0c0afa7c5f6bdd2e019a61dc518964f4 100644 --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h @@ -219,7 +219,8 @@ public: @@ -35,7 +35,7 @@ index ba4584dc6..7249849e8 100644 bool isOSBinFormatELF() const { return getObjectFormat() == Triple::ELF; diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp -index 6696d158b..5292164d7 100644 +index 6696d158b2c1ae3d31f0819880ec0814f74a3a16..5292164d7aaed944c934a89fe3e809fc427218eb 100644 --- a/llvm/lib/Support/Triple.cpp +++ b/llvm/lib/Support/Triple.cpp @@ -234,6 +234,7 @@ StringRef Triple::getOSTypeName(OSType Kind) { diff --git a/Toolchain/Patches/llvm/0003-Driver-Add-support-for-SerenityOS.patch b/Toolchain/Patches/llvm/0003-Driver-Add-support-for-SerenityOS.patch index 90d254f249..6f281360f1 100644 --- a/Toolchain/Patches/llvm/0003-Driver-Add-support-for-SerenityOS.patch +++ b/Toolchain/Patches/llvm/0003-Driver-Add-support-for-SerenityOS.patch @@ -14,14 +14,14 @@ protection and position-independent code by default. clang/lib/Driver/Driver.cpp | 4 + clang/lib/Driver/ToolChain.cpp | 2 + clang/lib/Driver/ToolChains/Arch/X86.cpp | 1 + - clang/lib/Driver/ToolChains/Serenity.cpp | 337 +++++++++++++++++++++++ + clang/lib/Driver/ToolChains/Serenity.cpp | 336 +++++++++++++++++++++++ clang/lib/Driver/ToolChains/Serenity.h | 99 +++++++ - 8 files changed, 468 insertions(+) + 8 files changed, 467 insertions(+) create mode 100644 clang/lib/Driver/ToolChains/Serenity.cpp create mode 100644 clang/lib/Driver/ToolChains/Serenity.h diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp -index 2d6ef9984..06abf1dfd 100644 +index 2d6ef998485ae1404e561dc12f962ce1bef2996d..06abf1dfdd5b91c2a0051363e2f04ec9b3f3285f 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -151,6 +151,8 @@ TargetInfo *AllocateTarget(const llvm::Triple &Triple, @@ -52,7 +52,7 @@ index 2d6ef9984..06abf1dfd 100644 return new X86_64TargetInfo(Triple, Opts); } diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h -index a814f681b..927eeb664 100644 +index a814f681b1468c7628daf6f5c9c6d723155821b0..927eeb66446a451b3cd9b08d9cdcfd6f8d4064ba 100644 --- a/clang/lib/Basic/Targets/OSTargets.h +++ b/clang/lib/Basic/Targets/OSTargets.h @@ -1013,6 +1013,24 @@ public: @@ -81,7 +81,7 @@ index a814f681b..927eeb664 100644 } // namespace clang #endif // LLVM_CLANG_LIB_BASIC_TARGETS_OSTARGETS_H diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt -index 18c9b2d04..ed7178e51 100644 +index 18c9b2d042f6c6e27382a4c72119250533e93482..ed7178e510584a465e695f64716bd399f3b131db 100644 --- a/clang/lib/Driver/CMakeLists.txt +++ b/clang/lib/Driver/CMakeLists.txt @@ -74,6 +74,7 @@ add_clang_library(clangDriver @@ -93,7 +93,7 @@ index 18c9b2d04..ed7178e51 100644 ToolChains/SPIRV.cpp ToolChains/TCE.cpp diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp -index 3f29afd35..184336551 100644 +index 3f29afd359718a1c21e9c9911f0e6ad5f1002a3a..18433655172bc90a97a24b619f11a3d9eba0d327 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -45,6 +45,7 @@ @@ -115,7 +115,7 @@ index 3f29afd35..184336551 100644 TC = std::make_unique<toolchains::Solaris>(*this, Target, Args); break; diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp -index 7a4319ea6..8db07d9dd 100644 +index 7a4319ea680f97dde074b21afa2ee6f75c350091..8db07d9dd0754bffeddf00afe365fe7d011cc602 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -452,6 +452,8 @@ StringRef ToolChain::getOSLibName() const { @@ -128,7 +128,7 @@ index 7a4319ea6..8db07d9dd 100644 return getOS(); } diff --git a/clang/lib/Driver/ToolChains/Arch/X86.cpp b/clang/lib/Driver/ToolChains/Arch/X86.cpp -index cd7c014fa..004185d28 100644 +index cd7c014faa5e0d503adc9f2c30b83b3efbb7e315..004185d28816b8e8bb903612aa053cb883524fc5 100644 --- a/clang/lib/Driver/ToolChains/Arch/X86.cpp +++ b/clang/lib/Driver/ToolChains/Arch/X86.cpp @@ -113,6 +113,7 @@ std::string x86::getX86TargetCPU(const Driver &D, const ArgList &Args, @@ -141,7 +141,7 @@ index cd7c014fa..004185d28 100644 // Fallback to p4. diff --git a/clang/lib/Driver/ToolChains/Serenity.cpp b/clang/lib/Driver/ToolChains/Serenity.cpp new file mode 100644 -index 000000000..6fc664a05 +index 0000000000000000000000000000000000000000..4fdf45a19eb2704d00a03e7b2f34f87f63a0a074 --- /dev/null +++ b/clang/lib/Driver/ToolChains/Serenity.cpp @@ -0,0 +1,336 @@ @@ -483,7 +483,7 @@ index 000000000..6fc664a05 +} diff --git a/clang/lib/Driver/ToolChains/Serenity.h b/clang/lib/Driver/ToolChains/Serenity.h new file mode 100644 -index 000000000..d414f8366 +index 0000000000000000000000000000000000000000..d414f836601c8ea8b43d64e9b111bffa2b71cd54 --- /dev/null +++ b/clang/lib/Driver/ToolChains/Serenity.h @@ -0,0 +1,99 @@ diff --git a/Toolchain/Patches/llvm/0004-Driver-Default-to-ftls-model-initial-exec-on-Serenit.patch b/Toolchain/Patches/llvm/0004-Driver-Default-to-ftls-model-initial-exec-on-Serenit.patch index 970138bdeb..8baa8cf7f3 100644 --- a/Toolchain/Patches/llvm/0004-Driver-Default-to-ftls-model-initial-exec-on-Serenit.patch +++ b/Toolchain/Patches/llvm/0004-Driver-Default-to-ftls-model-initial-exec-on-Serenit.patch @@ -12,7 +12,7 @@ This patch should be removed when we implement proper TLS support. 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp -index 3704ed858..cc7b59809 100644 +index 3704ed8586682677882acb8e1b82bfc14b1d07a5..cc7b598090a8795e5906abc7341f798be7dd638f 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -6029,7 +6029,13 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, diff --git a/Toolchain/Patches/llvm/0005-libc-Add-support-for-SerenityOS.patch b/Toolchain/Patches/llvm/0005-libc-Add-support-for-SerenityOS.patch index 44a7a77751..dd16bbadb3 100644 --- a/Toolchain/Patches/llvm/0005-libc-Add-support-for-SerenityOS.patch +++ b/Toolchain/Patches/llvm/0005-libc-Add-support-for-SerenityOS.patch @@ -24,7 +24,7 @@ LibC, namely: create mode 100644 libcxx/include/__support/serenity/xlocale.h diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt -index f7c2d99e7..8d3cb754d 100644 +index f7c2d99e78b08ff823b9d510a8608ebf50031b82..8d3cb754ddf4c599708b2be38fab1574ce3a4923 100644 --- a/libcxx/include/CMakeLists.txt +++ b/libcxx/include/CMakeLists.txt @@ -495,6 +495,7 @@ set(files @@ -36,7 +36,7 @@ index f7c2d99e7..8d3cb754d 100644 __support/solaris/wchar.h __support/solaris/xlocale.h diff --git a/libcxx/include/__config b/libcxx/include/__config -index 8c2f7614a..c7ebf50cb 100644 +index 8c2f7614af537e71a76cb5292d5765d6ff8cd279..c7ebf50cb5ebb3a96029cd9a8a38d836cf19a01e 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -912,7 +912,8 @@ _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD @@ -59,7 +59,7 @@ index 8c2f7614a..c7ebf50cb 100644 # endif diff --git a/libcxx/include/__locale b/libcxx/include/__locale -index 40f9a3ff5..1c499c078 100644 +index 40f9a3ff57c22635254be654227333b2a10eca6a..1c499c078b44a49abead17ce566801b4c34733f3 100644 --- a/libcxx/include/__locale +++ b/libcxx/include/__locale @@ -42,6 +42,8 @@ @@ -73,7 +73,7 @@ index 40f9a3ff5..1c499c078 100644 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/__support/serenity/xlocale.h b/libcxx/include/__support/serenity/xlocale.h new file mode 100644 -index 000000000..0f939d2f6 +index 0000000000000000000000000000000000000000..0f939d2f6989e2ad617145308d079776fe87b6ce --- /dev/null +++ b/libcxx/include/__support/serenity/xlocale.h @@ -0,0 +1,24 @@ @@ -102,7 +102,7 @@ index 000000000..0f939d2f6 + +#endif diff --git a/libcxx/include/locale b/libcxx/include/locale -index b01c66d04..da29b7d00 100644 +index b01c66d0430f66ee74118e73296780bb864e920b..da29b7d00c709788facb049f417b6d5ccb5b70e1 100644 --- a/libcxx/include/locale +++ b/libcxx/include/locale @@ -217,7 +217,7 @@ template <class charT> class messages_byname; @@ -115,7 +115,7 @@ index b01c66d04..da29b7d00 100644 # include <nl_types.h> # endif diff --git a/libcxx/src/include/config_elast.h b/libcxx/src/include/config_elast.h -index bef26ec50..fbb2899b1 100644 +index bef26ec5019eccab758733eb85a1f8a6fc404968..fbb2899b1939a2f9ce7a39337c99e48c7749f7f2 100644 --- a/libcxx/src/include/config_elast.h +++ b/libcxx/src/include/config_elast.h @@ -35,6 +35,8 @@ diff --git a/Toolchain/Patches/llvm/0006-compiler-rt-Build-crtbegin.o-crtend.o-for-SerenityOS.patch b/Toolchain/Patches/llvm/0006-compiler-rt-Build-crtbegin.o-crtend.o-for-SerenityOS.patch index 80dfa44dec..dd720d213e 100644 --- a/Toolchain/Patches/llvm/0006-compiler-rt-Build-crtbegin.o-crtend.o-for-SerenityOS.patch +++ b/Toolchain/Patches/llvm/0006-compiler-rt-Build-crtbegin.o-crtend.o-for-SerenityOS.patch @@ -8,7 +8,7 @@ Subject: [PATCH] [compiler-rt] Build crtbegin.o/crtend.o for SerenityOS 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler-rt/cmake/crt-config-ix.cmake b/compiler-rt/cmake/crt-config-ix.cmake -index 78d1a0de1..c8622c458 100644 +index 78d1a0de1c8a7caab9d30cc8f445d5d8c485dfc0..c8622c458ea49c7ed656d2fb8d164576bba107f8 100644 --- a/compiler-rt/cmake/crt-config-ix.cmake +++ b/compiler-rt/cmake/crt-config-ix.cmake @@ -43,7 +43,7 @@ if(NOT APPLE) diff --git a/Toolchain/Patches/llvm/0007-cmake-Allow-undefined-symbols-on-SerenityOS.patch b/Toolchain/Patches/llvm/0007-cmake-Allow-undefined-symbols-on-SerenityOS.patch index 60787f69d6..90829690bc 100644 --- a/Toolchain/Patches/llvm/0007-cmake-Allow-undefined-symbols-on-SerenityOS.patch +++ b/Toolchain/Patches/llvm/0007-cmake-Allow-undefined-symbols-on-SerenityOS.patch @@ -11,7 +11,7 @@ are built. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake -index 56d05f5b5..8597d80d3 100644 +index 56d05f5b5fcedf692cae22ffbe10a047d5532635..8597d80d3afd3e70e1306fdb7c36963f8e6aede4 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -228,7 +228,7 @@ endif() diff --git a/Toolchain/Patches/llvm/0008-cmake-Support-building-shared-libLLVM-and-libClang-f.patch b/Toolchain/Patches/llvm/0008-cmake-Support-building-shared-libLLVM-and-libClang-f.patch index 6e1ca4d879..89206a96b4 100644 --- a/Toolchain/Patches/llvm/0008-cmake-Support-building-shared-libLLVM-and-libClang-f.patch +++ b/Toolchain/Patches/llvm/0008-cmake-Support-building-shared-libLLVM-and-libClang-f.patch @@ -16,7 +16,7 @@ it, and the ELF sections that store version data would just waste space. 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/clang/tools/libclang/CMakeLists.txt b/clang/tools/libclang/CMakeLists.txt -index c6b3b44a7..d43e0b4c1 100644 +index c6b3b44a76334b86167971c48891db898d01f8d0..d43e0b4c1f7796c17c524626fba59e0dfaebf4b2 100644 --- a/clang/tools/libclang/CMakeLists.txt +++ b/clang/tools/libclang/CMakeLists.txt @@ -96,7 +96,7 @@ if(MSVC) @@ -29,7 +29,7 @@ index c6b3b44a7..d43e0b4c1 100644 set(USE_VERSION_SCRIPT ${LLVM_HAVE_LINK_VERSION_SCRIPT}) endif() diff --git a/llvm/tools/llvm-shlib/CMakeLists.txt b/llvm/tools/llvm-shlib/CMakeLists.txt -index 8e2b78f1b..909018753 100644 +index 8e2b78f1b85c0f2664f84e24d7588bb60e37fe77..909018753e2e09cb3a46bae35e9aaa45cc7703bc 100644 --- a/llvm/tools/llvm-shlib/CMakeLists.txt +++ b/llvm/tools/llvm-shlib/CMakeLists.txt @@ -39,6 +39,7 @@ if(LLVM_BUILD_LLVM_DYLIB) diff --git a/Toolchain/Patches/llvm/0009-compiler-rt-llvm-Enable-profile-instrumentation-for-.patch b/Toolchain/Patches/llvm/0009-compiler-rt-llvm-Enable-profile-instrumentation-for-.patch index f44069188a..0569f01e63 100644 --- a/Toolchain/Patches/llvm/0009-compiler-rt-llvm-Enable-profile-instrumentation-for-.patch +++ b/Toolchain/Patches/llvm/0009-compiler-rt-llvm-Enable-profile-instrumentation-for-.patch @@ -17,7 +17,7 @@ OS ABI for userspace binaries to 3, or GNU/Linux. 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake -index cd45176cf..ebaa74f4b 100644 +index cd45176cf2ba761667793903daccd5f02b0e690c..ebaa74f4b5a21c20459af911e2aaede3ac3a8184 100644 --- a/compiler-rt/cmake/config-ix.cmake +++ b/compiler-rt/cmake/config-ix.cmake @@ -756,7 +756,7 @@ else() @@ -30,7 +30,7 @@ index cd45176cf..ebaa74f4b 100644 else() set(COMPILER_RT_HAS_PROFILE FALSE) diff --git a/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c b/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c -index 3af61d249..ee46741d4 100644 +index 3af61d24948e7c9b6e8f3950a418516c603457a2..ee46741d47ead6c9e6931c8d3a6f16e8cd6407ae 100644 --- a/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c +++ b/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c @@ -8,7 +8,7 @@ @@ -43,7 +43,7 @@ index 3af61d249..ee46741d4 100644 #if !defined(_AIX) #include <elf.h> diff --git a/compiler-rt/lib/profile/InstrProfilingPlatformOther.c b/compiler-rt/lib/profile/InstrProfilingPlatformOther.c -index c7b6e842c..00fdf9ee6 100644 +index c7b6e842c9fac27b2885242d6c2cd48797bfe799..00fdf9ee6adc8e5fffda50cd981c901f02fddaf2 100644 --- a/compiler-rt/lib/profile/InstrProfilingPlatformOther.c +++ b/compiler-rt/lib/profile/InstrProfilingPlatformOther.c @@ -8,7 +8,7 @@ @@ -56,7 +56,7 @@ index c7b6e842c..00fdf9ee6 100644 #include <stdlib.h> #include <stdio.h> diff --git a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp -index 5b7aa304b..b3b037a6f 100644 +index 5b7aa304b9876fc027e251547340df56dcf0c343..b3b037a6fdf5ea2dd749c8eb5329c9a29b44f75c 100644 --- a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp +++ b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp @@ -822,7 +822,8 @@ static bool needsRuntimeRegistrationOfSectionRange(const Triple &TT) { diff --git a/Toolchain/Patches/llvm/ReadMe.md b/Toolchain/Patches/llvm/ReadMe.md index 54dfdca6cc..e4db6102c5 100644 --- a/Toolchain/Patches/llvm/ReadMe.md +++ b/Toolchain/Patches/llvm/ReadMe.md @@ -43,14 +43,9 @@ LibC, namely: * The number of errno constants defined by us is given by the value of the `ELAST` macro. * Multithreading is implemented though the pthread library. -* Aligned memory allocation is provided by the MSVCRT-like - `_aligned_{malloc,free}` functions. - -Adds a hack for a header not found error when including -`<initializer_list>` inside the SerenityOS kernel. - -Makes libc++ use its builtin character type table instead of the one -provided by LibC as it is incomplete. +* Use libc++'s builtin character type table instead of the one provided + by LibC as there's a lot of extra porting work to convince the rest of + locale.cpp to use our character type table properly. ## `0006-compiler-rt-Build-crtbegin.o-crtend.o-for-SerenityOS.patch` @@ -85,3 +80,4 @@ enough to linux to use the pre-canned InstrProfiling implementation. Curiously, enabling profiling for the SerenityOS target changes the ELF OS ABI for userspace binaries to 3, or GNU/Linux. + |