#!/bin/sh -e export DESTDIR="$1" # Force a static build so shared library breakage does not also break the # linker (and therefore the ability to recover from the issue). # XXX: Static linking prevents mold from using dlopen() which is required # for performing LTO. # export LDFLAGS="$LDFLAGS -static" patch -p1 < amd64_only.patch cmake -B build \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib cmake --build build cmake --install build # Create a symbolic link so users can use mold as the linker system-wide # (without need for special CFLAGS/CXXFLAGS). ln -s mold "$1/usr/bin/ld" # To tell GCC to use mold we must put a symlink to it in a directory and set it # to search for the linker within. ln -s ../../bin/mold "$1/usr/lib/mold/ld"