From 08da6753f7566b1d691c3fa363c05a020a868094 Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Tue, 16 Jul 2019 20:37:09 +0100 Subject: [PATCH] Add symbolic constants for the i386 and x86_64 ABIs Signed-off-by: Simon McVittie <smcv@collabora.com> --- examples/system-info.c | 4 ++-- steam-runtime-tools/architecture.c | 8 ++++---- steam-runtime-tools/architecture.h | 16 ++++++++++++++++ steam-runtime-tools/library-internal.h | 2 +- steam-runtime-tools/library.c | 9 +++++---- 5 files changed, 28 insertions(+), 11 deletions(-) diff --git a/examples/system-info.c b/examples/system-info.c index 063476695..aca0ed52c 100644 --- a/examples/system-info.c +++ b/examples/system-info.c @@ -45,9 +45,9 @@ main (int argc, g_print ("{\n"); g_print (" \"can-run\": {\n"); - g_print (" \"i386-linux-gnu\": %s,\n", + g_print (" \"%s\": %s,\n", SRT_ABI_I386, srt_architecture_can_run_i386 () ? "true" : "false"); - g_print (" \"x86_64-linux-gnu\": %s\n", + g_print (" \"%s\": %s\n", SRT_ABI_X86_64, srt_architecture_can_run_x86_64 () ? "true" : "false"); g_print (" }\n"); diff --git a/steam-runtime-tools/architecture.c b/steam-runtime-tools/architecture.c index f04e9a75f..e8a5f4390 100644 --- a/steam-runtime-tools/architecture.c +++ b/steam-runtime-tools/architecture.c @@ -84,7 +84,7 @@ out: /** * srt_architecture_can_run_i386: * - * Check whether we can run an i386 executable. + * Check whether we can run an i386 (%SRT_ABI_I386) executable. * * For this check to work as intended, the contents of the * `libsteam-runtime-tools-0-helpers:i386` package must be available @@ -107,13 +107,13 @@ out: gboolean srt_architecture_can_run_i386 (void) { - return _srt_architecture_can_run ("i386-linux-gnu"); + return _srt_architecture_can_run (SRT_ABI_I386); } /** * srt_architecture_can_run_x86_64: * - * Check whether we can run an x86_64 executable. + * Check whether we can run an x86_64 (%SRT_ABI_X86_64) executable. * * For this check to work as intended, the contents of the * `libsteam-runtime-tools-0-helpers:amd64` package must be available @@ -125,5 +125,5 @@ srt_architecture_can_run_i386 (void) gboolean srt_architecture_can_run_x86_64 (void) { - return _srt_architecture_can_run ("x86_64-linux-gnu"); + return _srt_architecture_can_run (SRT_ABI_X86_64); } diff --git a/steam-runtime-tools/architecture.h b/steam-runtime-tools/architecture.h index bf05afdff..ed1562d99 100644 --- a/steam-runtime-tools/architecture.h +++ b/steam-runtime-tools/architecture.h @@ -31,5 +31,21 @@ #include <glib.h> +/** + * SRT_ABI_I386: + * + * The multiarch tuple for the i386 (IA-32) ABI normally used on + * 32-bit x86 Linux. + */ +#define SRT_ABI_I386 "i386-linux-gnu" + +/** + * SRT_ABI_X86_64: + * + * The multiarch tuple for the x86_64 ABI normally used on + * 64-bit x86 Linux. + */ +#define SRT_ABI_X86_64 "x86_64-linux-gnu" + gboolean srt_architecture_can_run_i386 (void); gboolean srt_architecture_can_run_x86_64 (void); diff --git a/steam-runtime-tools/library-internal.h b/steam-runtime-tools/library-internal.h index 4fef587f4..ff243daa1 100644 --- a/steam-runtime-tools/library-internal.h +++ b/steam-runtime-tools/library-internal.h @@ -30,7 +30,7 @@ /* * _srt_library_new: - * @multiarch_tuple: A multiarch tuple like i386-linux-gnu, + * @multiarch_tuple: A multiarch tuple like %SRT_ABI_I386, * representing an ABI * @soname: A SONAME like libz.so.1 * @issues: Problems found when loading a @multiarch_tuple copy diff --git a/steam-runtime-tools/library.c b/steam-runtime-tools/library.c index 05c1c0786..00718b7d0 100644 --- a/steam-runtime-tools/library.c +++ b/steam-runtime-tools/library.c @@ -25,6 +25,7 @@ #include "steam-runtime-tools/library.h" +#include "steam-runtime-tools/architecture.h" #include "steam-runtime-tools/enums.h" /** @@ -183,8 +184,8 @@ srt_library_class_init (SrtLibraryClass *cls) properties[PROP_MULTIARCH_TUPLE] = g_param_spec_string ("multiarch-tuple", "Multiarch tuple", "Debian-style multiarch tuple representing the " - "ABI of this library, usually i386-linux-gnu " - "or x86_64-linux-gnu", + "ABI of this library, usually " SRT_ABI_I386 " " + "or " SRT_ABI_X86_64, NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); @@ -220,8 +221,8 @@ srt_library_get_soname (SrtLibrary *self) * * Return the multiarch tuple representing the ABI of @self. * - * Returns: A Debian-style multiarch tuple, usually `i386-linux-gnu` - * or `x86_64-linux-gnu` + * Returns: A Debian-style multiarch tuple, usually %SRT_ABI_I386 + * or %SRT_ABI_X86_64 */ const char * srt_library_get_multiarch_tuple (SrtLibrary *self) -- GitLab