serenity/Toolchain
Tim Schumacher 292398b585 Toolchain: Load x64 executables at a higher address
Serenity defines a protected range of memory that must not be mmapped,
and is apparently reserved for kernel tasks. In this case, the protected
range is anything below 0x800000.

However, in its default setting, binutils chooses the memory address
0x400000 as the mapping address for executables that do not have PIE
enabled, resulting in mmap being unable to map the file unless the load
address has been overwritten at link time or if it's a PIE.

To mitigate this, move the default base address somewhere outside of
that range (and preferably not anywhere close near the beginning of the
useable virtual memory space, to avoid running into it during sequential
allocations).
2021-11-14 22:25:15 +01:00
..
CMake CMake: Assume working compiler instead of using static linking 2021-11-07 20:11:23 -08:00
Patches Toolchain: Load x64 executables at a higher address 2021-11-14 22:25:15 +01:00
Stubs Toolchain: Introduce stubs for core system libraries 2021-10-17 17:09:58 +01:00
.dockerignore Build: Add Dockerfile 2020-05-22 01:19:15 +02:00
.gitignore Travis: Cache toolchain 2020-03-08 14:09:08 +01:00
BuildClang.sh Toolchain+Meta: Update LLVM version to 13.0.0 2021-10-17 17:09:58 +01:00
BuildFuseExt2.sh Toolchain: Make BuildFuseExt2.sh shellcheck compliant 2021-05-05 21:26:37 +02:00
BuildIt.sh Everywhere: Change from http to https where feasible 2021-10-05 02:08:08 +02:00
BuildPython.sh Ports: Change Python's auth_type to sha256 2021-08-03 21:01:07 +01:00
BuildQemu.sh Toolchain: Also build aarch64-softmmu in BuildQemu.sh 2021-08-28 21:51:30 +01:00
BuildRuby.sh Ports: Add Ruby 3.0.2 2021-09-24 10:04:47 +02:00
Dockerfile Toolchain: Allow containerized work with Serenity via Docker 2021-06-29 15:56:02 +02:00
README.md Toolchain: Update README to point to the current build instructions 2020-08-15 00:15:20 +02:00

Serenity Toolchain

This directory contains all toolchain related files. E.g. build scripts for the cross compilation toolchain and build toolchain for ports.

This document previously contained outdated build instructions. Click here for the latest build instructions.