NetBSD Problem Report #50892

From gson@gson.org  Fri Mar  4 15:03:55 2016
Return-Path: <gson@gson.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK))
	by mollari.NetBSD.org (Postfix) with ESMTPS id E01CF7ABF5
	for <gnats-bugs@gnats.NetBSD.org>; Fri,  4 Mar 2016 15:03:55 +0000 (UTC)
Message-Id: <20160304150349.1FE1474467E@guava.gson.org>
Date: Fri,  4 Mar 2016 17:03:49 +0200 (EET)
From: gson@gson.org
Reply-To: gson@gson.org
To: gnats-bugs@NetBSD.org
Subject: devel/boost-libs fails to build on NetBSD 6.1.5
X-Send-Pr-Version: 3.95

>Number:         50892
>Category:       pkg
>Synopsis:       devel/boost-libs fails to build on NetBSD 6.1.5
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 04 15:05:00 +0000 2016
>Last-Modified:  Fri Aug 26 06:30:00 +0000 2016
>Originator:     Andreas Gustafsson
>Release:        NetBSD 6.1.5
>Organization:

>Environment:
System: NetBSD
Architecture: x86_64
Machine: amd64
>Description:

Building devel/boost-libs on NetBSD/amd64 6.1.5 fails.  Here is the
end of the output from running "make":

   gcc.archive bin.v2/libs/wave/build/gcc-4.5.3/release/link-static/threading-multi/libboost_wave.a
   common.copy stage/lib/libboost_wave.a
   ...failed updating 18 targets...
   ...skipped 8 targets...
   ...updated 927 targets...
   *** Error code 1

   Stop.
   make: stopped in /usr/pkgsrc/devel/boost-libs
   *** Error code 1

   Stop.
   make: stopped in /usr/pkgsrc/devel/boost-libs

Grepping the output for the string "error:" produces:

   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument_factory.hpp:56:13: error: no match for 'operator<<' in '(boost::runtime::format_error)(param_name) << source'
   ./boost/test/utils/runtime/argument_factory.hpp:147:9: error: no match for 'operator<<' in '(boost::runtime::format_error)(param_name) << source'
   ./boost/test/utils/runtime/parameter.hpp:265:9: error: no match for 'operator<<' in 'boost::runtime::invalid_param_spec() << "Parameter "'
   ./boost/test/utils/runtime/parameter.hpp:269:9: error: no match for 'operator<<' in 'boost::runtime::invalid_param_spec() << "Parameter "'
   ./boost/test/utils/runtime/cla/parser.hpp:140:9: error: no match for 'operator<<' in 'boost::runtime::invalid_cla_id() << "End of parameters indicator can only consist of prefix characters."'
   ./boost/test/utils/runtime/cla/parser.hpp:145:9: error: no match for 'operator<<' in 'boost::runtime::invalid_cla_id() << "Negation prefix can only consist of prefix characters."'
   ./boost/test/utils/runtime/env/fetch.hpp:81:9: error: no match for 'operator<<' in '(boost::runtime::format_error)(param->.p_name) << "Missing an argument value for the parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument.hpp:99:9: error: no match for 'operator<<' in 'boost::runtime::access_to_missing_argument() << "There is no argument provided for parameter "'
   ./boost/test/utils/runtime/argument.hpp:106:9: error: no match for 'operator<<' in 'boost::runtime::arg_type_mismatch() << "Access with invalid type for argument corresponding to parameter "'
   ./boost/test/utils/runtime/argument_factory.hpp:56:13: error: no match for 'operator<<' in '(boost::runtime::format_error)(param_name) << source'
   ./boost/test/utils/runtime/argument_factory.hpp:147:9: error: no match for 'operator<<' in '(boost::runtime::format_error)(param_name) << source'
   ./boost/test/utils/runtime/parameter.hpp:265:9: error: no match for 'operator<<' in 'boost::runtime::invalid_param_spec() << "Parameter "'
   ./boost/test/utils/runtime/parameter.hpp:269:9: error: no match for 'operator<<' in 'boost::runtime::invalid_param_spec() << "Parameter "'
   ./boost/test/utils/runtime/cla/parser.hpp:140:9: error: no match for 'operator<<' in 'boost::runtime::invalid_cla_id() << "End of parameters indicator can only consist of prefix characters."'
   ./boost/test/utils/runtime/cla/parser.hpp:145:9: error: no match for 'operator<<' in 'boost::runtime::invalid_cla_id() << "Negation prefix can only consist of prefix characters."'
   ./boost/test/utils/runtime/env/fetch.hpp:81:9: error: no match for 'operator<<' in '(boost::runtime::format_error)(param->.p_name) << "Missing an argument value for the parameter "'

Building on NetBSD 7.0 succeeds.

>How-To-Repeat:

cd /usr/pkgsrc/devel/boost-libs
make

>Fix:

