[Mesa-dev] [PATCH] clover: Add --with-clang-libdir option and verify CLANG_RESOURCE_DIR

Tom Stellard tstellar at gmail.com
Thu Jun 21 08:13:01 PDT 2012


I'll commit this patch tomorrow if there aren't any objections.

-Tom

On Fri, Jun 15, 2012 at 4:52 PM, Tom Stellard <tstellar at gmail.com> wrote:
> $CLANG_RESOURCE_DIR is the directory that contains all resources
> needed by clang to compile programs.  When clover uses clang to
> compile kernels it needs to specify a resource dir, so that clang
> can find its internal headers (e.g. stddef.h).
>
> clang defines $CLANG_RESOURCE_DIR as $CLANG_LIBDIR/clang/$CLANG_VERSION
>
> This patch adds the --with-clang-libdir option in order to accommodate
> clang intalls to non-standard locations, and it also adds a check
> to the configure script to verify that $CLANG_RESOURCE_DIR/include
> contains the necessary header files.
> ---
>  configure.ac                                  |   17 +++++++++++++++++
>  src/gallium/state_trackers/clover/Makefile.am |    2 +-
>  2 files changed, 18 insertions(+), 1 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index d5f8cd7..55ca1e4 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1627,6 +1627,12 @@ AC_ARG_WITH([libclc-path],
>    [LIBCLC_PATH="$withval"],
>    [LIBCLC_PATH=""])
>
> +AC_ARG_WITH([clang-libdir],
> +   [AS_HELP_STRING([--with-clang-libdir],
> +         [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
> +   [CLANG_LIBDIR="$withval"],
> +   [CLANG_LIBDIR=""])
> +
>  AC_SUBST([LIBCLC_PATH])
>
>  if test "x$enable_opencl" = xyes; then
> @@ -1713,6 +1719,7 @@ AC_SUBST([LLVM_LIBS])
>  AC_SUBST([LLVM_LDFLAGS])
>  AC_SUBST([LLVM_INCLUDEDIR])
>  AC_SUBST([LLVM_VERSION])
> +AC_SUBST([CLANG_RESOURCE_DIR])
>
>  case "x$enable_opengl$enable_gles1$enable_gles2" in
>  x*yes*)
> @@ -1887,6 +1894,16 @@ if test "x$enable_gallium_llvm" = xyes; then
>        LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
>        DEFINES="${DEFINES} -DHAVE_LLVM=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/0x0\10\2/g'`"
>        MESA_LLVM=1
> +
> +       dnl Check for Clang interanl headers
> +        if test "x$enable_opencl" = xyes; then
> +            if test "x$CLANG_LIBDIR" = x; then
> +                CLANG_LIBDIR=${LLVM_LIBDIR}
> +            fi
> +            CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
> +            AC_CHECK_FILE("$CLANG_RESOURCE_DIR/include/stddef.h",,
> +                AC_MSG_ERROR([Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries.]))
> +        fi
>     else
>        MESA_LLVM=0
>     fi
> diff --git a/src/gallium/state_trackers/clover/Makefile.am b/src/gallium/state_trackers/clover/Makefile.am
> index 818ced6..5241a6d 100644
> --- a/src/gallium/state_trackers/clover/Makefile.am
> +++ b/src/gallium/state_trackers/clover/Makefile.am
> @@ -24,7 +24,7 @@ libclllvm_la_CXXFLAGS = \
>        $(LLVM_CPPFLAGS) \
>        $(DEFINES) \
>        -DLIBCLC_PATH=\"$(LIBCLC_PATH)/\" \
> -       -DCLANG_RESOURCE_DIR=\"$(LLVM_LIBDIR)/clang/$(LLVM_VERSION)/\"
> +       -DCLANG_RESOURCE_DIR=\"$(CLANG_RESOURCE_DIR)\"
>
>  libclllvm_la_SOURCES = \
>        llvm/invocation.cpp
> --
> 1.7.5.4
>


More information about the mesa-dev mailing list