svn commit: r303151 - in head/sys: dev/pty kern sys
Ruslan Bukin
ruslan.bukin at cl.cam.ac.uk
Thu Jul 21 17:54:15 UTC 2016
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_ */
>
More information about the svn-src-all
mailing list