From 05b114e5265722e970cb894ed6c3aa3026c0d04d Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Thu, 14 Mar 2019 13:58:54 +0000 Subject: [PATCH] simplify LLVM version string printing MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Figure it out once in the build system, then just use that all over the place. Signed-off-by: Eric Engestrom Reviewed-by: Marek Olšák --- Android.mk | 8 ++++---- configure.ac | 2 +- meson.build | 10 +--------- src/amd/vulkan/radv_debug.c | 11 ++++------- src/amd/vulkan/radv_device.c | 10 ++-------- src/gallium/drivers/r600/r600_pipe_common.c | 20 +++++++------------- src/gallium/drivers/radeonsi/si_get.c | 7 ++----- 7 files changed, 21 insertions(+), 47 deletions(-) diff --git a/Android.mk b/Android.mk index 1bd7db4..8662bfb 100644 --- a/Android.mk +++ b/Android.mk @@ -97,13 +97,13 @@ define mesa-build-with-llvm $(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5), \ $(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \ $(if $(filter 6,$(MESA_ANDROID_MAJOR_VERSION)), \ - $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_PATCH=0)) \ + $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_STRING="3.7")) \ $(if $(filter 7,$(MESA_ANDROID_MAJOR_VERSION)), \ - $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0)) \ + $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_STRING="3.8")) \ $(if $(filter 8,$(MESA_ANDROID_MAJOR_VERSION)), \ - $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0)) \ + $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_STRING="3.9")) \ $(if $(filter P,$(MESA_ANDROID_MAJOR_VERSION)), \ - $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0)) \ + $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_STRING="3.9")) \ $(eval LOCAL_SHARED_LIBRARIES += libLLVM) endef diff --git a/configure.ac b/configure.ac index 78d5967..7980493 100644 --- a/configure.ac +++ b/configure.ac @@ -2936,7 +2936,7 @@ dnl dnl Set defines and buildtime variables only when using LLVM. dnl if test "x$enable_llvm" = xyes; then - DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH" + DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_STRING=\\\"$LLVM_VERSION\\\"" LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient diff --git a/meson.build b/meson.build index 917186a..2c98e9e 100644 --- a/meson.build +++ b/meson.build @@ -1234,17 +1234,9 @@ if _llvm != 'false' endif if with_llvm _llvm_version = dep_llvm.version().split('.') - - # 3 digits versions in LLVM only started from 3.4.1 on - if dep_llvm.version().version_compare('>= 3.4.1') - _llvm_patch = _llvm_version[2] - else - _llvm_patch = '0' - endif - pre_args += [ '-DHAVE_LLVM=0x0@0@0@1@'.format(_llvm_version[0], _llvm_version[1]), - '-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch), + '-DMESA_LLVM_VERSION_STRING="@0@"'.format(dep_llvm.version()), ] # LLVM can be built without rtti, turning off rtti changes the ABI of C++ diff --git a/src/amd/vulkan/radv_debug.c b/src/amd/vulkan/radv_debug.c index 6234904..4854b09 100644 --- a/src/amd/vulkan/radv_debug.c +++ b/src/amd/vulkan/radv_debug.c @@ -629,7 +629,7 @@ static void radv_dump_device_name(struct radv_device *device, FILE *f) { struct radeon_info *info = &device->physical_device->rad_info; - char llvm_string[32] = {}, kernel_version[128] = {}; + char kernel_version[128] = {}; struct utsname uname_data; const char *chip_name; @@ -639,14 +639,11 @@ radv_dump_device_name(struct radv_device *device, FILE *f) snprintf(kernel_version, sizeof(kernel_version), " / %s", uname_data.release); - snprintf(llvm_string, sizeof(llvm_string), - ", LLVM %i.%i.%i", (HAVE_LLVM >> 8) & 0xff, - HAVE_LLVM & 0xff, MESA_LLVM_VERSION_PATCH); - - fprintf(f, "Device name: %s (%s DRM %i.%i.%i%s%s)\n\n", + fprintf(f, "Device name: %s (%s DRM %i.%i.%i%s, LLVM " + MESA_LLVM_VERSION_STRING ")\n\n", chip_name, device->physical_device->name, info->drm_major, info->drm_minor, info->drm_patchlevel, - kernel_version, llvm_string); + kernel_version); } static bool diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index ffec7cf..5baf6aa 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -87,7 +87,6 @@ static void radv_get_device_name(enum radeon_family family, char *name, size_t name_len) { const char *chip_string; - char llvm_string[32] = {}; switch (family) { case CHIP_TAHITI: chip_string = "AMD RADV TAHITI"; break; @@ -116,10 +115,7 @@ radv_get_device_name(enum radeon_family family, char *name, size_t name_len) default: chip_string = "AMD RADV unknown"; break; } - snprintf(llvm_string, sizeof(llvm_string), - " (LLVM %i.%i.%i)", (HAVE_LLVM >> 8) & 0xff, - HAVE_LLVM & 0xff, MESA_LLVM_VERSION_PATCH); - snprintf(name, name_len, "%s%s", chip_string, llvm_string); + snprintf(name, name_len, "%s (LLVM " MESA_LLVM_VERSION_STRING ")", chip_string); } static uint64_t @@ -1267,9 +1263,7 @@ void radv_GetPhysicalDeviceProperties2( memset(driver_props->driverInfo, 0, VK_MAX_DRIVER_INFO_SIZE_KHR); snprintf(driver_props->driverInfo, VK_MAX_DRIVER_INFO_SIZE_KHR, "Mesa " PACKAGE_VERSION MESA_GIT_SHA1 - " (LLVM %d.%d.%d)", - (HAVE_LLVM >> 8) & 0xff, HAVE_LLVM & 0xff, - MESA_LLVM_VERSION_PATCH); + " (LLVM " MESA_LLVM_VERSION_STRING ")"); driver_props->conformanceVersion = (VkConformanceVersionKHR) { .major = 1, diff --git a/src/gallium/drivers/r600/r600_pipe_common.c b/src/gallium/drivers/r600/r600_pipe_common.c index 19ba09a..fce35b4 100644 --- a/src/gallium/drivers/r600/r600_pipe_common.c +++ b/src/gallium/drivers/r600/r600_pipe_common.c @@ -47,10 +47,6 @@ #include #endif -#ifndef MESA_LLVM_VERSION_PATCH -#define MESA_LLVM_VERSION_PATCH 0 -#endif - struct r600_multi_fence { struct pipe_reference reference; struct pipe_fence_handle *gfx; @@ -1271,7 +1267,7 @@ struct pipe_resource *r600_resource_create_common(struct pipe_screen *screen, bool r600_common_screen_init(struct r600_common_screen *rscreen, struct radeon_winsys *ws) { - char family_name[32] = {}, llvm_string[32] = {}, kernel_version[128] = {}; + char family_name[32] = {}, kernel_version[128] = {}; struct utsname uname_data; const char *chip_name; @@ -1288,17 +1284,15 @@ bool r600_common_screen_init(struct r600_common_screen *rscreen, snprintf(kernel_version, sizeof(kernel_version), " / %s", uname_data.release); - if (HAVE_LLVM > 0) { - snprintf(llvm_string, sizeof(llvm_string), - ", LLVM %i.%i.%i", (HAVE_LLVM >> 8) & 0xff, - HAVE_LLVM & 0xff, MESA_LLVM_VERSION_PATCH); - } - snprintf(rscreen->renderer_string, sizeof(rscreen->renderer_string), - "%s (%sDRM %i.%i.%i%s%s)", + "%s (%sDRM %i.%i.%i%s" +#if HAVE_LLVM > 0 + ", LLVM " MESA_LLVM_VERSION_STRING +#endif + ")", chip_name, family_name, rscreen->info.drm_major, rscreen->info.drm_minor, rscreen->info.drm_patchlevel, - kernel_version, llvm_string); + kernel_version); rscreen->b.get_name = r600_get_name; rscreen->b.get_vendor = r600_get_vendor; diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c index 6fa6708..58b56b3 100644 --- a/src/gallium/drivers/radeonsi/si_get.c +++ b/src/gallium/drivers/radeonsi/si_get.c @@ -961,13 +961,10 @@ static void si_init_renderer_string(struct si_screen *sscreen) ", %s", uname_data.release); snprintf(sscreen->renderer_string, sizeof(sscreen->renderer_string), - "%s (%sDRM %i.%i.%i%s, LLVM %i.%i.%i)", + "%s (%sDRM %i.%i.%i%s, LLVM " MESA_LLVM_VERSION_STRING ")", first_name, second_name, sscreen->info.drm_major, sscreen->info.drm_minor, sscreen->info.drm_patchlevel, - kernel_version, - (HAVE_LLVM >> 8) & 0xff, - HAVE_LLVM & 0xff, - MESA_LLVM_VERSION_PATCH); + kernel_version); } void si_init_screen_get_functions(struct si_screen *sscreen) -- 2.7.4