patches/linux/2.6.8/kaz-types.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun May 20 13:48:26 2007 +0000 (2007-05-20)
changeset 112 ea15433daba0
permissions -rw-r--r--
Ah! I finally have a progress bar that doesn't stall the build!
- pipe size in Linux is only 8*512=4096 bytes
- pipe size is not setable
- when the feeding process spits out data faster than the eating
process can read it, then the feeding process stalls after 4KiB
of data sent to the pipe
- for us, the progress bar would spawn a sub-shell every line,
and the sub-shell would in turn spawn a 'date' command.
Which was sloooww as hell, and would cause some kind of a
starvation: the pipe was full most of the time, and the
feeding process was stalled all this time.

Now, we use internal variables and a little hack based onan offset
to determine the elapsed time. Much faster this way, but still
CPU-intensive.
     1 The following fixes an error that occurs when building glibc-2.3.2 (but not glibc-2.2.5) for sh4:
     2 
     3 In file included from sys/ustat.h:30,
     4                  from ../sysdeps/unix/sysv/linux/ustat.c:21:
     5 ../sysdeps/generic/bits/ustat.h:26: error: redefinition of `struct ustat'
     6 make[2]: *** [/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/misc/ustat.o] Error 1
     7 make[2]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2/misc'
     8 make[1]: *** [misc/subdir_lib] Error 2
     9 make[1]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2'
    10 make: *** [all] Error 2
    11 
    12 ----------- snip ---------------
    13 
    14 Date: Fri, 06 Jun 2003 08:00:00 +0900
    15 From: kaz Kojima <kkojima@rr.iij4u.or.jp>
    16 Subject: [linux-sh:02770] Re: Compiling glibc-2.3.2 for sh4 fails with "include/asm/user.h:32:
    17  error: redefinition of `struct user_fpu_struct'"
    18 To: linux-sh@m17n.org
    19 Message-Id: <200306052250.h55Moeb08707@r-rr.iij4u.or.jp>
    20 
    21 Hi,
    22 
    23 Dan Kegel <dank@kegel.com> wrote:
    24 > When I try to build glibc-2.3.2 for sh4, it fails with the error
    25 [snip]
    26 > /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:32: error: redefinition of `struct user_fpu_struct'
    27 > /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:39: error: redefinition of `struct user'
    28 [snip]
    29 > The error reminds me of the kind of thing fixed by
    30 > http://www.kegel.com/crossgcc/crosstool-0.4/glibc-2.3.2-patches/sh-user.patch
    31 
    32 It seems that the definitions in asm/user.h and the above patch collide.
    33 I'm not sure why you need this patch, but is it needed for the problem
    34 about struct ustat that you pointed out in this list, isn't it?
    35 I found why I don't hit ustat problem - my local kernel tree includes
    36 the following patch, though I can't recall about it.
    37 
    38 Regards,
    39 	kaz
    40 --
    41 diff -u linux-2.5.69-sf-orig/include/linux/types.h /usr/local/sh4-unknown-linux-gnu/include/linux/types.h
    42 --- linux-2.5.69-sf-orig/include/linux/types.h	Wed Mar  5 12:29:34 2003
    43 +++ sh4-unknown-linux-gnu/include/linux/types.h	Sat Apr 19 10:05:52 2003
    44 @@ -141,6 +141,7 @@
    45  
    46  #endif /* __KERNEL_STRICT_NAMES */
    47  
    48 +#ifdef	__KERNEL__
    49  /*
    50   * Below are truly Linux-specific types that should never collide with
    51   * any application/library that wants linux/types.h.
    52 @@ -152,5 +153,6 @@
    53  	char			f_fname[6];
    54  	char			f_fpack[6];
    55  };
    56 +#endif
    57  
    58  #endif /* _LINUX_TYPES_H */
    59 
    60