From owner-freebsd-bugs Sun Mar 26 19:40: 5 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id DC25237BAC8 for ; Sun, 26 Mar 2000 19:40:01 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id TAA81339; Sun, 26 Mar 2000 19:40:02 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from hunahpu.sics.se (hunahpu.sics.se [193.10.66.220]) by hub.freebsd.org (Postfix) with ESMTP id 8E4D337BAED for ; Sun, 26 Mar 2000 19:34:54 -0800 (PST) (envelope-from root@hunahpu.sics.se) Received: (from root@localhost) by hunahpu.sics.se (8.9.3/8.9.3) id FAA15545; Mon, 27 Mar 2000 05:34:46 +0200 (CEST) (envelope-from root) Message-Id: <200003270334.FAA15545@hunahpu.sics.se> Date: Mon, 27 Mar 2000 05:34:46 +0200 (CEST) From: assar@stacken.kth.se To: FreeBSD-gnats-submit@freebsd.org Cc: assar@stacken.kth.se X-Send-Pr-Version: 3.2 Subject: kern/17614: impossible to CURSIG when compiling with optimization Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 17614 >Category: kern >Synopsis: impossible to CURSIG when compiling with optimization >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Mar 26 19:40:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Assar >Release: FreeBSD 5.0-CURRENT i386 >Organization: none >Environment: 5.0-current with sys/signalvar.h 1.34 >Description: It's not possible to build a KLD without optimization if it uses the CURSIG macro since this expand to a call to an `extern inline' function. >How-To-Repeat: write code that calls CURSIG compile it without -O kldload it >Fix: make the function `static __inline' instead of `extern __inline' --- signalvar.h.orig Mon Mar 27 05:30:33 2000 +++ signalvar.h Mon Mar 27 05:33:50 2000 @@ -209,7 +209,6 @@ void sigexit __P((struct proc *p, int signum)); void siginit __P((struct proc *p)); void trapsignal __P((struct proc *p, int sig, u_long code)); -int __cursig __P((struct proc *p)); /* * Machine-dependent functions: @@ -226,7 +225,7 @@ * process, 0 if none. If there is a pending stop signal with default * action, the process stops in issignal(). */ -extern __inline int __cursig(struct proc *p) +static __inline int __cursig(struct proc *p) { sigset_t tmpset; >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message