llvm: A few bitcode-related fixes.
This commit is contained in:
parent
76c4605bfe
commit
c2a6ec6824
|
@ -22,7 +22,7 @@ MINIX_MODS=
|
||||||
|
|
||||||
# Set default values for essential variables
|
# Set default values for essential variables
|
||||||
: ${GENERATE_MAP="no"}
|
: ${GENERATE_MAP="no"}
|
||||||
: ${C="hello"}
|
: ${C="servers,drivers"}
|
||||||
|
|
||||||
function usage()
|
function usage()
|
||||||
{
|
{
|
||||||
|
@ -99,7 +99,6 @@ function check_args()
|
||||||
check_current_dir
|
check_current_dir
|
||||||
|
|
||||||
# set up the bridge to llvm-apps repository and initialize
|
# set up the bridge to llvm-apps repository and initialize
|
||||||
[ -f ${MINIX_LLVM_DIR}/minix.inc ] || cp ${MINIX_LLVM_DIR}/minix.inc.default ${MINIX_LLVM_DIR}/minix.inc
|
|
||||||
. ${MINIX_LLVM_DIR}/minix.inc
|
. ${MINIX_LLVM_DIR}/minix.inc
|
||||||
. ${ROOT}/apps/scripts/include/configure.llvm.inc
|
. ${ROOT}/apps/scripts/include/configure.llvm.inc
|
||||||
|
|
||||||
|
|
13
minix/llvm/common.inc.default
Normal file
13
minix/llvm/common.inc.default
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
##############################################################################
|
||||||
|
# COMMON MINIX SPECIFIC VARIABLES
|
||||||
|
##############################################################################
|
||||||
|
DESTDIR=${MINIX_ROOT}/../obj.${ARCH}
|
||||||
|
TOOLDIR=${DESTDIR}/tooldir.`uname -s`-`uname -r`-`uname -m`/bin
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# configure.llvm would add an entry for ROOT which points to the llvm-apps
|
||||||
|
# repository
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
ROOT="/nonexistent"
|
||||||
|
|
|
@ -63,9 +63,13 @@ echo "LLVM root directory is set to :"
|
||||||
echo " ${ROOT}"
|
echo " ${ROOT}"
|
||||||
|
|
||||||
# Persist the LLVM ROOT path information
|
# Persist the LLVM ROOT path information
|
||||||
[ -f ${MINIX_LLVM_DIR}/minix.inc ] || cp ${MINIX_LLVM_DIR}/minix.inc.default ${MINIX_LLVM_DIR}/minix.inc
|
. ${MINIX_LLVM_DIR}/minix.inc
|
||||||
ROOT_1=`echo ${ROOT} | sed "s/\\\//\\\\\\\\\//g"`
|
ROOT_1=`echo ${ROOT} | sed "s/\\\//\\\\\\\\\//g"`
|
||||||
sed -i "s/ROOT=.*$/ROOT=\"${ROOT_1}\"/g" ${MINIX_LLVM_DIR}/minix.inc
|
sed -i "s/ROOT=.*$/ROOT=\"${ROOT_1}\"/g" ${MINIX_LLVM_DIR}/common.inc
|
||||||
|
|
||||||
|
# Configure llvm-apps
|
||||||
|
cp ${ROOT}/conf/common.minix.overrides.inc ${ROOT}/common.minix.overrides.inc
|
||||||
|
sed -i "s/MINIX_ROOT=.*$/MINIX_ROOT=\"${MINIX_ROOT}\"/g" ${ROOT}/common.minix.overrides.inc
|
||||||
|
|
||||||
if [ ! -d ${ROOT}/.tmp ]; then
|
if [ ! -d ${ROOT}/.tmp ]; then
|
||||||
mkdir ${ROOT}/.tmp 2>/dev/null || true
|
mkdir ${ROOT}/.tmp 2>/dev/null || true
|
||||||
|
@ -132,3 +136,7 @@ if [ "${REBUILD_MINIX}" == "yes" ]; then
|
||||||
else
|
else
|
||||||
echo "Building Minix: NO"
|
echo "Building Minix: NO"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Reconfigure llvm-apps
|
||||||
|
MINIX_TOOLS_DIR=$(readlink -f ${MINIX_ROOT}/obj.386/tooldir.*)
|
||||||
|
sed -i "s/MINIX_TOOLS_DIR=.*$/MINIX_TOOLS_DIR=\"${MINIX_TOOLS_DIR}\"/g" ${ROOT}/common.minix.overrides.inc
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
ARCH=i386
|
|
||||||
MINIX_MODULES_MAPFILE=${MINIX_ROOT}/minix.mods.map
|
|
||||||
MINIX_LLVM_BIN_DIR=${MINIX_LLVM_DIR}/bin
|
|
||||||
|
|
||||||
# generate_modules_map()
|
|
||||||
#
|
|
||||||
# Generates the ${MINIX_MODULES_MAPFILE} file
|
|
||||||
|
|
||||||
function generate_modules_map()
|
|
||||||
{
|
|
||||||
local TMPFILE="/tmp/.modules.map.tmp"
|
|
||||||
local OUTFILE="${MINIX_MODULES_MAPFILE}"
|
|
||||||
local currdir=`pwd`
|
|
||||||
|
|
||||||
echo "Generating Minix modules map..." 1>&2
|
|
||||||
cd ${MINIX_ROOT}
|
|
||||||
grep -r "^PROG=" . --include=Makefile | sed -e "s/\s*//g" | sed -e "s/PROG=//g" > ${TMPFILE}
|
|
||||||
|
|
||||||
cat ${TMPFILE} | sed -e "s/\.\///g" > ${TMPFILE}.1
|
|
||||||
|
|
||||||
for l in `cat ${TMPFILE}.1`; do echo "`echo $l | cut -d: -f2`=`echo $l | cut -d: -f1`" | sed -e "s/\/Makefile//g"; done > ${OUTFILE}
|
|
||||||
|
|
||||||
rm -rf ${TMPFILE} ${TMPFILE}.1
|
|
||||||
|
|
||||||
cd ${currdir}
|
|
||||||
}
|
|
||||||
|
|
||||||
# get_modules_path
|
|
||||||
#
|
|
||||||
# Searches through the modules map and gets all the locations
|
|
||||||
# pertaining to the module(s) being searched.
|
|
||||||
|
|
||||||
function get_modules_path()
|
|
||||||
{
|
|
||||||
local MODULE_NAME=$1
|
|
||||||
if [ ! -f "${MINIX_MODULES_MAPFILE}" ]; then
|
|
||||||
generate_modules_map
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo `grep "${MODULE_NAME}" ${MINIX_MODULES_MAPFILE} | cut -d= -f2`
|
|
||||||
}
|
|
||||||
|
|
||||||
# get_module_name
|
|
||||||
#
|
|
||||||
# Given a module path, it gives its corresponding module name
|
|
||||||
|
|
||||||
function get_module_name()
|
|
||||||
{
|
|
||||||
local MODULE_PATH=$1
|
|
||||||
if [ ! -f "${MINIX_MODULES_MAPFILE}" ]; then
|
|
||||||
generate_modules_map
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo `grep "${MODULE_PATH}$" ${MINIX_MODULES_MAPFILE} | cut -d= -f1`
|
|
||||||
}
|
|
||||||
|
|
||||||
# clean_module()
|
|
||||||
#
|
|
||||||
# Cleans up the DESTDIR directory for the specified module
|
|
||||||
|
|
||||||
function clean_module()
|
|
||||||
{
|
|
||||||
local MODULE_NAME=$1
|
|
||||||
local MODULE_PATH=$2
|
|
||||||
local MODE=$3 # MODE can either be "relink" or "build"
|
|
||||||
local currdir=`pwd`
|
|
||||||
|
|
||||||
# By default, clean only the potentially instrumented files
|
|
||||||
local TARGETS="${MODULE_NAME} *.opt.bcl *.bcl.o"
|
|
||||||
|
|
||||||
if [ "${MODE}" == "relink" ]; then
|
|
||||||
TARGETS="${MODULE_NAME} *.o *.bcl"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d ${DESTDIR}/${MODULE_PATH} ]; then
|
|
||||||
cd ${DESTDIR}/${MODULE_PATH}
|
|
||||||
rm -rf ${TARGETS} 2> /dev/null || true
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd ${currdir}
|
|
||||||
}
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# OTHER MINIX SPECIFIC VARIABLES
|
|
||||||
##############################################################################
|
|
||||||
DESTDIR=${MINIX_ROOT}/../obj.${ARCH}
|
|
||||||
TOOLDIR=${DESTDIR}/tooldir.`uname -s`-`uname -r`-`uname -m`/bin
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
# configure.llvm would add an entry for ROOT which points to the llvm-apps
|
|
||||||
# repository
|
|
||||||
#
|
|
||||||
##############################################################################
|
|
||||||
ROOT="/nonexistent"
|
|
|
@ -15,13 +15,12 @@ MINIX_ROOT=
|
||||||
MINIX_LLVM_DIR=
|
MINIX_LLVM_DIR=
|
||||||
TARGET_MODULES=
|
TARGET_MODULES=
|
||||||
MINIX_MODS=
|
MINIX_MODS=
|
||||||
LIBNAMES=
|
|
||||||
STATIC_LIBS=
|
STATIC_LIBS=
|
||||||
LDFLAGS_PLACEHOLDER=" "
|
LDFLAGS_PLACEHOLDER=" "
|
||||||
|
|
||||||
# Set default values to essential variables.
|
# Set default values to essential variables.
|
||||||
: ${GENERATE_MAP="no"}
|
: ${GENERATE_MAP="no"}
|
||||||
: ${C="hello"}
|
: ${C="servers,drivers"}
|
||||||
|
|
||||||
function usage()
|
function usage()
|
||||||
{
|
{
|
||||||
|
@ -79,7 +78,6 @@ if [ "$1" == "--help" ] || [ "$1" == "-h" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# set up the bridge to llvm-apps repository and initialize
|
# set up the bridge to llvm-apps repository and initialize
|
||||||
[ -f ${MINIX_LLVM_DIR}/minix.inc ] || cp ${MINIX_LLVM_DIR}/minix.inc.default ${MINIX_LLVM_DIR}/minix.inc
|
|
||||||
. ${MINIX_LLVM_DIR}/minix.inc
|
. ${MINIX_LLVM_DIR}/minix.inc
|
||||||
. ${ROOT}/apps/scripts/include/configure.llvm.inc
|
. ${ROOT}/apps/scripts/include/configure.llvm.inc
|
||||||
|
|
||||||
|
@ -91,22 +89,6 @@ echo " and"
|
||||||
echo " ${MINIX_LLVM_BIN_DIR}"
|
echo " ${MINIX_LLVM_BIN_DIR}"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
LIBNAMES="$*"
|
|
||||||
|
|
||||||
EXIT_FLAG=no
|
|
||||||
for l in ${LIBNAMES};
|
|
||||||
do
|
|
||||||
if [ ! -f "${INSTALL_DIR}/$l.bcc" ] && [ ! -f "${MINIX_LLVM_BIN_DIR}/$l.bcc" ]; then
|
|
||||||
echo "ERROR: The LLVM pass file \"$l.bcc\" doesn't exit."
|
|
||||||
echo "Searched in: ${INSTALL_DIR} and ${MINIX_LLVM_BIN_DIR}."
|
|
||||||
EXIT_FLAG=yes
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "${EXIT_FLAG}" == "yes" ]; then
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Picking up the selected modules
|
# Picking up the selected modules
|
||||||
|
|
||||||
if [ "${GENERATE_MAP}" != "" ] && [[ ${GENERATE_MAP} =~ [yY][eE][sS] ]]; then
|
if [ "${GENERATE_MAP}" != "" ] && [[ ${GENERATE_MAP} =~ [yY][eE][sS] ]]; then
|
||||||
|
@ -144,7 +126,7 @@ do
|
||||||
clean_module $n $m "relink"
|
clean_module $n $m "relink"
|
||||||
if [ "${STATIC_LIBS}"!="" ]; then
|
if [ "${STATIC_LIBS}"!="" ]; then
|
||||||
STATIC_LIBS=`echo ${STATIC_LIBS} | sed -e "s/\ /\\\ /g"`
|
STATIC_LIBS=`echo ${STATIC_LIBS} | sed -e "s/\ /\\\ /g"`
|
||||||
LDFLAGS_PLACEHOLDER="BITCODE_LD_FLAGS.$n=\"${STATIC_LIBS}\""
|
LDFLAGS_PLACEHOLDER="BITCODE_LD_FLAGS.$n=${STATIC_LIBS}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
env "`echo ${LDFLAGS_PLACEHOLDER}`" MKBITCODE=yes \
|
env "`echo ${LDFLAGS_PLACEHOLDER}`" MKBITCODE=yes \
|
||||||
|
|
Loading…
Reference in a new issue