mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 09:34:59 +00:00
Toolchain: Add LLVM patch and script for building it
This contains all the bits and pieces necessary to build a Clang binary that will correctly compile SerenityOS. I had some trouble with getting LLVM building with a single command, so for now, I decided to build each LLVM component in a separate command invocation. In the future, we can also make the main llvm build step architecture-independent, but that would come with extra work to make library and include paths work. The binutils build invocation and related boilerplate is duplicated because we only use `objdump` from GNU binutils in the Clang toolchain, so most features can be disabled.
This commit is contained in:
parent
5d617be462
commit
15e217ea68
4 changed files with 1299 additions and 1 deletions
|
@ -45,7 +45,18 @@ else
|
|||
chown -R 0:0 mnt/
|
||||
fi
|
||||
SERENITY_ARCH="${SERENITY_ARCH:-i686}"
|
||||
$CP "$SERENITY_SOURCE_DIR"/Toolchain/Local/"$SERENITY_ARCH"/"$SERENITY_ARCH"-pc-serenity/lib/libgcc_s.so mnt/usr/lib/
|
||||
LLVM_VERSION="${LLVM_VERSION:-12.0.1}"
|
||||
|
||||
if [ "$USE_CLANG_TOOLCHAIN" = "ON" ]; then
|
||||
TOOLCHAIN_DIR="$SERENITY_SOURCE_DIR"/Toolchain/Local/clang/"$SERENITY_ARCH"
|
||||
mkdir -p mnt/usr/lib/clang/"$LLVM_VERSION"/lib/serenity
|
||||
$CP "$TOOLCHAIN_DIR"/lib/clang/"$LLVM_VERSION"/lib/serenity/* mnt/usr/lib/clang/"$LLVM_VERSION"/lib/serenity
|
||||
$CP "$TOOLCHAIN_DIR"/lib/libunwind* mnt/usr/lib
|
||||
$CP "$TOOLCHAIN_DIR"/lib/libc++* mnt/usr/lib
|
||||
else
|
||||
$CP "$SERENITY_SOURCE_DIR"/Toolchain/Local/"$SERENITY_ARCH"/"$SERENITY_ARCH"-pc-serenity/lib/libgcc_s.so mnt/usr/lib
|
||||
fi
|
||||
|
||||
# If umask was 027 or similar when the repo was cloned,
|
||||
# file permissions in Base/ are too restrictive. Restore
|
||||
# the permissions needed in the image.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue