I should not have been born.
This patch is a ugly, but a this moment I have no better alternatives to offer. - Add a script to compile the llvm sources through the standard makefiles instead of the bsd build system. The produced gold plugin is then copied into the source tree and used from there by the BSD Makefiles. Change-Id: I7fd7ad80be8efcedf27a047b872930ed602d7874
This commit is contained in:
parent
c03229e600
commit
fe5a129a88
1 changed files with 66 additions and 0 deletions
66
releasetools/generate_gold_plugin.sh
Executable file
66
releasetools/generate_gold_plugin.sh
Executable file
|
@ -0,0 +1,66 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
|
||||||
|
: ${NETBSDSRCDIR=${PWD}/..}
|
||||||
|
: ${LLVMSRCDIR=${NETBSDSRCDIR}/external/bsd/llvm/dist}
|
||||||
|
: ${ARCH=i386}
|
||||||
|
: ${JOBS=1}
|
||||||
|
: ${OBJ_LLVM=${NETBSDSRCDIR}/../obj_llvm.${ARCH}}
|
||||||
|
: ${OBJ=${NETBSDSRCDIR}/../obj.${ARCH}}
|
||||||
|
: ${CROSS_TOOLS=${OBJ}/"tooldir.`uname -s`-`uname -r`-`uname -m`"/bin}
|
||||||
|
|
||||||
|
echo ${NETBSDSRCDIR}
|
||||||
|
echo ${LLVMSRCDIR}
|
||||||
|
echo ${OBJ_LLVM}
|
||||||
|
echo ${OBJ}
|
||||||
|
echo ${CROSS_TOOLS}
|
||||||
|
|
||||||
|
# Retrieve all the GPL sources
|
||||||
|
cd ${NETBSDSRCDIR}
|
||||||
|
find . -name fetch.sh -exec '{}' \;
|
||||||
|
|
||||||
|
# Build LLVM manually
|
||||||
|
mkdir -p ${OBJ_LLVM}
|
||||||
|
cd ${OBJ_LLVM}
|
||||||
|
|
||||||
|
${LLVMSRCDIR}/llvm/configure \
|
||||||
|
--enable-targets=x86 \
|
||||||
|
--with-c-include-dirs=/usr/include/clang-3.4:/usr/include \
|
||||||
|
--disable-timestamps \
|
||||||
|
--prefix=/usr \
|
||||||
|
--sysconfdir=/etc/llvm \
|
||||||
|
--with-clang-srcdir=${LLVMSRCDIR}/clang \
|
||||||
|
--host=i586-elf32-minix \
|
||||||
|
--with-binutils-include=${NETBSDSRCDIR}/external/gpl3/binutils/dist/include \
|
||||||
|
--disable-debug-symbols \
|
||||||
|
--enable-assertions \
|
||||||
|
--enable-bindings=none \
|
||||||
|
llvm_cv_gnu_make_command=make \
|
||||||
|
ac_cv_path_CIRCO="echo circo" \
|
||||||
|
ac_cv_path_DOT="echo dot" \
|
||||||
|
ac_cv_path_DOTTY="echo dotty" \
|
||||||
|
ac_cv_path_FDP="echo fdp" \
|
||||||
|
ac_cv_path_NEATO="echo neato" \
|
||||||
|
ac_cv_path_TWOPI="echo twopi" \
|
||||||
|
ac_cv_path_XDOT="echo xdot" \
|
||||||
|
--enable-optimized \
|
||||||
|
CC=cc
|
||||||
|
|
||||||
|
make -j ${JOBS}
|
||||||
|
|
||||||
|
# Copy the gold plugin where the NetBSD build system expects it.
|
||||||
|
mkdir -p ${NETBSDSRCDIR}/external/bsd/llvm/passes/lib/
|
||||||
|
cp ${OBJ_LLVM}/./Release+Asserts/lib/libLTO.so ${NETBSDSRCDIR}/external/bsd/llvm/passes/lib/
|
||||||
|
cp ${OBJ_LLVM}/./Release+Asserts/lib/LLVMgold.so ${NETBSDSRCDIR}/external/bsd/llvm/passes/lib/
|
||||||
|
|
||||||
|
# Copy useful LLVM tools
|
||||||
|
mkdir -p ${CROSS_TOOLS}
|
||||||
|
cp ${OBJ_LLVM}/./Release+Asserts/bin/llc ${CROSS_TOOLS}
|
||||||
|
cp ${OBJ_LLVM}/./Release+Asserts/bin/opt ${CROSS_TOOLS}
|
||||||
|
cp ${OBJ_LLVM}/./Release+Asserts/bin/llvm-* ${CROSS_TOOLS}
|
||||||
|
|
||||||
|
# Generate and Install default MINIX passes
|
||||||
|
cd ${NETBSDSRCDIR}/external/bsd/llvm/passes/WeakAliasModuleOverride
|
||||||
|
make LLVMPREFIX=${OBJ_LLVM}/./Release+Asserts/ install
|
||||||
|
|
Loading…
Reference in a new issue