llvm: A few bitcode-related fixes.
This commit is contained in:
parent
76c4605bfe
commit
c2a6ec6824
5 changed files with 26 additions and 120 deletions
|
@ -22,7 +22,7 @@ MINIX_MODS=
|
|||
|
||||
# Set default values for essential variables
|
||||
: ${GENERATE_MAP="no"}
|
||||
: ${C="hello"}
|
||||
: ${C="servers,drivers"}
|
||||
|
||||
function usage()
|
||||
{
|
||||
|
@ -99,7 +99,6 @@ function check_args()
|
|||
check_current_dir
|
||||
|
||||
# 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
|
||||
. ${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}"
|
||||
|
||||
# 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"`
|
||||
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
|
||||
mkdir ${ROOT}/.tmp 2>/dev/null || true
|
||||
|
@ -132,3 +136,7 @@ if [ "${REBUILD_MINIX}" == "yes" ]; then
|
|||
else
|
||||
echo "Building Minix: NO"
|
||||
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=
|
||||
TARGET_MODULES=
|
||||
MINIX_MODS=
|
||||
LIBNAMES=
|
||||
STATIC_LIBS=
|
||||
LDFLAGS_PLACEHOLDER=" "
|
||||
|
||||
# Set default values to essential variables.
|
||||
: ${GENERATE_MAP="no"}
|
||||
: ${C="hello"}
|
||||
: ${C="servers,drivers"}
|
||||
|
||||
function usage()
|
||||
{
|
||||
|
@ -79,7 +78,6 @@ if [ "$1" == "--help" ] || [ "$1" == "-h" ]; then
|
|||
fi
|
||||
|
||||
# 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
|
||||
. ${ROOT}/apps/scripts/include/configure.llvm.inc
|
||||
|
||||
|
@ -91,22 +89,6 @@ echo " and"
|
|||
echo " ${MINIX_LLVM_BIN_DIR}"
|
||||
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
|
||||
|
||||
if [ "${GENERATE_MAP}" != "" ] && [[ ${GENERATE_MAP} =~ [yY][eE][sS] ]]; then
|
||||
|
@ -144,7 +126,7 @@ do
|
|||
clean_module $n $m "relink"
|
||||
if [ "${STATIC_LIBS}"!="" ]; then
|
||||
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
|
||||
|
||||
env "`echo ${LDFLAGS_PLACEHOLDER}`" MKBITCODE=yes \
|
||||
|
|
Loading…
Reference in a new issue