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