Hi!

The attached patch enables us to restore the -Werror bit of
the WARNS feature by fixing relevant headers and adding one
new header, complex.h, aligned with the POSIX.1-200x draft.

I did not fix the CSRG's libm (-DWANT_CSRG_LIBM) because it
does not compile with the current sources for the reason of
missing library functions.

Also, the -traditional-cpp bit in games/adventure/Makefile
correlares badly with -nostdinc and WARNS=2.

Please review (tested).


Cheers,
-- 
Ruslan Ermilov          Oracle Developer/DBA,
[EMAIL PROTECTED]           Sunbay Software AG,
[EMAIL PROTECTED]          FreeBSD committer,
+380.652.512.251        Simferopol, Ukraine

http://www.FreeBSD.org  The Power To Serve
http://www.oracle.com   Enabling The Information Age
Index: Makefile.inc1
===================================================================
RCS file: /home/ncvs/src/Makefile.inc1,v
retrieving revision 1.203
diff -u -p -r1.203 Makefile.inc1
--- Makefile.inc1       2001/06/11 18:09:08     1.203
+++ Makefile.inc1       2001/06/12 12:39:19
@@ -200,7 +200,7 @@ WMAKEENV=   ${CROSSENV} \
                DESTDIR=${WORLDTMP} \
                INSTALL="sh ${.CURDIR}/tools/install.sh" \
                PATH=${TMPPATH}
-WMAKE=         ${WMAKEENV} ${MAKE} -f Makefile.inc1 -DNO_WERROR
+WMAKE=         ${WMAKEENV} ${MAKE} -f Makefile.inc1
 
 # install stage
 IMAKEENV=      ${CROSSENV} \
Index: games/adventure/Makefile
===================================================================
RCS file: /home/ncvs/src/games/adventure/Makefile,v
retrieving revision 1.10
diff -u -p -r1.10 Makefile
--- games/adventure/Makefile    2001/05/20 05:37:46     1.10
+++ games/adventure/Makefile    2001/06/12 12:39:19
@@ -4,7 +4,6 @@
 PROG=  adventure
 SRCS=  main.c init.c done.c save.c subr.c vocab.c wizard.c io.c data.c crc.c
 MAN=   adventure.6
-CFLAGS+=-traditional-cpp
 HIDEGAME=hidegame
 CLEANFILES=data.c setup setup.o
 
Index: include/Makefile
===================================================================
RCS file: /home/ncvs/src/include/Makefile,v
retrieving revision 1.146
diff -u -p -r1.146 Makefile
--- include/Makefile    2001/06/07 05:04:53     1.146
+++ include/Makefile    2001/06/12 12:39:19
@@ -8,7 +8,8 @@
 
 CLEANFILES= osreldate.h version vers.c
 SUBDIR= rpcsvc rpc
-FILES= a.out.h ar.h assert.h bitstring.h ctype.h db.h dirent.h disktab.h \
+FILES= a.out.h ar.h assert.h bitstring.h complex.h ctype.h db.h \
+       dirent.h disktab.h \
        dlfcn.h elf.h elf-hints.h err.h fnmatch.h fstab.h \
        fts.h glob.h grp.h strhash.h \
        hesiod.h histedit.h ieeefp.h ifaddrs.h iso646.h langinfo.h \
Index: include/complex.h
===================================================================
RCS file: complex.h
diff -N complex.h
--- /dev/null   Tue Jun 12 03:18:33 2001
+++ complex.h   Tue Jun 12 15:39:19 2001
@@ -0,0 +1,60 @@
+/*-
+ * Copyright (c) 2001 The FreeBSD Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _COMPLEX_H
+#define _COMPLEX_H
+
+#ifdef __GNUC__
+#define _Complex       __complex__
+#define _Complex_I     1.0fi
+#endif
+
+#define complex                _Complex
+#define I              _Complex_I
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+double cabs __P((double complex));
+float  cabsf __P((float complex));
+double cimag __P((double complex));
+float  cimagf __P((float complex));
+double creal __P((double complex));
+float  crealf __P((float complex));
+
+__END_DECLS
+
+#ifdef __GNUC__
+#define cimag(z)       (__imag__ (z))
+#define cimagf(z)      (__imag__ (z))
+#define creal(z)       (__real__ (z))
+#define crealf(z)      (__real__ (z))
+#endif
+
+#endif /* _COMPLEX_H */
Index: include/fts.h
===================================================================
RCS file: /home/ncvs/src/include/fts.h,v
retrieving revision 1.3
diff -u -p -r1.3 fts.h
--- include/fts.h       1997/05/07 19:59:58     1.3
+++ include/fts.h       2001/06/12 12:39:19
@@ -45,7 +45,8 @@ typedef struct {
        int fts_rfd;                    /* fd for root */
        int fts_pathlen;                /* sizeof(path) */
        int fts_nitems;                 /* elements in the sort array */
-       int (*fts_compar)();            /* compare function */
+       int (*fts_compar)               /* compare function */
+           __P((const struct _ftsent **, const struct _ftsent **));
 
 #define        FTS_COMFOLLOW   0x001           /* follow command line symlinks */
 #define        FTS_LOGICAL     0x002           /* logical walk */
Index: lib/libc/gen/fts.c
===================================================================
RCS file: /home/ncvs/src/lib/libc/gen/fts.c,v
retrieving revision 1.18
diff -u -p -r1.18 fts.c
--- lib/libc/gen/fts.c  2001/06/01 21:53:50     1.18
+++ lib/libc/gen/fts.c  2001/06/12 12:39:20
@@ -936,7 +936,8 @@ fts_sort(sp, head, nitems)
        }
        for (ap = sp->fts_array, p = head; p; p = p->fts_link)
                *ap++ = p;
