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 Subject: kern/17614: impossible to CURSIG when compiling with optimization Message-ID: <200003270334.FAA15545@hunahpu.sics.se>
next in thread | raw e-mail | index | archive | help
>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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200003270334.FAA15545>
