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"

Reply via email to