On Sat, Jan 29, 2005 at 06:16:55PM -0500, Albert Cahalan wrote: > > > > It won't work without my patch. If this file is unneeded, why not just > > removing it? > > It's convenient to ship everything together in one tarball. > One might use minimal.c for a rescue disk or embedded system.
Well, then we might need it for a GNU/kFreeBSD rescue disk. Please, could you fix the PAGE_SIZE issue in that file? (patch is attached) > > The version in /proc/version is intended > > to match with the implementation in the same version of Linux procfs. It's > > unrelated to other kernel features. So for what linprocfs is concerned, > > we're > > Linux 2.4, for what RT signals are concerned, we're Linux 2.0, etc. > > > > Even the linprocfs implementation is far from complete. I don't think we're > > safe claiming anything other than 2.0 in /proc/version. > > Well, give it a try. I'll patch kfreebsd to identify itself as "Linux 2.0" in /proc/version. I'm attaching the patch for procps to use /proc/version instead of uname. -- .''`. Proudly running Debian GNU/kFreeBSD unstable/unreleased (on UFS2+S) : :' : `. `' http://www.debian.org/ports/kfreebsd-gnu `-
diff -ur procps-3.2.4.old/minimal.c procps-3.2.4/minimal.c --- procps-3.2.4.old/minimal.c 2004-05-05 02:26:14.000000000 +0200 +++ procps-3.2.4/minimal.c 2005-01-28 00:39:14.000000000 +0100 @@ -57,7 +57,6 @@ /////////////////////////////////////////////////////// #ifdef __linux__ #include <asm/param.h> /* HZ */ -#include <asm/page.h> /* PAGE_SIZE */ #define NO_TTY_VALUE DEV_ENCODE(0,0) #ifndef HZ #warning HZ not defined, assuming it is 100 @@ -68,8 +67,15 @@ /////////////////////////////////////////////////////////// #ifndef PAGE_SIZE -#warning PAGE_SIZE not defined, assuming it is 4096 -#define PAGE_SIZE 4096 +#if defined(__linux__) +#include <asm/page.h> /* looks safe for glibc */ +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +#include <machine/param.h> +#elif defined(_SC_PAGE_SIZE) +#define PAGE_SIZE sysconf (_SC_PAGE_SIZE) +#else +#error +#endif #endif diff -ur procps-3.2.4.old/proc/version.c procps-3.2.4/proc/version.c --- procps-3.2.4.old/proc/version.c 2003-01-29 02:11:43.000000000 +0100 +++ procps-3.2.4/proc/version.c 2005-01-30 02:12:08.000000000 +0100 @@ -27,7 +27,6 @@ /* Linux kernel version information for procps utilities * Copyright (c) 1996 Charles Blake <[EMAIL PROTECTED]> */ -#include <sys/utsname.h> #define LINUX_VERSION(x,y,z) (0x10000*(x) + 0x100*(y) + z) @@ -35,15 +34,16 @@ static void init_Linux_version(void) __attribute__((constructor)); static void init_Linux_version(void) { - static struct utsname uts; + FILE *fp; int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */ - if (uname(&uts) == -1) /* failure implies impending death */ + fp = fopen ("/proc/version", "r"); + if (fp == NULL) /* failure implies impending death */ exit(1); - if (sscanf(uts.release, "%d.%d.%d", &x, &y, &z) < 3) + if (fscanf(fp, "Linux version %d.%d.%d", &x, &y, &z) < 3) fprintf(stderr, /* *very* unlikely to happen by accident */ "Non-standard uts for running kernel:\n" - "release %s=%d.%d.%d gives version code %d\n", - uts.release, x, y, z, LINUX_VERSION(x,y,z)); + "release %d.%d.%d gives version code %d\n", + x, y, z, LINUX_VERSION(x,y,z)); linux_version_code = LINUX_VERSION(x, y, z); }