>Audit-Trail:
From: Edgar =?iso-8859-1?B?RnXf?= <ef@math.uni-bonn.de>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: pkg/50892
Date: Mon, 1 Aug 2016 17:56:25 +0200

 FWIW, the issue seems to be known to the boost developers as Ticket #12093 (https://svn.boost.org/trac/boost/ticket/12093).
 The analysis is ``<C++ foo I don't understand> I am not sure about what is stated in the standard, but my feeling is that this is a compiler defect.''

 Also, the error doesn't occur if you omit the ``test'' component:

 Index: Makefile
 ===================================================================
 RCS file: /cvsroot/pkgsrc/devel/boost-libs/Makefile,v
 retrieving revision 1.41
 diff -u -r1.41 Makefile
 --- Makefile	28 Feb 2016 23:54:11 -0000	1.41
 +++ Makefile	1 Aug 2016 15:25:21 -0000
 @@ -11,6 +11,7 @@
  INSTALLATION_DIRS+=	lib

  BJAM_ARGS+=		--without-python
 +BJAM_ARGS+=		--without-test
  PLIST_VARS+=		context log long_double_math

  .if ${OPSYS} == "NetBSD" && ((${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "sparc64") || (!empty(MACHINE_ARCH:Mearm*) && !empty(PKGSRC_COMPILER:Mgcc)))
 Index: PLIST
 ===================================================================
 RCS file: /cvsroot/pkgsrc/devel/boost-libs/PLIST,v
 retrieving revision 1.28
 diff -u -r1.28 PLIST
 --- PLIST	27 Dec 2015 12:41:42 -0000	1.28
 +++ PLIST	1 Aug 2016 15:25:21 -0000
 @@ -54,9 +54,9 @@
  ${PLIST.long_double_math}lib/libboost_math_tr1l.a
  ${PLIST.long_double_math}lib/libboost_math_tr1l.so
  ${PLIST.long_double_math}lib/libboost_math_tr1l.so.${BOOST_VERSION}
 -lib/libboost_prg_exec_monitor.a
 -lib/libboost_prg_exec_monitor.so
 -lib/libboost_prg_exec_monitor.so.${BOOST_VERSION}
 +@comment lib/libboost_prg_exec_monitor.a
 +@comment lib/libboost_prg_exec_monitor.so
 +@comment lib/libboost_prg_exec_monitor.so.${BOOST_VERSION}
  lib/libboost_program_options.a
  lib/libboost_program_options.so
  lib/libboost_program_options.so.${BOOST_VERSION}
 @@ -75,7 +75,7 @@
  lib/libboost_system.a
  lib/libboost_system.so
  lib/libboost_system.so.${BOOST_VERSION}
 -lib/libboost_test_exec_monitor.a
 +@comment lib/libboost_test_exec_monitor.a
  lib/libboost_thread.a
  lib/libboost_thread.so
  lib/libboost_thread.so.${BOOST_VERSION}
 @@ -85,9 +85,9 @@
  lib/libboost_type_erasure.a
  lib/libboost_type_erasure.so
  lib/libboost_type_erasure.so.${BOOST_VERSION}
 -lib/libboost_unit_test_framework.a
 -lib/libboost_unit_test_framework.so
 -lib/libboost_unit_test_framework.so.${BOOST_VERSION}
 +@comment lib/libboost_unit_test_framework.a
 +@comment lib/libboost_unit_test_framework.so
 +@comment lib/libboost_unit_test_framework.so.${BOOST_VERSION}
  lib/libboost_wave.a
  lib/libboost_wave.so
  lib/libboost_wave.so.${BOOST_VERSION}

From: David Holland <dholland-pbugs@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: pkg/50892
Date: Fri, 26 Aug 2016 06:18:08 +0000

 On Mon, Aug 01, 2016 at 04:00:01PM +0000, Edgar Fu? wrote:
  >  FWIW, the issue seems to be known to the boost developers as Ticket #12093 (https://svn.boost.org/trac/boost/ticket/12093).
  >  The analysis is ``<C++ foo I don't understand> I am not sure about what is stated in the standard, but my feeling is that this is a compiler defect.''
  >  
  >  Also, the error doesn't occur if you omit the ``test'' component:
  > [snip]

 Given that fixing it ourselves is unlikely (it being boost) is it
 better to handle this by disabling the test component on netbsd-6, or
 by setting GCC_REQD?


 -- 
 David A. Holland
 dholland@netbsd.org

From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc: pkg-manager@netbsd.org,
    gnats-admin@netbsd.org,
    pkgsrc-bugs@netbsd.org,
    gson@gson.org
Subject: Re: pkg/50892
Date: Fri, 26 Aug 2016 09:29:04 +0300

 David Holland wrote:
 >  Given that fixing it ourselves is unlikely (it being boost) is it
 >  better to handle this by disabling the test component on netbsd-6, or
 >  by setting GCC_REQD?

 I vote for disabling the test component on netbsd-6.
 -- 
 Andreas Gustafsson, gson@gson.org

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-2014 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.