NetBSD Problem Report #48824
From prlw1@cam.ac.uk Tue May 20 13:15:41 2014
Return-Path: <prlw1@cam.ac.uk>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
(using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
(Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK))
by mollari.NetBSD.org (Postfix) with ESMTPS id 1D371A5857
for <gnats-bugs@gnats.NetBSD.org>; Tue, 20 May 2014 13:15:41 +0000 (UTC)
Message-Id: <20140520131427.GA18704@quantz>
Date: Tue, 20 May 2014 14:14:27 +0100
From: Patrick Welche <prlw1@cam.ac.uk>
To: gnats-bugs@NetBSD.org
Subject: pbulk build failure
>Number: 48824
>Category: pkg
>Synopsis: pbulk build failure: argument may be clobbered
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: joerg
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue May 20 13:20:00 +0000 2014
>Closed-Date: Sun Nov 23 06:58:15 +0000 2014
>Last-Modified: Sun Nov 23 06:58:15 +0000 2014
>Originator: Patrick Welche (local)
>Release: NetBSD 6.99.42
>Organization:
>Environment:
NetBSD-current/amd64
>Description:
Building pbulk from today's pkgsrc on today's current fails with:
--- pbuild.o ---
pbuild.c: In function 'build_package':
pbuild.c:175:27: error: argument 'build_info' might be clobbered by 'longjmp' or 'vfork' [-Werror=clobbered]
build_package(const char *build_info, size_t len)
^
pbuild.c:175:46: error: argument 'len' might be clobbered by 'longjmp' or 'vfork' [-Werror=clobbered]
build_package(const char *build_info, size_t len)
^
This is with base gcc 4.8.3.
>How-To-Repeat:
cd pkgtools/pbulk
make
>Fix:
The following workaround allows pbulk to build for me.
Index: files/pbulk/pbuild/pbuild.c
===================================================================
RCS file: /cvsroot/pkgsrc/pkgtools/pbulk/files/pbulk/pbuild/pbuild.c,v
retrieving revision 1.6
diff -u -r1.6 pbuild.c
--- files/pbulk/pbuild/pbuild.c 14 Jan 2013 14:33:28 -0000 1.6
+++ files/pbulk/pbuild/pbuild.c 13 May 2014 10:25:19 -0000
@@ -172,7 +172,7 @@
}
int
-build_package(const char *build_info, size_t len)
+build_package(const char * volatile build_info, volatile size_t len)
{
struct sigaction sa;
int input[2];
Index: files/pbulk/pbuild/pbuild.h
===================================================================
RCS file: /cvsroot/pkgsrc/pkgtools/pbulk/files/pbulk/pbuild/pbuild.h,v
retrieving revision 1.6
diff -u -r1.6 pbuild.h
--- files/pbulk/pbuild/pbuild.h 27 Nov 2011 19:53:30 -0000 1.6
+++ files/pbulk/pbuild/pbuild.h 13 May 2014 10:25:20 -0000
@@ -116,7 +116,7 @@
void init_jobs(const char *, const char *, const char *);
struct build_job *get_job(void);
void process_job(struct build_job *, enum job_state, int);
-int build_package(const char *, size_t);
+int build_package(const char * volatile, volatile size_t);
void finish_build(const char *);
void build_stats(struct build_stat *);
===================================================================
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: pkg-manager->joerg
Responsible-Changed-By: hauke@NetBSD.org
Responsible-Changed-When: Sun, 25 May 2014 16:11:39 +0000
Responsible-Changed-Why:
Over to maintainer.
From: Patrick Welche <prlw1@cam.ac.uk>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/48824 pbulk build failure: argument may be clobbered
Date: Tue, 29 Jul 2014 12:11:35 +0100
As Joerg is maintainer of pbulk, chances are pbulk-0.52 builds correctly
with llvm. So checking other versions of gcc, I see:
NetBSD-5.2_STABLE/i386:
gcc version 4.1.3 20080704 prerelease (NetBSD nb2 20081120) OK
NetBSD-6.1_STABLE/amd64:
gcc version 4.5.3 (NetBSD nb2 20110806) OK
NetBSD-6.99.47/amd64:
gcc version 4.8.3 (nb1 20140527) FAIL
From: "Joerg Sonnenberger" <joerg@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/48824 CVS commit: pkgsrc/pkgtools/pbulk-base
Date: Tue, 29 Jul 2014 11:37:46 +0000
Module Name: pkgsrc
Committed By: joerg
Date: Tue Jul 29 11:37:46 UTC 2014
Modified Files:
pkgsrc/pkgtools/pbulk-base: Makefile
Log Message:
PR 48824: Disable bogus clobbering warning from GCC 4.8.
To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 pkgsrc/pkgtools/pbulk-base/Makefile
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: Patrick Welche <prlw1@cam.ac.uk>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: PR/48824 CVS commit: pkgsrc/pkgtools/pbulk-base
Date: Tue, 29 Jul 2014 12:55:14 +0100
On Tue, Jul 29, 2014 at 11:40:00AM +0000, Joerg Sonnenberger wrote:
> The following reply was made to PR pkg/48824; it has been noted by GNATS.
>
> From: "Joerg Sonnenberger" <joerg@netbsd.org>
> To: gnats-bugs@gnats.NetBSD.org
> Cc:
> Subject: PR/48824 CVS commit: pkgsrc/pkgtools/pbulk-base
> Date: Tue, 29 Jul 2014 11:37:46 +0000
>
> Module Name: pkgsrc
> Committed By: joerg
> Date: Tue Jul 29 11:37:46 UTC 2014
>
> Modified Files:
> pkgsrc/pkgtools/pbulk-base: Makefile
>
> Log Message:
> PR 48824: Disable bogus clobbering warning from GCC 4.8.
Thanks - I was just trying to get
.include "../../mk/compiler.mk"
.if ${CC_VERSION} == "gcc-4.8.3"
CFLAGS+= -Wno-clobbered
.endif
to work - I didn't think of empty()...
Build now succeeds...
From: David Holland <dholland-pbugs@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: PR/48824 CVS commit: pkgsrc/pkgtools/pbulk-base
Date: Sun, 23 Nov 2014 01:14:50 +0000
On Tue, Jul 29, 2014 at 11:40:00AM +0000, Joerg Sonnenberger wrote:
> Modified Files:
> pkgsrc/pkgtools/pbulk-base: Makefile
>
> Log Message:
> PR 48824: Disable bogus clobbering warning from GCC 4.8.
Are you sure it's bogus? As far as I can tell function arguments are
susceptible to clobbering just as locals are.
(Also if gcc issues the warning in a particular place it is likely to
mean that it's capable of clobbering that value, whether or not it's
legal.)
--
David A. Holland
dholland@netbsd.org
From: Joerg Sonnenberger <joerg@britannica.bec.de>
To: gnats-bugs@NetBSD.org
Cc: joerg@NetBSD.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org,
Patrick Welche <prlw1@cam.ac.uk>
Subject: Re: PR/48824 CVS commit: pkgsrc/pkgtools/pbulk-base
Date: Sun, 23 Nov 2014 03:04:06 +0100
On Sun, Nov 23, 2014 at 01:15:00AM +0000, David Holland wrote:
> The following reply was made to PR pkg/48824; it has been noted by GNATS.
>
> From: David Holland <dholland-pbugs@netbsd.org>
> To: gnats-bugs@NetBSD.org
> Cc:
> Subject: Re: PR/48824 CVS commit: pkgsrc/pkgtools/pbulk-base
> Date: Sun, 23 Nov 2014 01:14:50 +0000
>
> On Tue, Jul 29, 2014 at 11:40:00AM +0000, Joerg Sonnenberger wrote:
> > Modified Files:
> > pkgsrc/pkgtools/pbulk-base: Makefile
> >
> > Log Message:
> > PR 48824: Disable bogus clobbering warning from GCC 4.8.
>
> Are you sure it's bogus? As far as I can tell function arguments are
> susceptible to clobbering just as locals are.
I'm pretty sure.
Joerg
State-Changed-From-To: open->closed
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Sun, 23 Nov 2014 06:58:15 +0000
State-Changed-Why:
In that case, this is fixed...
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.