diff options
author | Erich Eckner <git@eckner.net> | 2019-05-13 10:39:33 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2019-05-15 11:04:50 +0200 |
commit | cb317944e36b6fa1b68abe80fa1e54270f3a0840 (patch) | |
tree | 3fc37905752f3f46a300406474d30e34fd2cddd4 | |
parent | 7007d3c5739df17741049dea9238bf5ddd77942b (diff) | |
download | pacman-cb317944e36b6fa1b68abe80fa1e54270f3a0840.tar.xz |
change "i686" to "pentium4" if sse2 is available
-rw-r--r-- | src/pacman/conf.c | 5 | ||||
-rw-r--r-- | src/pacman/pacman.c | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/pacman/conf.c b/src/pacman/conf.c index 2d8518c4..2e7fac88 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -308,6 +308,11 @@ int config_set_arch(const char *arch) struct utsname un; uname(&un); config->arch = strdup(un.machine); + if(strcmp(config->arch, "i686") == 0) { + __builtin_cpu_init(); + if (__builtin_cpu_supports("sse2")) + config->arch = strdup("pentium4"); + } } else { config->arch = strdup(arch); } diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 3bb622e6..abb6f933 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -274,8 +274,15 @@ static void setuseragent(void) int len; uname(&un); + char machine[8]; + strncpy(machine, un.machine, 8); + if(strcmp(machine, "i686") == 0) { + __builtin_cpu_init(); + if (__builtin_cpu_supports("sse2")) + strncpy(machine, "pentium4", 8); + } len = snprintf(agent, 100, "pacman/%s (%s %s) libalpm/%s", - PACKAGE_VERSION, un.sysname, un.machine, alpm_version()); + PACKAGE_VERSION, un.sysname, machine, alpm_version()); if(len >= 100) { pm_printf(ALPM_LOG_WARNING, _("HTTP_USER_AGENT truncated\n")); } |