diff -urNp coreutils-8.2-orig/src/uname.c coreutils-8.2/src/uname.c --- coreutils-8.2-orig/src/uname.c 2009-09-23 10:25:44.000000000 +0200 +++ coreutils-8.2/src/uname.c 2009-12-19 09:09:11.663607110 +0100 @@ -301,7 +301,7 @@ main (int argc, char **argv) if (toprint & PRINT_PROCESSOR) { - char const *element = unknown; + char *element = unknown; #if HAVE_SYSINFO && defined SI_ARCHITECTURE { static char processor[257]; @@ -308,6 +308,12 @@ main (int argc, char **argv) if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) element = processor; } +#else + { + static struct utsname u; + uname(&u); + element = u.machine; + } #endif #ifdef UNAME_PROCESSOR if (element == unknown) @@ -351,7 +357,7 @@ main (int argc, char **argv) if (toprint & PRINT_HARDWARE_PLATFORM) { - char const *element = unknown; + char *element = unknown; #if HAVE_SYSINFO && defined SI_PLATFORM { static char hardware_platform[257]; @@ -353,6 +359,14 @@ main (int argc, char **argv) hardware_platform, sizeof hardware_platform)) element = hardware_platform; } +#else + { + static struct utsname u; + uname(&u); + element = u.machine; + if(strlen(element)==4 && element[0]=='i' && element[2]=='8' && element[3]=='6') + element[1]='3'; + } #endif #ifdef UNAME_HARDWARE_PLATFORM if (element == unknown)