patches/glibc/ports-2.10.1/500-alpha-add-getsystats-support.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 12 23:38:18 2010 +0200 (2010-09-12)
changeset 2120 48de021b3a9e
permissions -rw-r--r--
arch/mips: add experimental mips64 samples

Both toolchains were tested to successfully:
- _build_ busybox, giving respectively an n32 and an n64 binary
although it has not been run-tested.
- build linux-2.6.36-rc3 for Loongson, giving an n64 vmlinux
(which is expected, due to the way the kernel is built),
and the kernel properly boots!

Credits are due to Julien MOUTHINO (julm on freenode#uClibc) for
testing that the kernel boots on his hardware! Cheers! ;-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@1625
     1
2009-05-16  Aurelien Jarno  <aurelien@aurel32.net>
yann@1625
     2
yann@1625
     3
        * sysdeps/unix/sysv/linux/alpha/getsysstats.c (GET_NPROCS_PARSER):
yann@1625
     4
        Change parameters and use next_line.
yann@1625
     5
yann@1625
     6
 ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c |    5 +++--
yann@1625
     7
 1 file changed, 3 insertions(+), 2 deletions(-)
yann@1625
     8
yann@1625
     9
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/alpha/getsysstats.c glibc-2.10.1/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/alpha/getsysstats.c
yann@1625
    10
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/alpha/getsysstats.c	2009-05-16 10:36:20.000000000 +0200
yann@1625
    11
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/unix/sysv/linux/alpha/getsysstats.c	2009-11-13 00:51:07.000000000 +0100
yann@1625
    12
@@ -20,15 +20,16 @@
yann@1625
    13
 
yann@1625
    14
 
yann@1625
    15
 /* We need to define a special parser for /proc/cpuinfo.  */
yann@1625
    16
-#define GET_NPROCS_PARSER(FP, BUFFER, RESULT)				   \
yann@1625
    17
+#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT)	   \
yann@1625
    18
   do									   \
yann@1625
    19
     {									   \
yann@1625
    20
       /* Find the line that contains the information about the number of   \
yann@1625
    21
 	 active cpus.  We don't have to fear extremely long lines since	   \
yann@1625
    22
 	 the kernel will not generate them.  8192 bytes are really enough. \
yann@1625
    23
 	 If there is no "CPUs ..." line then we are on a UP system.  */	   \
yann@1625
    24
+      char *l;								   \
yann@1625
    25
       (RESULT) = 1;							   \
yann@1625
    26
-      while (fgets_unlocked (BUFFER, sizeof (BUFFER), FP) != NULL)	   \
yann@1625
    27
+      while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL)  \
yann@1625
    28
 	if ((sscanf (BUFFER, "cpus active : %d", &(RESULT)) == 1)	   \
yann@1625
    29
 	    || (sscanf (BUFFER, "CPUs probed %*d active %d",		   \
yann@1625
    30
 			&(RESULT)) == 1))  				   \
yann@1625
    31
diff -durN glibc-2.10.1.orig/ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c glibc-2.10.1/ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c