[hurd,commited,1/3] hurd: Fix building libio/tst-memstream3.c
Commit Message
FWRITE is already an fcntl.h macro.
* libio/tst-memstream3.c (FWRITE): Rename to _FWRITE.
(do_test_bz20181): Rename accordingly.
* libio/tst-wmemstream3.c (FWRITE): Rename accordingly.
---
ChangeLog | 3 +++
libio/tst-memstream3.c | 10 +++++-----
libio/tst-wmemstream3.c | 2 +-
3 files changed, 9 insertions(+), 6 deletions(-)
Comments
On Sun, 28 Jan 2018, Samuel Thibault wrote:
> FWRITE is already an fcntl.h macro.
>
> * libio/tst-memstream3.c (FWRITE): Rename to _FWRITE.
> (do_test_bz20181): Rename accordingly.
> * libio/tst-wmemstream3.c (FWRITE): Rename accordingly.
I think we should leave the testcase using FWRITE (and certainly not make
tests use reserved-namespace names with leading '_' if it can be avoided),
and instead remove the FREAD and FWRITE macros from the generic and Hurd
bits/fcntl.h.
(There's a case for removing all the F* aliases for O_* from all
bits/fcntl.h variants, as one of many likely obsolete __USE_MISC APIs, but
that would need more investigation of how widely used they might be.
Removal of names that only appear in the Hurd-specific and (currently
unused) generic headers is pretty safe, however.)
Joseph Myers, on lun. 29 janv. 2018 16:33:40 +0000, wrote:
> and instead remove the FREAD and FWRITE macros from the generic and Hurd
> bits/fcntl.h.
What do we do of sysdeps/unix/bsd/tcflush.c's use of FREAD and FWRITE
then?
Samuel
On Mon, 29 Jan 2018, Samuel Thibault wrote:
> Joseph Myers, on lun. 29 janv. 2018 16:33:40 +0000, wrote:
> > and instead remove the FREAD and FWRITE macros from the generic and Hurd
> > bits/fcntl.h.
>
> What do we do of sysdeps/unix/bsd/tcflush.c's use of FREAD and FWRITE
> then?
I would have said change it to use O_RDONLY and O_WRONLY of which FREAD
and FWRITE are aliases, but in the generic header they aren't aliases.
The comments in both bits/fcntl.h headers, referring to those names as
being for bits returned by F_GETFL, are clearly wrong - F_GETFL returns
the O_* bits, not some possibly rewritten bits. So maybe those macros
should stay, but with the comments in both places changed to say they are
flags for TIOCFLUSH (e.g. FreeBSD's fcntl.h has a comment referring to
TIOCFLUSH above the definition of those macros). And then use a name such
as FWRITE_FUNC in the tests, since they still shouldn't be using
implementation-namespace _FWRITE.
@@ -53,6 +53,9 @@
* sysdeps/mach/hurd/check_pf.c: New file.
* sysdeps/mach/hurd/libhurduser.abilist: New file.
* sysdeps/mach/libmachuser.abilist: New file.
+ * libio/tst-memstream3.c (FWRITE): Rename to _FWRITE.
+ (do_test_bz20181): Rename accordingly.
+ * libio/tst-wmemstream3.c (FWRITE): Rename accordingly.
2008-12-18 Thomas Schwinge <tschwinge@gnu.org>
@@ -29,7 +29,7 @@
# define W(o) o
# define OPEN_MEMSTREAM open_memstream
# define PRINTF printf
-# define FWRITE fwrite
+# define _FWRITE fwrite
# define FPUTC fputc
# define STRCMP strcmp
#endif
@@ -114,14 +114,14 @@ do_test_bz20181 (void)
if (fp == NULL)
ERROR_RET1 ("%s failed\n", S(OPEN_MEMSTREAM));
- if ((ret = FWRITE (W("abc"), 1, 3, fp)) != 3)
- ERROR_RET1 ("%s failed (errno = %d)\n", S(FWRITE), errno);
+ if ((ret = _FWRITE (W("abc"), 1, 3, fp)) != 3)
+ ERROR_RET1 ("%s failed (errno = %d)\n", S(_FWRITE), errno);
if (fseek (fp, 0, SEEK_SET) != 0)
ERROR_RET1 ("fseek failed (errno = %d)\n", errno);
- if (FWRITE (W("z"), 1, 1, fp) != 1)
- ERROR_RET1 ("%s failed (errno = %d)\n", S(FWRITE), errno);
+ if (_FWRITE (W("z"), 1, 1, fp) != 1)
+ ERROR_RET1 ("%s failed (errno = %d)\n", S(_FWRITE), errno);
if (fflush (fp) != 0)
ERROR_RET1 ("fflush failed (errno = %d)\n", errno);
@@ -37,7 +37,7 @@ fwwrite (const void *ptr, size_t size, size_t nmemb, FILE *arq)
#define W(o) L##o
#define OPEN_MEMSTREAM open_wmemstream
#define PRINTF wprintf
-#define FWRITE fwwrite
+#define _FWRITE fwwrite
#define FPUTC fputwc
#define STRCMP wcscmp