diff --git a/libdnf/dnf-context.cpp b/libdnf/dnf-context.cpp index eb97e5c68..1eb4fd1b9 100644 --- a/libdnf/dnf-context.cpp +++ b/libdnf/dnf-context.cpp @@ -123,6 +123,7 @@ static const struct { "sparcv9", "sparcv9v", NULL } }, { "x86_64", { "x86_64", "amd64", "ia32e", NULL } }, { "loongarch64", { "loongarch64", NULL } }, + { "e2k", { "e2k", "e2kv4", "e2kv5", "e2kv6", NULL } }, { NULL, { NULL } } }; diff --git a/libdnf/hy-util.cpp b/libdnf/hy-util.cpp index 9b3725765..82f24edd3 100644 --- a/libdnf/hy-util.cpp +++ b/libdnf/hy-util.cpp @@ -139,6 +139,14 @@ hy_detect_arch(char **arch) strcpy(un.machine, "mipsel"); else if (!strcmp(un.machine, "mips64")) strcpy(un.machine, "mips64el"); +#endif +#if defined(__e2k__) + if (__builtin_cpu_is("elbrus-v4") || __builtin_cpu_is("elbrus-8c") || __builtin_cpu_is("elbrus-1c+")) + strcpy(un.machine, "e2kv4"); + else if (__builtin_cpu_is("elbrus-v5") || __builtin_cpu_is("elbrus-8c2")) + strcpy(un.machine, "e2kv5"); + else if (__builtin_cpu_is("elbrus-v6") || __builtin_cpu_is("elbrus-12c") || __builtin_cpu_is("elbrus-16c") || __builtin_cpu_is("elbrus-2c3")) + strcpy(un.machine, "e2kv6"); #endif *arch = g_strdup(un.machine); return 0;