more portable way to find the llvm lto.h header

should now support llvm 3.2-3.5
This commit is contained in:
Thomas Pöchtrager 2013-12-01 22:00:56 +01:00
parent 339712ba21
commit 2c0cb38fbe
4 changed files with 71 additions and 22 deletions

View File

@ -108,8 +108,10 @@ pushd cctools*
patch -p0 < $PATCH_DIR/cctools-ld64-1.patch
patch -p0 < $PATCH_DIR/cctools-ld64-2.patch
patch -p0 < $PATCH_DIR/cctools-ld64-3.patch
patch -p0 < $PATCH_DIR/cctools-llvm-3.4.patch
patch -p0 < $PATCH_DIR/cctools-conf-1.patch
patch -p0 < $PATCH_DIR/cctools-llvm-lto.patch
CF=$CFLAGS CXXF=$CXXFLAGS LF=$LDFLAGS
eval `$BASE_DIR/oclang/find_lto_header.sh`
set +e
grep -n "__block," /usr/include/unistd.h &>/dev/null
if [ $? -eq 0 ]; then
@ -121,6 +123,7 @@ set -e
./configure --prefix=$TARGET_DIR --target=x86_64-apple-$TARGET
make -j$JOBS
make install -j$JOBS
export CFLAGS=$CF CXXFLAGS=$CXXF LDFLAGS=$LF
pushd $TARGET_DIR/bin
CCTOOLS=`find . -name "x86_64-apple-darwin*"`

27
oclang/find_lto_header.sh Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/env bash
function try()
{
LLVM_CONFIG="llvm-config$1"
which $LLVM_CONFIG &>/dev/null
if [ $? -eq 0 ]; then
set -e
LLVM_INC_DIR=`$LLVM_CONFIG --includedir`
LLVM_LIB_DIR=`$LLVM_CONFIG --libdir`
ln -sf "$LLVM_INC_DIR/llvm-c/lto.h" "include/llvm-c/lto.h"
echo -n "export LDFLAGS+=\" -L$LLVM_LIB_DIR -lLTO \" "
echo -n "export CFLAGS+=\" -DLTO_SUPPORT=1 \" "
echo -n "export CXXFLAGS+=\" -DLTO_SUPPORT=1 \""
exit 0
fi
}
try ""
try "-3.2"
try "-3.3"
try "-3.4"
try "-3.5"
echo "echo \"can not find lto.h - make sure llvm-devel is installed on your system\""
exit 1

View File

@ -1,21 +0,0 @@
--- configure.ac 2013-09-23 14:13:38.000000000 +0200
+++ configure.ac 2013-10-23 21:30:12.000000000 +0200
@@ -205,13 +205,13 @@
AC_CHECK_PROG(HAVE_LLVM_CONFIG, llvm-config, true, false)
if test "x$HAVE_LLVM_CONFIG" = "xfalse"; then
- AC_CHECK_PROG(HAVE_LLVM_CONFIG_32, llvm-config-3.2, true, false)
- if test "x$HAVE_LLVM_CONFIG_32" = "xfalse"; then
- AC_MSG_ERROR([llvm-config or llvm-config-3.2 not found on your system,please install related packages])
+ AC_CHECK_PROG(HAVE_LLVM_CONFIG_34, llvm-config-3.4, true, false)
+ if test "x$HAVE_LLVM_CONFIG_34" = "xfalse"; then
+ AC_MSG_ERROR([llvm-config or llvm-config-3.4 not found on your system,please install related packages])
else
- LLVM_LIBDIR=`llvm-config-3.2 --libdir`
+ LLVM_LIBDIR=`llvm-config-3.4 --libdir`
if test -f $LLVM_LIBDIR/libLTO.so;then
- LTO_LIBS="-L`llvm-config-3.2 --libdir` -lLTO"
+ LTO_LIBS="-L`llvm-config-3.4 --libdir` -lLTO"
LTO_DEFS="-DLTO_SUPPORT=1"
fi
fi

View File

@ -0,0 +1,40 @@
--- configure.ac 2013-12-01 21:31:58.462322949 +0100
+++ configure.ac 2013-12-01 21:30:38.670319304 +0100
@@ -35,7 +35,6 @@
AC_CHECK_TOOL([HOST_RANLIB], [ranlib], :)
AC_CHECK_TOOL([HOST_AR], [ar], :)
-AC_CHECK_HEADERS([llvm-c/lto.h], [], [AC_MSG_ERROR([*** lto.h not found, Please install llvm dev packages according to your system])])
AC_CHECK_HEADERS([openssl/md5.h], [], [AC_MSG_ERROR([*** md5.h not found, Please install ssl dev packages according to your system])])
AC_CHECK_HEADERS([uuid/uuid.h], [], [AC_MSG_ERROR([*** uuid.h not found, Please install uuid dev packages according to your system])])
@@ -189,29 +188,6 @@
AC_C_BIGENDIAN([AC_SUBST([ENDIAN_FLAG],[-D__BIG_ENDIAN__=1])],
[AC_SUBST([ENDIAN_FLAG],[-D__LITTLE_ENDIAN__=1])])
-# Check LTO
-AC_CHECK_PROG(HAVE_LLVM_CONFIG, llvm-config, true, false)
-
-if test "x$HAVE_LLVM_CONFIG" = "xfalse"; then
- AC_CHECK_PROG(HAVE_LLVM_CONFIG_32, llvm-config-3.2, true, false)
- if test "x$HAVE_LLVM_CONFIG_32" = "xfalse"; then
- AC_MSG_ERROR([llvm-config or llvm-config-3.2 not found on your system,please install related packages])
- else
- LLVM_LIBDIR=`llvm-config-3.2 --libdir`
- if test -f $LLVM_LIBDIR/libLTO.so;then
- LTO_LIBS="-L`llvm-config-3.2 --libdir` -lLTO"
- LTO_DEFS="-DLTO_SUPPORT=1"
- fi
- fi
-else
- LLVM_LIBDIR=`llvm-config --libdir`
- if test -f $LLVM_LIBDIR/libLTO.so;then
- LTO_LIBS="-L`llvm-config --libdir` -lLTO"
- LTO_DEFS="-DLTO_SUPPORT=1"
- fi
-fi
-
-
AC_SUBST(LTO_LIBS)
AC_SUBST(LTO_DEFS)