diff --git a/src/wrap.c b/src/wrap.c index 3c88b5564ac3b947cf2bc65cc4b10a962080e2c7..de940f1b2138da378bf30d72a1f15d49ec2f4f88 100644 --- a/src/wrap.c +++ b/src/wrap.c @@ -787,6 +787,7 @@ bind_runtime (FlatpakBwrap *bwrap, gsize i, j; const gchar *member; g_autoptr(GString) dri_path = g_string_new (""); + gboolean any_architecture_works = FALSE; g_return_val_if_fail (tools_dir != NULL, FALSE); g_return_val_if_fail (runtime != NULL, FALSE); @@ -996,6 +997,7 @@ bind_runtime (FlatpakBwrap *bwrap, continue; } + any_architecture_works = TRUE; g_debug ("Container path: %s -> %s", ld_so, ld_so_in_runtime); search_path_append (dri_path, this_dri_path_in_container); @@ -1105,6 +1107,26 @@ bind_runtime (FlatpakBwrap *bwrap, } } + if (!any_architecture_works) + { + GString *archs = g_string_new (""); + + for (i = 0; i < G_N_ELEMENTS (multiarch_tuples); i++) + { + if (archs->len > 0) + g_string_append (archs, ", "); + + g_string_append (archs, multiarch_tuples[i]); + } + + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "None of the supported CPU architectures are common to " + "the host system and the container (tried: %s)", + archs->str); + g_string_free (archs, TRUE); + return FALSE; + } + if (dri_path->len != 0) flatpak_bwrap_add_args (bwrap, "--setenv", "LIBGL_DRIVERS_PATH", dri_path->str,