summaryrefslogtreecommitdiff
path: root/Toolchain
AgeCommit message (Collapse)Author
2023-04-15Toolchain: Add imagemagick to serenity.nixLinus Groh
This is required to install ports with a launcher icon.
2023-04-14Ports/llvm: Increase the default stack size for LLVM executablesTim Schumacher
2023-04-11Toolchain: Move GDB build to a separate scriptDaniel Bertalan
Target GDB is only used for debugging the kernel, which is not relevant to most people. Starting with 924758c6f8bcf, GDB would always be built as part of the toolchain if the user didn't have it installed. This is unnecessary. This commit adds a separate script for building GDB, which the user needs to explicitly invoke. A message is added to Meta/debug-kernel.sh which alerts the user to this fact.
2023-04-09Meta+Toolchain: Redirect GDB error output to stdout before greppingTim Schumacher
2023-04-08Toolchain: Stop building QEMU with i386 supportMarco Cutecchia
2023-04-03Toolchain+Meta: Support kernel debugging with host AArch64 GDBDaniel Bertalan
Previously, we would unconditionally build GDB from source for the AArch64 toolchain. This commit makes it possible to use the system's `gdb` binary if it supports the architecture, or `aarch64-elf-gdb` if such a package is installed. An `aarch64-elf-gdb` package will be available through Homebrew once this PR is merged: https://github.com/Homebrew/homebrew-core/pull/127323
2023-04-02Toolchain: Allow many patches for gdb and add clang workaroundAndrew Kaster
This ports https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ae61525fcf456ab395d55c45492a106d1275873a from upstream binutils, which enables building with the newest host clang versions.
2023-04-02Toolchain: Update gdb to version 13.1Andrew Kaster
2023-04-02Toolchain: Create an `nm` symlink for ClangTim Schumacher
This is required for building the QEMU port using Clang.
2023-03-27Toolchain: Update binutils to version 2.40Cameron Youell
2023-03-27Ports/binutils: Update binutils to version 2.40Cameron Youell
2023-03-17Toolchain: Update CMake to version 3.26.0 in `BuildCMake.sh`EWouters
2023-03-16Toolchain: Add grub2 and parted to serenity.nixLinus Groh
This allows building the GRUB disk image from within the nix shell.
2023-03-13Toolchain: Use '|' as sed delimiter in Build{Clang,It}.sh, not '@'Linus Groh
The latter is problematic as it may be contained in the username (e.g. email address-like) and thus the $SRC_ROOT path. This would cause an invalid sed command to be created, breaking both of these scripts.
2023-03-01Toolchain: Don't abuse crt{begin,end}.o for shared or PIE binariesTim Schumacher
aarch64 required this to successfully build, but the actual fix to that is to just make sure that crtbeginS and crtendS get built as a part of the toolchain. This partially reverts commit c18c84dbfdc18effe5f8c5ffb56b2f5549e6bf90.
2023-02-11Toolchain: Add fuse2fs to serenity.nixBaitinq
This previously missing package was needed for root-less image building :)
2023-01-25Toolchain: Ensure aarch64 libgcc_s.so.1 includes DT_SONAME tagTimon Kruiper
Without this tag, executables that link libgcc_s.so.1, which is every executable, end up with the host path to libgcc_s.so.1 as the path for the dynamic dependency (DT_NEEDED) of the executable. By making sure that the libgcc_s.so.1 shared object includes the DT_SONAME tag, the path to libgcc_s.so.1 dynamic dependency will only contain the basename, instead of the absolute host path.
2023-01-09Toolchain: Do not use `install -D` in BuildIt.shNico Weber
`-D` doesn't exist on macOS. Just call `mkdir -p` instead.
2023-01-09Toolchain: Add macOS definitions of MD5SUM and NPROC in BuildIt.shNico Weber
2023-01-09Toolchain: Make BuildCMake.sh work on macOS without brew on PATHNico Weber
2022-12-30Toolchain: Fix aarch64 toolchain GDB buildkleines Filmröllchen
We just need to pass -disable-werror, otherwise Clang will complain a lot.
2022-12-28Meta: Remove i686 targetLiav A
2022-12-13Toolchain: Remove upstreamed CMake platform files :^)Andrew Kaster
2022-12-13Toolchain+Meta: Add script to build CMake from sourceAndrew Kaster
Since we upstreamed CMake support for Serenity, we can use the Platform files from upstream instead of keeping our local copy. While not added in this commit, we can add patching capabilities for the platform files similar to what we do for gdb, llvm, gcc, and binutils later.
2022-11-13Toolchain: Add libxcrypt to serenity.nixVictor Hugo Aguiar Pacce
Should deal with build errors related to a missing crypt.h file
2022-11-12Toolchain: Fix missing makeinfo on macOS VenturaSteffen Rusitschka
macOS ventura no longer comes with makeinfo. binutils has already been fixed - see https://github.com/SerenityOS/serenity/pull/15932 This patch does the same for GDB.
2022-11-05Toolchain: Disable makeinfo for binutilsChristopher Wales
This is necessary to build on MacOS. As discussed in #15530, Serenity no longer appears to build on MacOS Ventura. This attempts to fix that by enforcing it at the command level.
2022-11-01Toolchain: Use pkg-config instead of pkgconfig in serenity.nixMarco Rebhan
pkgconfig was renamed to pkg-config in nixpkgs.
2022-11-01Toolchain: Update gcc11 to gcc12 in serenity.nixMarco Rebhan
2022-10-27Toolchain: Update BuildQemu.sh to qemu-7.1Kenneth Myhra
QEMU 7.1 was released on August 30th. Release Notes: https://wiki.qemu.org/ChangeLog/7.1 The patch 'Toolchain/Patches/qemu-cf-protection-none.patch' (or similar) has been upstreamed so it can be safely removed.
2022-10-25Everywhere: Require version >= 12 for GCC host compilerLinus Groh
So far we've gotten away with using GCC 11 for Lagom and to compile the toolchain, but via #15795 we discovered a compiler bug that has been fixed in the latest version but would error the build with CI's GCC 11. Time for an upgrade :^) We already use ubuntu-22.04 images in most places, so this is pretty straightforward. The only exception is Idan's self-hosted runner, which uses Ubuntu Focal. LibJS should build fine with GCC 11, still.
2022-10-24Toolchain: Update LLVM to 15.0.3Tim Schumacher
2022-10-21Toolchain: Keep LLVM from using `shm_open` and friendsTim Schumacher
I originally missed this while handling the upgrade to LLVM 15 (as it only affects the on-serenity port), so the patch gets to be here with a bit of a delay. Co-Authored-By: sin-ack <sin-ack@users.noreply.github.com>
2022-10-20Toolchain: Fix nix-shell; fuse2fs is now part of e2fsprogs derivationgrxnola
2022-10-14Toolchain: Fix building libgcc for AARCH64Gunnar Beutner
There was a typo in one of the spec files which resulted in us not building softfp support for libgcc. Additionally we were missing flags to build libgcc_s. This patch also makes sure we're not trying to link against crtbeginS.o and crtendS.o. This is part of a larger effort to at least get the userland to build at all.
2022-10-14Toolchain: Add SerenityOS to the LLVM config.guessTim Schumacher
2022-10-11Toolchain: Force makeinfo to be a no-opTim Schumacher
Neither are we changing any of our documentation files, nor do we need any of the documentation that is likely being built. With macOS potentially removing makeinfo from the default Xcode lineup, SerenityOS not being able to install it at all currently due to a lack of perl, and it otherwise just being a dependency that has to be installed to make the build system happy, lets just stub it out.
2022-10-06Toolchain: serenity.nix: Fix fuse2fs not being installedBaitinq
Nix (nixpkgs) have updated a while back how the e2fsprogs derivation works and now fuse2fs wasnt being installed with it. It is now needed to add a new derivation (package) to the dependency list: "fuse2fs". This fixes the Meta/serenity.sh script not finding the fuse2fs binary for rootless image building :^)
2022-10-03Meta: Make x86-64 target the defaultLiav A
This is a preparation to check if our users find noticeable bugs in the x86-64 target, before we can decide if we want to remove the i686 target for good.
2022-10-03Toolchain: Update BuildMold to mold 1.5.1 and use CMakeAndrew Kaster
Per the release notes for 1.5.0, the CMake build is preferred going forward.
2022-10-01Toolchain: Hardcode the results of LLVM runtime library detectionTim Schumacher
This keeps us from accidentally building toolchains that don't make it through a clean build if we build them using a populated sysroot, as it would otherwise detect libpthread and friends and try to pull them in while LibC is not yet built.
2022-10-01Toolchain: Only reextract GCC-related tarballs if patches changeTim Schumacher
This brings the behaviour in line with Clang, which already does this since a few revisions.
2022-10-01Toolchain: Move the binutils patch into its own folderTim Schumacher
This makes binutils compatible with `./package.sh dev`, so that we can regenerate patches more easily, and neatly stack (temporary) patches on top.
2022-09-18Toolchain: Regenerate patches using the latest format rulesTim Schumacher
2022-09-16Toolchain: Remove references to `-lm`Tim Schumacher
2022-09-16Everywhere: Fully remove the separate LibM directoryTim Schumacher
2022-09-16LibM: Move the math standard library to LibCTim Schumacher
2022-09-16Toolchain: Update to LLVM 15.0.0Tim Schumacher
2022-09-05Toolchain: Remove references to `-ldl`Tim Schumacher
2022-09-05Everywhere: Fully remove the separate LibDl directoryTim Schumacher