Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/core/pacman/pentium4-auto-config.patch
blob: 5401a64b0ff8faa51afa26e5ce88d1d857c5097b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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"));
 	}