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:

NetBSD Home
NetBSD PR Database Search

(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.