Mail Archives: djgpp-workers/2002/02/11/16:06:44
Hello.
pavenis AT lanet DOT lv wrote:
> Tried to compile DJGPP today's CVS version with GCC-3.1 20020210.
> To get it to compile applied included patches.
>
> 1) internal representation of __builtin_va_list changed to char *, as result
> many breakages. Mostly added some ugly type casts
>
> 2) warning were generated about snprintf with empty format.
>
> Perhaps changes which only requires using va_list of something more ugly
> but not explicit casts from (or to) va_list can be applied. I don't know
> about other ones though
These look OK to me, apart from a couple of things. See my comments inline
below.
[snip]
> diff -ur3 djgpp.orig/src/libc/ansi/stdio/fscanf.c
> djgpp/src/libc/ansi/stdio/fscanf.c
> --- djgpp.orig/src/libc/ansi/stdio/fscanf.c Mon Dec 26 22:34:48 1994
> +++ djgpp/src/libc/ansi/stdio/fscanf.c Mon Feb 11 17:49:18 2002
> @@ -9,7 +9,7 @@
> int r;
> va_list a=0;
> va_start(a, fmt);
I don't think that 'a' needs initialising in its definition.
> - r = _doscan(f, fmt, a);
> + r = _doscan(f, fmt, (void **) a);
Yuck. Wouldn't it be better to modify _doscan to work on a va_list too?
> va_end(a);
> return r;
> }
[snip]
> diff -ur3 djgpp.orig/src/libc/ansi/stdio/scanf.c
> djgpp/src/libc/ansi/stdio/scanf.c
> --- djgpp.orig/src/libc/ansi/stdio/scanf.c Mon Dec 26 22:34:54 1994
> +++ djgpp/src/libc/ansi/stdio/scanf.c Mon Feb 11 17:49:38 2002
> @@ -9,7 +9,7 @@
> int r;
> va_list a=0;
> va_start(a, fmt);
> - r = _doscan(stdin, fmt, a);
> + r = _doscan(stdin, fmt, (void **) a);
> va_end(a);
> return r;
> }
See the comments for fscanf.c.
[snip]
> diff -ur3 djgpp.orig/src/libc/posix/unistd/confstr.c
> djgpp/src/libc/posix/unistd/confstr.c
> --- djgpp.orig/src/libc/posix/unistd/confstr.c Wed Jun 20 02:00:46 2001
> +++ djgpp/src/libc/posix/unistd/confstr.c Mon Feb 11 18:17:28 2002
> @@ -43,7 +43,9 @@
> case _CS_POSIX_V6_ILP32_OFF32_LDFLAGS:
> case _CS_POSIX_V6_ILP32_OFF32_LIBS:
> {
> - out_len = snprintf(buf, len, "");
> +/* out_len = snprintf(buf, len, ""); */
> + if (len>0) *buf=0;
> + out_len=0;
> ++out_len;
> break;
> }
Why not just set out_len to 1? Also, presumably the comment will be removed
too?
[snip]
Bye, Rich =]
--
Richard Dawe [ http://www.phekda.freeserve.co.uk/richdawe/ ]
- Raw text -