summaryrefslogtreecommitdiff
path: root/core/pacman/pentium4-auto-config.patch
diff options
context:
space:
mode:
Diffstat (limited to 'core/pacman/pentium4-auto-config.patch')
-rw-r--r--core/pacman/pentium4-auto-config.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/core/pacman/pentium4-auto-config.patch b/core/pacman/pentium4-auto-config.patch
new file mode 100644
index 00000000..5401a64b
--- /dev/null
+++ b/core/pacman/pentium4-auto-config.patch
@@ -0,0 +1,37 @@
+diff --git a/src/pacman/conf.c b/src/pacman/conf.c
+index 3b79fbc7..2325f688 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"));
+ }