From fe5a129a88da6472a7a493ddf332993e8fa4da83 Mon Sep 17 00:00:00 2001 From: Lionel Sambuc Date: Tue, 25 Feb 2014 13:43:18 +0100 Subject: [PATCH] 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 --- releasetools/generate_gold_plugin.sh | 66 ++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 releasetools/generate_gold_plugin.sh diff --git a/releasetools/generate_gold_plugin.sh b/releasetools/generate_gold_plugin.sh new file mode 100755 index 000000000..d3af79054 --- /dev/null +++ b/releasetools/generate_gold_plugin.sh @@ -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 + -- 2.44.0