Tizen 2.0 Release
[external/tizen-coreutils.git] / packaging / coreutils-4.5.3-sysinfo.patch
1 --- coreutils-5.97/src/uname.c.sysinfo  2005-09-15 20:57:04.000000000 +0100
2 +++ coreutils-5.97/src/uname.c  2006-08-24 17:15:56.000000000 +0100
3 @@ -155,7 +155,7 @@
4  main (int argc, char **argv)
5  {
6    int c;
7 -  static char const unknown[] = "unknown";
8 +  static char unknown[] = "unknown";
9  
10    /* Mask indicating which elements to print. */
11    unsigned int toprint = 0;
12 @@ -249,13 +249,35 @@
13  
14    if (toprint & PRINT_PROCESSOR)
15      {
16 -      char const *element = unknown;
17 +      char *element = unknown;
18  #if HAVE_SYSINFO && defined SI_ARCHITECTURE
19        {
20         static char processor[257];
21         if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
22           element = processor;
23        }
24 +#else
25 +      {
26 +       struct utsname u;
27 +       uname(&u);
28 +       element = u.machine;
29 +#ifdef linux
30 +       if(!strcmp(element, "i686")) { /* Check for Athlon */
31 +               char cinfo[1024];
32 +               FILE *f=fopen("/proc/cpuinfo", "r");
33 +               if(f) {
34 +                       while(fgets(cinfo, 1024, f)) {
35 +                               if(!strncmp(cinfo, "vendor_id", 9)) {
36 +                                       if(strstr(cinfo, "AuthenticAMD"))
37 +                                               element="athlon";
38 +                                       break;
39 +                               }
40 +                       }
41 +                       fclose(f);
42 +               }
43 +       }
44 +#endif
45 +      }
46  #endif
47  #ifdef UNAME_PROCESSOR
48        if (element == unknown)
49 @@ -293,7 +315,7 @@
50  
51    if (toprint & PRINT_HARDWARE_PLATFORM)
52      {
53 -      char const *element = unknown;
54 +      char *element = unknown;
55  #if HAVE_SYSINFO && defined SI_PLATFORM
56        {
57         static char hardware_platform[257];
58 @@ -301,6 +323,14 @@
59                           hardware_platform, sizeof hardware_platform))
60           element = hardware_platform;
61        }
62 +#else
63 +      {
64 +       struct utsname u;
65 +       uname(&u);
66 +       element = u.machine;
67 +       if(strlen(element)==4 && element[0]=='i' && element[2]=='8' && element[3]=='6')
68 +               element[1]='3';
69 +      }
70  #endif
71  #ifdef UNAME_HARDWARE_PLATFORM
72        if (element == unknown)