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));
}