summaryrefslogtreecommitdiff
path: root/Ports/gcc
AgeCommit message (Collapse)Author
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-12Ports/gcc: Update to version 12.1.0Daniel Bertalan
2022-05-12Ports/gcc: Install dependencies as portsDaniel Bertalan
This lets us remove a couple manual config.sub patches.
2022-01-24Toolchain: Backport support for the mold linkerDaniel Bertalan
The `-fuse-ld=mold` flag was only added in the not-yet-released GCC 12. Cherry-picked from the following upstream commit: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=ad964f7eaef9c03ce68a01cfdd7fde9d56524868
2022-01-24Toolchain+Ports: Use the GNU hash format by defaultDaniel Bertalan
This hash format offers faster symbol lookup than the System V hash. We've been using it in all our shared libraries for a long time, but did not have it enabled by default in our toolchain, so ports couldn't make use of it.
2022-01-24Kernel+Toolchain: Use `.init_array` section for global constructorsDaniel Bertalan
Before this change, our dynamic linker's global constructor handler relied on the GNU linker implicitly including the content of `.ctors` section inside `.init_array`. The mold linker does not do this, so global constructors would fail to be called in the mold-built userland. There is no point in sticking to `.ctors`, as most other systems already use the superior `.init_array` scheme. This commit changes the kernel linker script to not discard this new section, and enables it by default in our toolchain.
2022-01-04Toolchain: Fix building the aarch64 toolchainDaniel Bertalan
The `aarch64/t-aarch64` makefile fragment needs to be included for the aarch64-specific parts of GCC to be built. Before 738e52da5, this was done implicitly, but now it is not. This caused the following error when building the toolchain: "aarch64-builtins.o: No such file or directory".
2021-12-16Ports: Update gcc patch to match the toolchainDaniel Bertalan
2021-10-05Ports: Make array-like settings actual arraysTim Schumacher
We may need entries with spaces in makeopts, installopts, and configopts, and at that point we should also convert depends and auth_opts to avoid confusion.
2021-08-13Ports: Make sure re-installing the gcc port doesn't failGunnar Beutner
Re-installing the gcc port would previously fail because we failed to overwrite the symlink.
2021-08-12Ports: Add cc symlink to gcc portJean-Baptiste Boric
2021-08-08Toolchain+Ports: Let -nostdlib make us not link against libgcc_sGunnar Beutner
For now this is not a mandatory toolchain rebuild.
2021-07-28Toolchain+Ports: Fix building ports on x86_64Gunnar Beutner
Fixes #8377.
2021-07-28Ports: Update GCC to version 11.2.0Gunnar Beutner
2021-07-24Toolchain+Ports: Ignore -arch on macOS M1 hostsGunnar Beutner
CMake specifies -arch arm64 for our toolchain. Unfortunately that's an option GCC only understands when built for macOS. This causes the build to fail. I haven't been able to get CMake to not specify that option so this adds a dummy option to GCC.
2021-07-08Ports: Fix building gcc on arm64 macsmodmuss50
2021-07-06Ports: Update gcc patch to match the toolchainGunnar Beutner
2021-06-05Ports: fix gcc for mac usersyegor
BSD sed differs from GNU sed with the `-i` option. This commit changes the sed line in package.sh to be portable across macOS and Linux.
2021-05-09Toolchain+Ports: Skip link tests for libstdc++v3Gunnar Beutner
This makes stdlib.h and stdio.h functions available in the std namespace for C++. libstdc++v3's link tests can fail if you don't have an up-to-date build directory, for example: 1. Have libc with missing _Exit symbol because you haven't done a build since that was added. 2. Run toolchain rebuild. libstdc++v3's configure script will realize that it can do link tests in general but will fail later on when it tries to link a program that tests for _Exit. Even though this is a toolchain patch this does not necessarily require rebuilding the toolchain right away. This is only required once we start using any of these new members in the std namespace, e.g. for ports.
2021-05-07Ports: Update the gcc patch to match the toolchainGunnar Beutner
2021-04-29Ports: Remove duplicate configopts varGunnar Beutner
2021-04-29Ports: Build fix for gcc when building the port with gcc 11.1.0Gunnar Beutner
2021-04-29Ports: Use SHA256 for the gcc portGunnar Beutner
This updates the way we verify signatures for the gcc port because we were previously downloading the keychain from the mirror which defeats the point of doing signature checks.
2021-04-29Toolchain+Ports: Update GCC to version 11.1.0Gunnar Beutner
2021-04-20Toolchain+Ports: Enable threads for gccGunnar Beutner
This enables POSIX threads for GCC and makes the -pthread argument available.
2021-04-20Ports: Improve consistency and quality of portsPanagiotis Vasilopoulos
- Replaced /Root with - Improved documentation. - Removed a few typos. - Replaced with - Added brackets in some cases. Most of the changes were reviewed and applied manually.
2021-04-18Ports: Update the gcc port with the patches from the toolchainGunnar Beutner
2021-04-16Ports: Update the gcc port to 10.3.0Gunnar Beutner
2021-04-15Ports: Use ftpmirror.gnu.org mirror server for GNU portsBrendan Coles
2021-03-13Ports: Use SERENITY_ARCH in --target/--hostLinus Groh
Recent ports already do this, let's update the others as well. One step closer to multi-arch support for ports! :^)
2021-03-11Ports: Replace hardcoded Build/ paths with SERENITY_BUILD_DIRLinus Groh
Fixes #5710.
2021-02-19Toolchain: Use -ftls-model=initial-exec by defaultItamar
Our TLS implementation relies on the TLS model being "initial-exec". We previously enforced this by adding the '-ftls-model=initial-exec' flag in the root CmakeLists file, but that did not affect ports - So now we put that flag in the gcc spec files. Closes #5366
2021-01-23Ports: Clean up some package.sh scriptsLinus Groh
- Remove superfluous function overrides and use makeopts instead - Remove superfluous installopts - Use run rather than cd'ing manually - Ensure empty line between functions
2021-01-22Meta: Get building on NixOS (#5005)Jonathan Turner
2020-12-24Ports: Tweak configuration flags of gcc port to support shared binariesItamar
2020-12-14Toolchain+Ports: Fix gcc patch fileItamar
Previously, some hunks of the t-slibgcc patch failed to apply
2020-12-14Toolchain: Fix usage of libgcc_s & build PIE executables by defaultItamar
We can now build the porst with the shared libraries toolchain.
2020-12-14Ports: Update gcc patch to support shared libsItamar
2020-11-03Ports: Bump GCC port to 10.2.0Andreas Kling
Since we've already updated the toolchain, might as well update the port as well. :^)
2020-05-16Toolchain/Ports: Update to gcc 10.1.0Shannon Booth
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-03-23Toolchain/Ports: Update gcc to 9.3.0Shannon Booth
Ever closer to C++20! Also fix up some of those pesky "'s
2020-02-06Ports: Added checksums / signature files and other fixesEmanuel Sprung
* Use ${version} instead of explicit version numbers in urls/filenames * Move -L option to port script, as this is always good * Fix some various other stuff
2020-01-03Ports: Add missing ' after timestamp in GCC patch (#1004)elodotwe
Looks like this got missed, maybe a messy `git add --patch` job? It caused packaging of the gcc port to fail.
2020-01-01Toolchain: Use crtbeginS and crtendS for shared objectsAndrew Kaster
Turns out the reason GCC wasn't as smart about startup code for shared objects as we hoped is because nobody told it to be :D Change the STARTFILE_SPEC and ENDFILE_SPEC in gcc/config/serenity.h to skip crt0.o and to link the S variants of crtbegin and crtend for shared objects. Because we're using the crtbegin and crtend from libgcc, also tell libgcc in libgcc/config.host to compile crtbeginS and crtendS from crtstuff.c.
2019-12-30Ports: Update GCC patch to match our toolchainAndreas Kling
2019-12-23Ports: Build gcc with -j $(nproc)Sergey Bugaev
GCC is a huge project that takes a lot of time to build; let's at least make this a little less painful by using all the available CPU cores.
2019-12-23Ports: Update gcc to 9.2.0Sergey Bugaev
To keep the self-hosting build working (note that it's still broken even with this change). This reuses the patch from commit c73aa662bba17b50404d3820655847cc9c4c6a44.
2019-12-23Ports: Do not download sources if they're already presentSergey Bugaev
When running ./package.sh to rebuild an already installed port, we would not want to spend time re-downlodaing the same tarball again. Ideally, this should use some sort of hash checking to ensure the file is not truncated or something, but this is good enough for now.
2019-11-03Ports: Undo POSIX sh compliance changes for nowAndreas Kling
Partial revert of 704f48d7f3a1a88047a64b4e2939878d6d4fafb8. These changes made the ports system unusable.