mirror of
https://github.com/SerenityOS/serenity.git
synced 2026-11-07 04:29:30 -10:00
While `pc` is not particularly wrong on x86_64, it's nonsensical on other supported platforms, namely aarch64 and riscv64. For consistency, we now don't use this vendor anymore, regardless of the platform. Within the LLVM project, we now build as `$arch-serenity`. This is enough in most cases, the only place where we have to specify a vendor is the target .cfg file where we use `$arch-unknown-serenity`. When building GCC and friends, again we simply identify as `$arch-serenity` and this is enough. As a result, the tools in Toolchain/Local/$arch/bin are now named after this pattern: `$arch-serenity-$tool`. These changes affect the toolchain build scripts, serenity's build scripts and the Ports. The last place where we should see `x86_64-pc-serenity` is the output of `config.sub`, which assume the vendor is `pc` on vendor-less `x86*` triples. So `x86_64-serenity` is expanded to `x86_64-pc-serenity`, luckily enough and AFAICT, the whole GNU ecosystem considers `pc`, `unknown` and vendor-less target triples the same. So `configure` shouldn't have an issue finding the right tools anyway. The gn files were edited with sed and are not tested. This commit also includes a check in `Meta/serenity.sh` to give a nicer error message when trying to build the system with an old toolchain. ---- To test this patch, on a clean tree I: - Ran `./Meta/serenity.sh x86_64 GNU` - Ran `./Toolchain/BuildJakt.sh` - Tested these ports: python3(configure based), libjxl(cmake based) and rizin(meson based) - Also booted on aarch64 and risv64 I also repeated the steps above with a Clang toolchain. On a working tree I tested all the affected ports, the results are: - tinycc build fine but can't compile programs, I observed the same on master. - gdb and epsilon don't build but report the same errors as on master. - I manually edited the libgpg-error, and it builds fine. - The gcc port works fine.
33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Dante Catalfamo <[email protected]>
|
|
Date: Fri, 20 Aug 2021 00:38:31 -0400
|
|
Subject: [PATCH] Add a build conf for serenity
|
|
|
|
---
|
|
build_config/serenity.rb | 16 ++++++++++++++++
|
|
1 file changed, 16 insertions(+)
|
|
create mode 100644 build_config/serenity.rb
|
|
|
|
diff --git a/build_config/serenity.rb b/build_config/serenity.rb
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..e00103089ca9a887a512abff8c729478844a6055
|
|
--- /dev/null
|
|
+++ b/build_config/serenity.rb
|
|
@@ -0,0 +1,16 @@
|
|
+MRuby::CrossBuild.new('serenity') do |conf|
|
|
+ conf.toolchain :gcc
|
|
+
|
|
+ conf.archiver.command = "#{ENV['SERENITY_ARCH']}-serenity-ar"
|
|
+ conf.linker.command = "#{ENV['SERENITY_ARCH']}-serenity-g++"
|
|
+
|
|
+ conf.cxx.command = "#{ENV['SERENITY_ARCH']}-serenity-g++"
|
|
+ conf.cxx.defines << (ENV['SERENITY_ARCH'].include?('64') ? 'MRB_64BIT' : 'MRB_32BIT')
|
|
+
|
|
+ conf.cc.command = "#{ENV['SERENITY_ARCH']}-serenity-gcc"
|
|
+ conf.cc.defines << (ENV['SERENITY_ARCH'].include?('64') ? 'MRB_64BIT' : 'MRB_32BIT')
|
|
+
|
|
+ conf.gembox 'full-core'
|
|
+
|
|
+ conf.test_runner.command = 'env'
|
|
+end
|