ldlex should use streams
H . J . Lu
hjl@lucon.org
Sun Jan 20 14:43:00 GMT 2002
On Sun, Jan 20, 2002 at 08:28:07AM +0100, Andreas Jaeger wrote:
>
> We currently have a discussion on the glibc lists that you cannot just
> do fopen a file and then read on it, the file pointer need not be at
> the beginning of the file (it seems to be in all current
> implementations but you never know).
>
> Therefore I propose the following simple patch to avoid this
> situation, I don't see a reason for read in that place.
>
> Ok to commit? I run make check sucessfully.
>
> Andreas
>
> 2002-01-20 Andreas Jaeger <aj@suse.de>
>
> * ldlex.l: Use fread instead of read.
>
> ============================================================
> Index: ld/ldlex.l
> --- ld/ldlex.l 2001/10/20 13:49:00 1.8
> +++ ld/ldlex.l 2002/01/20 07:27:37
> @@ -1,7 +1,7 @@
> %{
>
> -/* Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
> - Free Software Foundation, Inc.
> +/* Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
> + 2000, 2001, 2002 Free Software Foundation, Inc.
>
> This file is part of GLD, the Gnu Linker.
>
> @@ -595,7 +595,7 @@
> {
> if (yyin)
> {
> - *result = read (fileno (yyin), (char *) buf, max_size);
> + *result = fread ((char *) buf, 1, max_size, yyin);
> if (*result < 0)
> einfo ("%F%P: read in flex scanner failed\n");
> }
>
Personally, I think it is a bad idea to mix stdio with read/write.
fread should be used regardless what glibc is doing.
H.J.
More information about the Binutils
mailing list