bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Minix support, part 5


From: Thomas Cort
Subject: Re: Minix support, part 5
Date: Sun, 31 Jul 2011 19:16:49 -0400

A lot of the FILE related stuff changed in Minix 3.2.0 with the import
of our new NetBSD based libc and NetBSD based includes. It might be
more beneficial to target Minix 3.2.0 which will be released as stable
in a few months. By the time the gnulib changes get integrated into
third party software, released, added to pkgsrc, and imported into our
pkgsrc tree, Minix 3.2.0 will probably be stable.

-Thomas

On Sun, Jul 31, 2011 at 3:17 PM, Bruno Haible <address@hidden> wrote:
> There are some compilation errors also in the stdioext modules:
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> fbufmode.o -MD -MP -MF .deps/fbufmode.Tpo -c -o fbufmode.o fbufmode.c
> fbufmode.c: In function 'fbufmode':
> fbufmode.c:58: error: 'FILE' has no member named '_flag'
> fbufmode.c:61: error: 'FILE' has no member named '_flag'
> *** Error code 1 (continuing)
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> freadahead.o -MD -MP -MF .deps/freadahead.Tpo -c -o freadahead.o freadahead.c
> freadahead.c: In function 'freadahead':
> freadahead.c:52: error: 'FILE' has no member named '_flag'
> freadahead.c:52: error: '_IOWRT' undeclared (first use in this function)
> freadahead.c:52: error: (Each undeclared identifier is reported only once
> freadahead.c:52: error: for each function it appears in.)
> freadahead.c:54: error: 'FILE' has no member named '_cnt'
> *** Error code 1 (continuing)
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> freading.o -MD -MP -MF .deps/freading.Tpo -c -o freading.o freading.c
> freading.c: In function 'freading':
> freading.c:46: error: 'FILE' has no member named '_flag'
> *** Error code 1 (continuing)
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> freadptr.o -MD -MP -MF .deps/freadptr.Tpo -c -o freadptr.o freadptr.c
> freadptr.c: In function 'freadptr':
> freadptr.c:60: error: 'FILE' has no member named '_flag'
> freadptr.c:60: error: '_IOWRT' undeclared (first use in this function)
> freadptr.c:60: error: (Each undeclared identifier is reported only once
> freadptr.c:60: error: for each function it appears in.)
> freadptr.c:62: error: 'FILE' has no member named '_cnt'
> *** Error code 1 (continuing)
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> freadseek.o -MD -MP -MF .deps/freadseek.Tpo -c -o freadseek.o freadseek.c
> freadseek.c: In function 'freadptrinc':
> freadseek.c:47: error: 'FILE' has no member named '_cnt'
> *** Error code 1 (continuing)
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> fseterr.o -MD -MP -MF .deps/fseterr.Tpo -c -o fseterr.o fseterr.c
> fseterr.c: In function 'fseterr':
> fseterr.c:39: error: 'FILE' has no member named '_flag'
> *** Error code 1 (continuing)
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> fpurge.o -MD -MP -MF .deps/fpurge.Tpo -c -o fpurge.o fpurge.c
> fpurge.c: In function 'fpurge':
> fpurge.c:95: error: 'FILE' has no member named '_base'
> fpurge.c:97: error: 'FILE' has no member named '_cnt'
> *** Error code 1 (continuing)
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> freadable.o -MD -MP -MF .deps/freadable.Tpo -c -o freadable.o freadable.c
> freadable.c: In function 'freadable':
> freadable.c:37: error: 'FILE' has no member named '_flag'
> freadable.c:37: error: '_IORW' undeclared (first use in this function)
> freadable.c:37: error: (Each undeclared identifier is reported only once
> freadable.c:37: error: for each function it appears in.)
> *** Error code 1 (continuing)
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> fwritable.o -MD -MP -MF .deps/fwritable.Tpo -c -o fwritable.o fwritable.c
> fwritable.c: In function 'fwritable':
> fwritable.c:37: error: 'FILE' has no member named '_flag'
> fwritable.c:37: error: '_IORW' undeclared (first use in this function)
> fwritable.c:37: error: (Each undeclared identifier is reported only once
> fwritable.c:37: error: for each function it appears in.)
> fwritable.c:37: error: '_IOWRT' undeclared (first use in this function)
> *** Error code 1 (continuing)
>
> gcc -DHAVE_CONFIG_H -I. -I..  -DGNULIB_STRICT_CHECKING=1  -Wall  -g -O2 -MT 
> fwriting.o -MD -MP -MF .deps/fwriting.Tpo -c -o fwriting.o fwriting.c
> fwriting.c: In function 'fwriting':
> fwriting.c:37: error: 'FILE' has no member named '_flag'
> fwriting.c:37: error: '_IOWRT' undeclared (first use in this function)
> fwriting.c:37: error: (Each undeclared identifier is reported only once
> fwriting.c:37: error: for each function it appears in.)
> *** Error code 1 (continuing)
>
> This fixes it; all stdioext tests pass.
>
>
> 2011-07-31  Bruno Haible  <address@hidden>
>
>        stdioext: Add support for Minix.
>        * lib/fbufmode.c (fbufmode) [__minix]: Add conditional code.
>        * lib/fpurge.c (fpurge): Likewise.
>        * lib/freadahead.c (freadahead): Likewise.
>        * lib/freadable.c (freadable): Likewise.
>        * lib/freading.c (freading): Likewise.
>        * lib/freadptr.c (freadptr): Likewise.
>        * lib/freadseek.c (freadptrinc): Likewise.
>        * lib/fseeko.c (rpl_fseeko): Likewise.
>        * lib/fseterr.c (fseterr): Likewise.
>        * lib/fwritable.c (fwritable): Likewise.
>        * lib/fwriting.c (fwriting): Likewise.
>        * lib/fflush.c (clear_ungetc_buffer): Update comment.
>        * m4/fpending.m4 (gl_PREREQ_FPENDING): Add a variant for Minix.
>
> --- lib/fbufmode.c.orig Sun Jul 31 21:10:11 2011
> +++ lib/fbufmode.c      Sun Jul 31 19:36:43 2011
> @@ -50,6 +50,8 @@
>   return _IOFBF;
>  #elif defined __EMX__               /* emx+gcc */
>   return fp->_flags & (_IOLBF | _IONBF | _IOFBF);
> +#elif defined __minix               /* Minix */
> +  return fp->_flags & (_IOLBF | _IONBF | _IOFBF);
>  #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>  # if HAVE___FLBF                    /* Solaris >= 7 */
>   if (__flbf (fp))
> --- lib/fflush.c.orig   Sun Jul 31 21:10:11 2011
> +++ lib/fflush.c        Sun Jul 31 21:08:54 2011
> @@ -60,7 +60,7 @@
>       fp->_ungetc_count = 0;
>       fp->_rcount = - fp->_rcount;
>     }
> -# elif defined _IOERR               /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
> +# elif defined _IOERR               /* Minix, AIX, HP-UX, IRIX, OSF/1, 
> Solaris, OpenServer, mingw, NonStop Kernel */
>   /* Nothing to do.  */
>  # else                              /* other implementations */
>   fseeko (fp, 0, SEEK_CUR);
> --- lib/fpurge.c.orig   Sun Jul 31 21:10:11 2011
> +++ lib/fpurge.c        Sun Jul 31 20:56:31 2011
> @@ -91,6 +91,11 @@
>   fp->_wcount = 0;
>   fp->_ungetc_count = 0;
>   return 0;
> +# elif defined __minix              /* Minix */
> +  fp->_ptr = fp->_buf;
> +  if (fp->_ptr != NULL)
> +    fp->_count = 0;
> +  return 0;
>  # elif defined _IOERR               /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>   fp->_ptr = fp->_base;
>   if (fp->_ptr != NULL)
> --- lib/freadable.c.orig        Sun Jul 31 21:10:11 2011
> +++ lib/freadable.c     Sun Jul 31 20:12:43 2011
> @@ -33,6 +33,8 @@
>   return (fp_->_flags & (__SRW | __SRD)) != 0;
>  #elif defined __EMX__               /* emx+gcc */
>   return (fp->_flags & (_IORW | _IOREAD)) != 0;
> +#elif defined __minix               /* Minix */
> +  return (fp->_flags & _IOREAD) != 0;
>  #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>   return (fp->_flag & (_IORW | _IOREAD)) != 0;
>  #elif defined __QNX__               /* QNX */
> --- lib/freadahead.c.orig       Sun Jul 31 21:10:11 2011
> +++ lib/freadahead.c    Sun Jul 31 21:05:34 2011
> @@ -48,6 +48,10 @@
>   /* equivalent to
>      (fp->_ungetc_count == 0 ? fp->_rcount : fp->_ungetc_count - fp->_rcount) 
> */
>   return (fp->_rcount > 0 ? fp->_rcount : fp->_ungetc_count - fp->_rcount);
> +#elif defined __minix               /* Minix */
> +  if ((fp_->_flags & _IOWRITING) != 0)
> +    return 0;
> +  return fp_->_count;
>  #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>   if ((fp_->_flag & _IOWRT) != 0)
>     return 0;
> --- lib/freading.c.orig Sun Jul 31 21:10:11 2011
> +++ lib/freading.c      Sun Jul 31 20:13:24 2011
> @@ -39,6 +39,8 @@
>   return (fp_->_flags & __SRD) != 0;
>  # elif defined __EMX__               /* emx+gcc */
>   return (fp->_flags & _IOREAD) != 0;
> +# elif defined __minix               /* Minix */
> +  return (fp->_flags & _IOREADING) != 0;
>  # elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>  #  if defined __sun                  /* Solaris */
>   return (fp->_flag & _IOREAD) != 0 && (fp->_flag & _IOWRT) == 0;
> --- lib/freadptr.c.orig Sun Jul 31 21:10:11 2011
> +++ lib/freadptr.c      Sun Jul 31 21:06:28 2011
> @@ -56,6 +56,14 @@
>     abort ();
>   *sizep = fp->_rcount;
>   return fp->_ptr;
> +#elif defined __minix               /* Minix */
> +  if ((fp_->_flags & _IOWRITING) != 0)
> +    return NULL;
> +  size = fp_->_count;
> +  if (size == 0)
> +    return NULL;
> +  *sizep = size;
> +  return (const char *) fp_->_ptr;
>  #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>   if ((fp_->_flag & _IOWRT) != 0)
>     return NULL;
> --- lib/freadseek.c.orig        Sun Jul 31 21:10:11 2011
> +++ lib/freadseek.c     Sun Jul 31 20:15:26 2011
> @@ -42,6 +42,9 @@
>  #elif defined __EMX__               /* emx+gcc */
>   fp->_ptr += increment;
>   fp->_rcount -= increment;
> +#elif defined __minix               /* Minix */
> +  fp_->_ptr += increment;
> +  fp_->_count -= increment;
>  #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>   fp_->_ptr += increment;
>   fp_->_cnt -= increment;
> --- lib/fseeko.c.orig   Sun Jul 31 21:10:11 2011
> +++ lib/fseeko.c        Sun Jul 31 20:58:41 2011
> @@ -69,6 +69,9 @@
>       && fp->_rcount == 0
>       && fp->_wcount == 0
>       && fp->_ungetc_count == 0)
> +#elif defined __minix               /* Minix */
> +  if (fp_->_ptr == fp_->_buf
> +      && (fp_->_ptr == NULL || fp_->_count == 0))
>  #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>   if (fp_->_ptr == fp_->_base
>       && (fp_->_ptr == NULL || fp_->_cnt == 0))
> --- lib/fseterr.c.orig  Sun Jul 31 21:10:11 2011
> +++ lib/fseterr.c       Sun Jul 31 19:44:06 2011
> @@ -35,6 +35,8 @@
>   fp_->_flags |= __SERR;
>  #elif defined __EMX__               /* emx+gcc */
>   fp->_flags |= _IOERR;
> +#elif defined __minix               /* Minix */
> +  fp->_flags |= _IOERR;
>  #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>   fp_->_flag |= _IOERR;
>  #elif defined __UCLIBC__            /* uClibc */
> --- lib/fwritable.c.orig        Sun Jul 31 21:10:11 2011
> +++ lib/fwritable.c     Sun Jul 31 20:12:59 2011
> @@ -33,6 +33,8 @@
>   return (fp_->_flags & (__SRW | __SWR)) != 0;
>  #elif defined __EMX__               /* emx+gcc */
>   return (fp->_flags & (_IORW | _IOWRT)) != 0;
> +#elif defined __minix               /* Minix */
> +  return (fp->_flags & _IOWRITE) != 0;
>  #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>   return (fp->_flag & (_IORW | _IOWRT)) != 0;
>  #elif defined __QNX__               /* QNX */
> --- lib/fwriting.c.orig Sun Jul 31 21:10:11 2011
> +++ lib/fwriting.c      Sun Jul 31 20:13:44 2011
> @@ -33,6 +33,8 @@
>   return (fp_->_flags & __SWR) != 0;
>  #elif defined __EMX__               /* emx+gcc */
>   return (fp->_flags & _IOWRT) != 0;
> +#elif defined __minix               /* Minix */
> +  return (fp->_flags & _IOWRITING) != 0;
>  #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, 
> OpenServer, mingw, NonStop Kernel */
>   return (fp->_flag & _IOWRT) != 0;
>  #elif defined __UCLIBC__            /* uClibc */
> --- m4/fpending.m4.orig Sun Jul 31 21:10:11 2011
> +++ m4/fpending.m4      Sun Jul 31 21:00:07 2011
> @@ -1,4 +1,4 @@
> -# serial 16
> +# serial 17
>
>  # Copyright (C) 2000-2001, 2004-2011 Free Software Foundation, Inc.
>  # This file is free software; the Free Software Foundation
> @@ -58,6 +58,9 @@
>           '# emx+gcc'                                                   \
>           'fp->_ptr - fp->_buffer'                                      \
>                                                                         \
> +          '# Minix'                                                     \
> +          'fp->_ptr - fp->_buf'                                         \
> +                                                                        \
>           '# VMS'                                                       \
>           '(*fp)->_ptr - (*fp)->_base'                                  \
>                                                                         \
> --
> In memoriam Jean Jaurès <http://en.wikipedia.org/wiki/Jean_Jaurès>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]