/* uname.c - return system name * * Copyright 2008 Rob Landley * * See http://opengroup.org/onlinepubs/9699919799/utilities/uname.html USE_UNAME(NEWTOY(uname, "oamvrns[+os]", TOYFLAG_BIN)) config UNAME bool "uname" default y help usage: uname [-asnrvm] Print system information. -s System name -n Network (domain) name -r Kernel Release number -v Kernel Version -m Machine (hardware) name -a All of the above */ #define FOR_uname #include "toys.h" // If a 32 bit x86 build environment working in a chroot under an x86-64 // kernel returns x86_64 for -m it confuses ./configure. Special case it. #if defined(__i686__) #define GROSS "i686" #elif defined(__i586__) #define GROSS "i586" #elif defined(__i486__) #define GROSS "i486" #elif defined(__i386__) #define GROSS "i386" #endif void uname_main(void) { int i, flags = toys.optflags, needspace=0; struct utsname u; uname(&u); if (!flags) flags = FLAG_s; for (i=0; i<5; i++) { char *c = ((char *) &u)+(sizeof(u.sysname)*i); if (flags & ((1<