Hi, I get the issues below with GCC 6.1
[...] ===> lib/libsbuf (obj,all,install) /home/rb743/opt/new17/bin/riscv64-unknown-freebsd11.0-gcc -isystem /home/rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp/usr/include -L/home/rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp/usr/lib --sysroot=/home/rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp -B/home/rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp/usr/bin -O2 -pipe -msoft-float -MD -MF.depend.subr_prf.o -MTsubr_prf.o -std=gnu99 -fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -Wno-error=unused-function -Wno-error=enum-compare -Wno-error=logical-not-parentheses -Wno-error=bool-compare -Wno-error=uninitialized -Wno-error=array-bounds -Wno-error=clobbered -Wno-error=cast-align -Wno -error=extra -Wno-error=attributes -Wno-error=inline -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=strict-aliasing -Wno-error=address -Wno-error=unused-const-variable= -Wno-error=nonnull-compare -Wno-error=shift-negative-value -Wno-error=misleading-indentation -Wno-error=tautological-compare -c /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c -o subr_prf.o /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1200:1: error: no previous prototype for 'counted_warning' [-Werror=missing-prototypes] counted_warning(unsigned *counter, const char *msg) ^~~~~~~~~~~~~~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c: In function 'counted_warning': /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1209:7: error: implicit declaration of function 'atomic_cmpset_int' [-Werror=implicit-function-declaration] if (atomic_cmpset_int(counter, c, c - 1)) { ^~~~~~~~~~~~~~~~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1209:3: error: nested extern declaration of 'atomic_cmpset_int' [-Werror=nested-externs] if (atomic_cmpset_int(counter, c, c - 1)) { ^~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1210:9: error: 'curthread' undeclared (first use in this function) td = curthread; ^~~~~~~~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1210:9: note: each undeclared identifier is reported only once for each function it appears in /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:4: error: implicit declaration of function 'log' [-Werror=implicit-function-declaration] log(LOG_INFO, "pid %d (%s) %s%s\n", ^~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:4: error: incompatible implicit declaration of built-in function 'log' [-Werror] /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:4: note: include '<math.h>' or provide a declaration of 'log' /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:8: error: 'LOG_INFO' undeclared (first use in this function) log(LOG_INFO, "pid %d (%s) %s%s\n", ^~~~~~~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1212:10: error: dereferencing pointer to incomplete type 'struct thread' td->td_proc->p_pid, td->td_name, msg, ^~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:4: error: too many arguments to function 'log' log(LOG_INFO, "pid %d (%s) %s%s\n", ^~~ cc1: all warnings being treated as errors *** [subr_prf.o] Error code 1 bmake[4]: stopped in /home/rb743/dev/freebsd-riscv/lib/libsbuf 1 error bmake[4]: stopped in /home/rb743/dev/freebsd-riscv/lib/libsbuf *** [lib/libsbuf__L] Error code 2 bmake[3]: stopped in /home/rb743/dev/freebsd-riscv 1 error bmake[3]: stopped in /home/rb743/dev/freebsd-riscv *** [libraries] Error code 2 bmake[2]: stopped in /home/rb743/dev/freebsd-riscv 1 error bmake[2]: stopped in /home/rb743/dev/freebsd-riscv *** [_libraries] Error code 2 bmake[1]: stopped in /home/rb743/dev/freebsd-riscv 1 error bmake[1]: stopped in /home/rb743/dev/freebsd-riscv *** [buildworld] Error code 2 make: stopped in /home/rb743/dev/freebsd-riscv make: stopped in /home/rb743/dev/freebsd-riscv 0 vica:/home/rb743/dev/freebsd-riscv > On Thu, Jul 21, 2016 at 04:34:57PM +0000, Konstantin Belousov wrote: > Author: kib > Date: Thu Jul 21 16:34:56 2016 > New Revision: 303151 > URL: https://svnweb.freebsd.org/changeset/base/303151 > > Log: > Provide counter_warning(9) KPI which allows to issue limited number of > warnings for some kernel events, mostly intended for the use of > obsoleted or otherwise undersired interfaces. > > This is an abstracted and race-expelled code from compat pty driver. > > Requested and reviewed by: jhb > Sponsored by: The FreeBSD Foundation > MFC after: 1 week > Differential revision: https://reviews.freebsd.org/D7270 > > Modified: > head/sys/dev/pty/pty.c > head/sys/kern/subr_prf.c > head/sys/sys/systm.h > > Modified: head/sys/dev/pty/pty.c > ============================================================================== > --- head/sys/dev/pty/pty.c Thu Jul 21 15:48:41 2016 (r303150) > +++ head/sys/dev/pty/pty.c Thu Jul 21 16:34:56 2016 (r303151) > @@ -52,10 +52,10 @@ __FBSDID("$FreeBSD$"); > * binary emulation. > */ > > -static unsigned int pty_warningcnt = 1; > +static unsigned pty_warningcnt = 1; > SYSCTL_UINT(_kern, OID_AUTO, tty_pty_warningcnt, CTLFLAG_RW, > - &pty_warningcnt, 0, > - "Warnings that will be triggered upon legacy PTY allocation"); > + &pty_warningcnt, 0, > + "Warnings that will be triggered upon legacy PTY allocation"); > > static int > ptydev_fdopen(struct cdev *dev, int fflags, struct thread *td, struct file > *fp) > @@ -77,12 +77,7 @@ ptydev_fdopen(struct cdev *dev, int ffla > } > > /* Raise a warning when a legacy PTY has been allocated. */ > - if (pty_warningcnt > 0) { > - pty_warningcnt--; > - log(LOG_INFO, "pid %d (%s) is using legacy pty devices%s\n", > - td->td_proc->p_pid, td->td_name, > - pty_warningcnt ? "" : " - not logging anymore"); > - } > + counted_warning(&pty_warningcnt, "is using legacy pty devices"); > > return (0); > } > > Modified: head/sys/kern/subr_prf.c > ============================================================================== > --- head/sys/kern/subr_prf.c Thu Jul 21 15:48:41 2016 (r303150) > +++ head/sys/kern/subr_prf.c Thu Jul 21 16:34:56 2016 (r303151) > @@ -1196,3 +1196,22 @@ sbuf_hexdump(struct sbuf *sb, const void > } > } > > +void > +counted_warning(unsigned *counter, const char *msg) > +{ > + struct thread *td; > + unsigned c; > + > + for (;;) { > + c = *counter; > + if (c == 0) > + break; > + if (atomic_cmpset_int(counter, c, c - 1)) { > + td = curthread; > + log(LOG_INFO, "pid %d (%s) %s%s\n", > + td->td_proc->p_pid, td->td_name, msg, > + c > 1 ? "" : " - not logging anymore"); > + break; > + } > + } > +} > > Modified: head/sys/sys/systm.h > ============================================================================== > --- head/sys/sys/systm.h Thu Jul 21 15:48:41 2016 (r303150) > +++ head/sys/sys/systm.h Thu Jul 21 16:34:56 2016 (r303151) > @@ -447,4 +447,6 @@ void intr_prof_stack_use(struct thread * > > extern void (*softdep_ast_cleanup)(void); > > +void counted_warning(unsigned *counter, const char *msg); > + > #endif /* !_SYS_SYSTM_H_ */ > _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"