configure.ac: Revert recent HAVE_LLVM changes.

This reverts changes 903eb09b5fb78d47d0f8a4bdf826a113ca2aff40..1a0aa468f354f0ee94dd383cd40ae915584624aa:

  Tobias Droste (5):
    configure.ac: Rename MESA_LLVM to FOUND_LLVM
    configure.ac: Only set LLVM_LIBS if LLVM is used
    configure.ac: Only define HAVE_LLVM if LLVM is used
    configure.ac: Set and use HAVE_GALLIUM_LLVM define
    configure.ac: Don't check LLVM version in gallium_require_llvm

They break scons build, and I'm not convinced this is the right fix.  In
particular changing HAVE_LLVM in the C code is something I'd rather
avoid no matter what.  So it's better to discuss without the pressure of
broken builds.
This commit is contained in:
Jose Fonseca 2017-01-18 14:42:47 +00:00
parent 5034cf4e35
commit 34041968f8
6 changed files with 39 additions and 54 deletions

View file

@ -1003,19 +1003,16 @@ llvm_set_environment_variables() {
LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}${LLVM_VERSION_MINOR}"
fi
FOUND_LLVM=yes
USE_LLVM=no
DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
MESA_LLVM=1
else
FOUND_LLVM=no
USE_LLVM=no
MESA_LLVM=0
LLVM_VERSION_INT=0
fi
}
llvm_require_version() {
USE_LLVM=yes
if test "x$FOUND_LLVM" = xno; then
llvm_check_version_for() {
if test "x$MESA_LLVM" = x0; then
AC_MSG_ERROR([LLVM $1 or newer is required for $2])
return
fi
@ -1059,7 +1056,7 @@ radeon_llvm_check() {
amdgpu_llvm_target_name='amdgpu'
fi
llvm_require_version $*
llvm_check_version_for $*
llvm_add_target $amdgpu_llvm_target_name $2
@ -1075,6 +1072,7 @@ radeon_llvm_check() {
llvm_set_environment_variables
AC_SUBST([MESA_LLVM])
AC_SUBST([LLVM_BINDIR])
AC_SUBST([LLVM_CFLAGS])
AC_SUBST([LLVM_CPPFLAGS])
@ -2189,7 +2187,7 @@ if test "x$enable_opencl" = xyes; then
AC_MSG_ERROR([Clover requires libelf])
fi
llvm_require_version $LLVM_REQUIRED_OPENCL "opencl"
llvm_check_version_for $LLVM_REQUIRED_OPENCL "opencl"
llvm_add_default_components "opencl"
llvm_add_component "all-targets" "opencl"
@ -2393,7 +2391,9 @@ dnl
dnl Gallium helper functions
dnl
gallium_require_llvm() {
if test "x$enable_gallium_llvm" != "xyes"; then
if test "x$enable_gallium_llvm" = "xyes"; then
llvm_check_version_for $LLVM_REQUIRED_GALLIUM "gallium"
else
AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
fi
}
@ -2525,12 +2525,12 @@ if test -n "$with_gallium_drivers"; then
;;
xswrast)
HAVE_GALLIUM_SOFTPIPE=yes
if test "x$FOUND_LLVM" = xyes -a "x$enable_gallium_llvm" = xyes; then
if test "x$MESA_LLVM" = x1 && test "x$enable_gallium_llvm" == "xyes"; then
HAVE_GALLIUM_LLVMPIPE=yes
fi
;;
xswr)
llvm_require_version $LLVM_REQUIRED_SWR "swr"
llvm_check_version_for $LLVM_REQUIRED_SWR "swr"
gallium_require_llvm "swr"
swr_require_cxx_feature_flags "C++11" "__cplusplus >= 201103L" \
@ -2573,11 +2573,8 @@ if test -n "$with_gallium_drivers"; then
fi
if test "x$enable_gallium_llvm" == "xyes"; then
llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium"
llvm_check_version_for $LLVM_REQUIRED_GALLIUM "gallium"
llvm_add_default_components "gallium"
HAVE_GALLIUM_LLVM=yes
DEFINES="${DEFINES} -DHAVE_GALLIUM_LLVM"
fi
dnl We need to validate some needed dependencies for renderonly drivers.
@ -2586,17 +2583,14 @@ if test "x$HAVE_GALLIUM_ETNAVIV" != xyes -a "x$HAVE_GALLIUM_IMX" == xyes ; then
AC_ERROR([Building with imx requires etnaviv])
fi
dnl Set HAVE_LLVM compiler define if LLVM is used.
dnl Set LLVM_LIBS - This is done after the driver configuration so
dnl that drivers can add additional components to LLVM_COMPONENTS.
dnl Previously, gallium drivers were updating LLVM_LIBS directly
dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
dnl this was causing the same libraries to be appear multiple times
dnl in LLVM_LIBS.
if test "x$USE_LLVM" == xyes; then
DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
dnl Set LLVM_LIBS - This is done after the driver configuration so
dnl that drivers can add additional components to LLVM_COMPONENTS.
dnl Previously, gallium drivers were updating LLVM_LIBS directly
dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
dnl this was causing the same libraries to be appear multiple times
dnl in LLVM_LIBS.
if test "x$MESA_LLVM" != x0; then
if ! $LLVM_CONFIG --libs ${LLVM_COMPONENTS} >/dev/null; then
AC_MSG_ERROR([Calling ${LLVM_CONFIG} failed])
@ -2698,7 +2692,8 @@ AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \
AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$enable_glx" = xgallium-xlib)
AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_LLVM, test "x$HAVE_GALLIUM_LLVM" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_LLVM, test "x$MESA_LLVM" = x1 -a \
"x$enable_gallium_llvm" = xyes)
AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
@ -2983,28 +2978,18 @@ else
fi
echo ""
if test "x$FOUND_LLVM" = xyes; then
echo " llvm found: yes"
if test "x$MESA_LLVM" = x1; then
echo " llvm: yes"
echo " llvm-config: $LLVM_CONFIG"
echo " llvm-version: $LLVM_VERSION"
else
echo " llvm found: no"
fi
if test "x$USE_LLVM" = xyes; then
echo " llvm used: yes"
else
echo " llvm used: no"
echo " llvm: no"
fi
echo ""
if test -n "$with_gallium_drivers"; then
echo " Gallium drivers: $gallium_drivers"
echo " Gallium st: $gallium_st"
if test "x$HAVE_GALLIUM_LLVM" = xyes; then
echo " Gallium llvm: yes"
else
echo " Gallium llvm: no"
fi
else
echo " Gallium: no"
fi
@ -3047,7 +3032,7 @@ echo " CFLAGS: $cflags"
echo " CXXFLAGS: $cxxflags"
echo " Macros: $defines"
echo ""
if test "x$FOUND_LLVM" = xyes; then
if test "x$MESA_LLVM" = x1; then
echo " LLVM_CFLAGS: $LLVM_CFLAGS"
echo " LLVM_CXXFLAGS: $LLVM_CXXFLAGS"
echo " LLVM_CPPFLAGS: $LLVM_CPPFLAGS"

View file

@ -45,7 +45,7 @@
#include "draw_vs.h"
#include "draw_gs.h"
#if HAVE_GALLIUM_LLVM
#if HAVE_LLVM
#include "gallivm/lp_bld_init.h"
#include "gallivm/lp_bld_limits.h"
#include "draw_llvm.h"
@ -78,7 +78,7 @@ draw_create_context(struct pipe_context *pipe, void *context,
/* we need correct cpu caps for disabling denorms in draw_vbo() */
util_cpu_detect();
#if HAVE_GALLIUM_LLVM
#if HAVE_LLVM
if (try_llvm && draw_get_option_use_llvm()) {
draw->llvm = draw_llvm_create(draw, (LLVMContextRef)context);
}
@ -112,7 +112,7 @@ draw_create(struct pipe_context *pipe)
}
#if HAVE_GALLIUM_LLVM
#if HAVE_LLVM
struct draw_context *
draw_create_with_llvm_context(struct pipe_context *pipe,
void *context)
@ -221,7 +221,7 @@ void draw_destroy( struct draw_context *draw )
draw_pt_destroy( draw );
draw_vs_destroy( draw );
draw_gs_destroy( draw );
#ifdef HAVE_GALLIUM_LLVM
#ifdef HAVE_LLVM
if (draw->llvm)
draw_llvm_destroy( draw->llvm );
#endif
@ -1003,7 +1003,7 @@ draw_set_samplers(struct draw_context *draw,
draw->num_samplers[shader_stage] = num;
#ifdef HAVE_GALLIUM_LLVM
#ifdef HAVE_LLVM
if (draw->llvm)
draw_llvm_set_sampler_state(draw, shader_stage);
#endif
@ -1020,7 +1020,7 @@ draw_set_mapped_texture(struct draw_context *draw,
uint32_t img_stride[PIPE_MAX_TEXTURE_LEVELS],
uint32_t mip_offsets[PIPE_MAX_TEXTURE_LEVELS])
{
#ifdef HAVE_GALLIUM_LLVM
#ifdef HAVE_LLVM
if (draw->llvm)
draw_llvm_set_mapped_texture(draw,
shader_stage,
@ -1057,7 +1057,7 @@ int
draw_get_shader_param(unsigned shader, enum pipe_shader_cap param)
{
#ifdef HAVE_GALLIUM_LLVM
#ifdef HAVE_LLVM
if (draw_get_option_use_llvm()) {
switch(shader) {
case PIPE_SHADER_VERTEX:

View file

@ -65,7 +65,7 @@ struct draw_so_target {
struct draw_context *draw_create( struct pipe_context *pipe );
#if HAVE_GALLIUM_LLVM
#if HAVE_LLVM
struct draw_context *draw_create_with_llvm_context(struct pipe_context *pipe,
void *context);
#endif

View file

@ -191,7 +191,7 @@ boolean draw_pt_init( struct draw_context *draw )
if (!draw->pt.middle.general)
return FALSE;
#if HAVE_GALLIUM_LLVM
#if HAVE_LLVM
if (draw->llvm)
draw->pt.middle.llvm = draw_pt_fetch_pipeline_or_emit_llvm( draw );
#endif
@ -519,7 +519,7 @@ draw_vbo(struct draw_context *draw,
draw->pt.vertex_element,
draw->pt.nr_vertex_elements,
info);
#if HAVE_GALLIUM_LLVM
#if HAVE_LLVM
if (!draw->llvm)
#endif
{

View file

@ -59,7 +59,7 @@ draw_create_vertex_shader(struct draw_context *draw,
tgsi_dump(shader->tokens, 0);
}
#if HAVE_GALLIUM_LLVM
#if HAVE_LLVM
if (draw->pt.middle.llvm) {
vs = draw_create_vs_llvm(draw, shader);
}

View file

@ -163,7 +163,7 @@ draw_create_vs_exec(struct draw_context *draw,
struct draw_vs_variant_key;
struct draw_vertex_shader;
#if HAVE_GALLIUM_LLVM
#if HAVE_LLVM
struct draw_vertex_shader *
draw_create_vs_llvm(struct draw_context *draw,
const struct pipe_shader_state *state);