From: Lionel Sambuc Date: Tue, 25 Feb 2014 12:43:18 +0000 (+0100) Subject: I should not have been born. X-Git-Tag: v3.3.0~170 X-Git-Url: http://zhaoyanbai.com/repos//%22http:/www.isc.org/%22?a=commitdiff_plain;h=fe5a129a88da6472a7a493ddf332993e8fa4da83;p=minix.git 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 --- 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 +