summaryrefslogtreecommitdiff
path: root/Toolchain
AgeCommit message (Collapse)Author
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
2022-09-05LibDl: Move the `dlfcn` implementation to LibCTim Schumacher
2022-09-02Toolchain: Update Dockerfile to ubuntu:22.10Veronika Horáčků
2022-08-24Toolchain: Update GDB to version 12.1Brian Gianforcaro
2022-08-24Toolchain: Update binutils to version 2.39Brian Gianforcaro
2022-08-24Toolchain: Update gcc to version 12.2.0Brian Gianforcaro
2022-08-17Toolchain: Allow setting QEMU_{VERSION, MD5SUM} from command lineTimon Kruiper
This can be used to download and build a specific QEMU version.
2022-07-19Toolchain: Don't pass `-lpthread` when pthreads are requestedTim Schumacher
This is essentially a no-op since we have our replacement linker script, but if we can skip over that entirely, why not?
2022-07-19Everywhere: Fully remove the separate LibPthread directoryTim Schumacher
2022-07-19LibPthread: Move the pthread and semaphore implementation to LibCTim Schumacher
This additionally adds some compatibility code to redirect linking attempts for LibPthread to LibC instead.
2022-07-16Toolchain: Update mold to 1.3.1Tim Schumacher
2022-07-13Meta+Ports: Automatically generate a meson cross file that we can useTim Schumacher
2022-06-30Toolchain: Remove workarounds for initializer_list and _aligned_allocAndrew Kaster
These are no longer required to use libc++ on Serenity
2022-06-30Toolchain: Create separate serenity xlocale support fileAndrew Kaster
2022-06-30Toolchain: Format llvm patches per new patch formatAndrew Kaster
This removes the patch series 1/N comments, git version at the bottom of the patch, and zeros out the original commit hash.
2022-06-30Toolchain+Ports: Install host ruby into Local/ruby, not Local/$ARCHAndrew Kaster
Following the pattern for qemu, mold, and clang, we should install the host ruby required to build the ruby port into its own install tree rather than forcing it into the GNU compiler's bindir.
2022-06-30Toolchain+Ports: Install host python into Local/python, not Local/$ARCHAndrew Kaster
Following the pattern for qemu, mold, and clang, we should install the host python required to build the python port into its own install tree rather than forcing it into the GNU compiler's bindir.
2022-06-30Toolchain: Set '/' as default division character for binutilsTim Schumacher
While we are at it, regenerate the patch and remove some outdated parts of the description.
2022-06-29Toolchain: Update Platform files to match those in upstream cmakeAndrew Kaster
Serenity support was merged into the CMake master branch for the 3.25.0 milestone (https://gitlab.kitware.com/cmake/cmake/-/merge_requests/6837) Remove some settings that are now redundant from the Toolchain files.
2022-06-21Revert "Toolchain: Load x64 executables at a higher address"Tim Schumacher
Now that the lower pages can be unmapped and more of the virtual address range is available to us, we can actually use the default mapping address of x86_64 again. This reverts commit 292398b5857d0104f7c33fdb5d79f45fe8b395dd.
2022-06-19Toolchain: Update mold to 1.0.3kleines Filmröllchen
2022-06-11Toolchain: Add $arch-pc-serenity-clang symlinkDaniel Bertalan
This will allow us to build ports that don't allow the --target and --sysroot compiler arguments to be specified in $CC/$CXX.
2022-05-20Toolchain: Fix shellcheck warningDaniel Bertalan
2022-05-19Toolchain+Ports: Split the GCC patchesDaniel Bertalan
This shouldn't cause any breaking changes, so a toolchain rebuild is not required. As per Hendiadyoin's request, math errno is disabled by default, which should enable some extra compiler optimizations in LibGL and LibSoftGPU code that uses math functions heavily. Co-Authored-By: Ali Mohammad Pur <mpfard@serenityos.org>
2022-05-12Toolchain: Upgrade to GCC 12.1.0Daniel Bertalan
This release brings support for various C++23 constructs like `if consteval` and multidimensional subscript operators. Vectorization is now enabled for O2 too, and `-ftrivial-auto-var-init` has been added which can help us find and prevent security issues coming from uninitialized variables. Toolchain/Patches/gcc.patch is now significanly smaller as some unused, autoconf-generated code has been removed.
2022-05-08Toolchain: Allow BuildQemu.sh to resume downloadsLucas CHOLLET
Use -C option for curl to resume if a partially downloaded file already exists.
2022-05-02Toolchain: Enable LLVM Profile instrumentationAndrew Kaster
Add a patch to let llvm's InstrProfiling modules know serenity supports all the Unix-y features required to make -fprofile-instr-generate and -fcoverage-mapping work properly on target.
2022-04-25Toolchain: Explicitly install llvm-config and FileCheckAndrew Kaster
Also disable the "toolchain only build" to ensure we install llvm headers for when we want to build host tools that link against llvm.
2022-04-23Toolchain: Update BuildQemu.sh to qemu-7.0EWouters
QEMU 7.0 was released on April 19th. Release Notes: https://wiki.qemu.org/ChangeLog/7.0
2022-04-23Toolchain+Ports: Update LLVM to 14.0.1Daniel Bertalan
Besides a version bump, the following changes have been made to our toolchain infrastructure: - LLVM/Clang is now built with -march=native if the host compiler supports it. An exception to this is CI, as the toolchain cache is shared among many different machines there. - The LLVM tarball is not re-extracted if the hash of the applied patches doesn't differ. - The patches have been split up into atomic chunks. - Port-specific patches have been integrated into the main patches, which will aid in the work towards self-hosting. - <sysroot>/usr/local/lib is now appended to the linker's search path by default. - --pack-dyn-relocs=relr is appended to the linker command line by default, meaning ports take advantage of RELR relocations without any patches or additional compiler flags. The formatting of LLVM port's package.sh has been bothering me, so I also indented the arguments to the CMake invocation.