-       qsort((void *)sp->fts_array, nitems, sizeof(FTSENT *), sp->fts_compar);
+       qsort((void *)sp->fts_array, nitems, sizeof(FTSENT *),
+           (int (*) __P((const void *, const void *)))sp->fts_compar);
        for (head = *(ap = sp->fts_array); --nitems; ++ap)
                ap[0]->fts_link = ap[1];
        ap[0]->fts_link = NULL;
Index: lib/msun/src/math.h
===================================================================
RCS file: /home/ncvs/src/lib/msun/src/math.h,v
retrieving revision 1.9
diff -u -p -r1.9 math.h
--- lib/msun/src/math.h 2000/03/27 02:04:45     1.9
+++ lib/msun/src/math.h 2001/06/12 12:39:20
@@ -174,7 +174,6 @@ extern double scalbn __P((double, int));
 /*
  * BSD math library entry points
  */
-extern double cabs();
 extern double drem __P((double, double));
 extern double expm1 __P((double));
 extern double log1p __P((double));
@@ -257,7 +256,6 @@ extern float scalbnf __P((float, int));
 /*
  * float versions of BSD math library entry points
  */
-extern float cabsf ();
 extern float dremf __P((float, float));
 extern float expm1f __P((float));
 extern float log1pf __P((float));
Index: lib/msun/src/w_cabs.c
===================================================================
RCS file: /home/ncvs/src/lib/msun/src/w_cabs.c,v
retrieving revision 1.3
diff -u -p -r1.3 w_cabs.c
--- lib/msun/src/w_cabs.c       1995/05/30 05:50:47     1.3
+++ lib/msun/src/w_cabs.c       2001/06/12 12:39:20
@@ -5,23 +5,24 @@
  * Placed into the Public Domain, 1994.
  */
 
-#include <math.h>
+#ifndef lint
+static const char rcsid[] =
+  "$FreeBSD$";
+#endif /* not lint */
 
-struct complex {
-       double x;
-       double y;
-};
+#include <complex.h>
+#include <math.h>
 
 double
 cabs(z)
-       struct complex z;
+       double complex z;
 {
-       return hypot(z.x, z.y);
+       return hypot(creal(z), cimag(z));
 }
 
 double
 z_abs(z)
-       struct complex *z;
+       double complex *z;
 {
-       return hypot(z->x, z->y);
+       return hypot(creal(*z), cimag(*z));
 }
Index: lib/msun/src/w_cabsf.c
===================================================================
RCS file: /home/ncvs/src/lib/msun/src/w_cabsf.c,v
retrieving revision 1.2
diff -u -p -r1.2 w_cabsf.c
--- lib/msun/src/w_cabsf.c      1995/05/30 05:50:48     1.2
+++ lib/msun/src/w_cabsf.c      2001/06/12 12:39:20
@@ -5,17 +5,19 @@
  * Placed into the Public Domain, 1994.
  */
 
-#include "math.h"
-#include "math_private.h"
+#ifndef lint
+static const char rcsid[] =
+  "$FreeBSD$";
+#endif /* not lint */
 
-struct complex {
-       float x;
-       float y;
-};
+#include <complex.h>
+#include <math.h>
+#include "math_private.h"
 
 float
 cabsf(z)
-       struct complex z;
+       float complex z;
 {
-       return hypotf(z.x, z.y);
+
+       return hypotf(crealf(z), cimagf(z));
 }

Reply via email to