mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-05-11 09:48:24 +02:00
coreutils: Update to 8.27
Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org> Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
committed by
Michael Tremer
parent
8e5116af26
commit
e1fb40529c
File diff suppressed because it is too large
Load Diff
170
src/patches/coreutils-8.27-uname-1.patch
Normal file
170
src/patches/coreutils-8.27-uname-1.patch
Normal file
@@ -0,0 +1,170 @@
|
||||
Submitted by: DJ Lucas (dj_at_linuxfromscratch_dot_org)
|
||||
Date: 2012-04-21
|
||||
Initial Package Version: 8.16
|
||||
Upstream Status: Rejected
|
||||
Origin: Based on Gentoo patch
|
||||
Description: Makes uname -m output more descriptive
|
||||
|
||||
diff -Naurp coreutils-8.16-orig/src/uname.c coreutils-8.16/src/uname.c
|
||||
--- coreutils-8.16-orig/src/uname.c 2012-04-22 20:02:39.000000000 +0000
|
||||
+++ coreutils-8.16/src/uname.c 2012-04-22 20:02:50.000000000 +0000
|
||||
@@ -49,6 +49,11 @@
|
||||
# include <mach-o/arch.h>
|
||||
#endif
|
||||
|
||||
+#if defined(__linux__)
|
||||
+# define USE_PROCINFO
|
||||
+# define UNAME_HARDWARE_PLATFORM
|
||||
+#endif
|
||||
+
|
||||
#include "system.h"
|
||||
#include "die.h"
|
||||
#include "error.h"
|
||||
@@ -153,6 +158,117 @@ Print machine architecture.\n\
|
||||
exit (status);
|
||||
}
|
||||
|
||||
+#if defined(USE_PROCINFO)
|
||||
+
|
||||
+# if defined(__s390__) || defined(__s390x__)
|
||||
+# define CPUINFO_FILE "/proc/sysinfo"
|
||||
+# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c"
|
||||
+# else
|
||||
+# define CPUINFO_FILE "/proc/cpuinfo"
|
||||
+# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c"
|
||||
+# endif
|
||||
+
|
||||
+# define PROCINFO_PROCESSOR 0
|
||||
+# define PROCINFO_HARDWARE_PLATFORM 1
|
||||
+
|
||||
+static void __eat_cpuinfo_space(char *buf)
|
||||
+{
|
||||
+ /* first eat trailing space */
|
||||
+ char *tmp = buf + strlen(buf) - 1;
|
||||
+ while (tmp > buf && isspace(*tmp))
|
||||
+ *tmp-- = '\0';
|
||||
+ /* then eat leading space */
|
||||
+ tmp = buf;
|
||||
+ while (*tmp && isspace(*tmp))
|
||||
+ tmp++;
|
||||
+ if (tmp != buf)
|
||||
+ memmove(buf, tmp, strlen(tmp)+1);
|
||||
+ /* finally collapse whitespace */
|
||||
+ tmp = buf;
|
||||
+ while (tmp[0] && tmp[1]) {
|
||||
+ if (isspace(tmp[0]) && isspace(tmp[1])) {
|
||||
+ memmove(tmp, tmp+1, strlen(tmp));
|
||||
+ continue;
|
||||
+ }
|
||||
+ ++tmp;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int __linux_procinfo(int x, char *fstr, size_t s)
|
||||
+{
|
||||
+ FILE *fp;
|
||||
+
|
||||
+ char *procinfo_keys[] = {
|
||||
+ /* --processor --hardware-platform */
|
||||
+ #if defined(__alpha__)
|
||||
+ "cpu model", "system type"
|
||||
+ #elif defined(__arm__)
|
||||
+ "Processor", "Hardware"
|
||||
+ #elif defined(__avr32__)
|
||||
+ "processor", "cpu family"
|
||||
+ #elif defined(__bfin__)
|
||||
+ "CPU", "BOARD Name"
|
||||
+ #elif defined(__cris__)
|
||||
+ "cpu", "cpu model"
|
||||
+ #elif defined(__frv__)
|
||||
+ "CPU-Core", "System"
|
||||
+ #elif defined(__i386__) || defined(__x86_64__)
|
||||
+ "model name", "vendor_id"
|
||||
+ #elif defined(__ia64__)
|
||||
+ "family", "vendor"
|
||||
+ #elif defined(__hppa__)
|
||||
+ "cpu", "model"
|
||||
+ #elif defined(__m68k__)
|
||||
+ "CPU", "MMU"
|
||||
+ #elif defined(__mips__)
|
||||
+ "cpu model", "system type"
|
||||
+ #elif defined(__powerpc__) || defined(__powerpc64__)
|
||||
+ "cpu", "machine"
|
||||
+ #elif defined(__s390__) || defined(__s390x__)
|
||||
+ "Type", "Manufacturer"
|
||||
+ #elif defined(__sh__)
|
||||
+ "cpu type", "machine"
|
||||
+ #elif defined(sparc) || defined(__sparc__)
|
||||
+ "type", "cpu"
|
||||
+ #elif defined(__vax__)
|
||||
+ "cpu type", "cpu"
|
||||
+ #else
|
||||
+ "unknown", "unknown"
|
||||
+ #endif
|
||||
+ };
|
||||
+
|
||||
+ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) {
|
||||
+ char key[65], value[257], eol, *ret = NULL;
|
||||
+
|
||||
+ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) {
|
||||
+ __eat_cpuinfo_space(key);
|
||||
+ if (!strcmp(key, procinfo_keys[x])) {
|
||||
+ __eat_cpuinfo_space(value);
|
||||
+ ret = value;
|
||||
+ break;
|
||||
+ }
|
||||
+ if (eol != '\n') {
|
||||
+ /* we need two fscanf's here in case the previous
|
||||
+ * length limit caused us to read right up to the
|
||||
+ * newline ... doing "%*[^\n]\n" wont eat the newline
|
||||
+ */
|
||||
+ fscanf(fp, "%*[^\n]");
|
||||
+ fscanf(fp, "\n");
|
||||
+ }
|
||||
+ }
|
||||
+ fclose(fp);
|
||||
+
|
||||
+ if (ret) {
|
||||
+ strncpy(fstr, ret, s);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return -1;
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
/* Print ELEMENT, preceded by a space if something has already been
|
||||
printed. */
|
||||
|
||||
@@ -300,10 +416,14 @@ main (int argc, char **argv)
|
||||
if (toprint & PRINT_PROCESSOR)
|
||||
{
|
||||
char const *element = unknown;
|
||||
-#if HAVE_SYSINFO && defined SI_ARCHITECTURE
|
||||
+#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO)
|
||||
{
|
||||
static char processor[257];
|
||||
+#if defined(USE_PROCINFO)
|
||||
+ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor))
|
||||
+#else
|
||||
if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
|
||||
+#endif
|
||||
element = processor;
|
||||
}
|
||||
#endif
|
||||
@@ -356,9 +476,13 @@ main (int argc, char **argv)
|
||||
if (element == unknown)
|
||||
{
|
||||
static char hardware_platform[257];
|
||||
+#if defined(USE_PROCINFO)
|
||||
+ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform))
|
||||
+#else
|
||||
size_t s = sizeof hardware_platform;
|
||||
static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM };
|
||||
if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0)
|
||||
+#endif
|
||||
element = hardware_platform;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user