Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Jan 2016 07:46:11 +0000
From:      Alexey Dokuchaev <danfe@FreeBSD.org>
To:        "Vanilla I. Shu" <vanilla@FreeBSD.org>
Cc:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   Re: svn commit: r407452 - head/devel/pure-stldict
Message-ID:  <20160129074611.GA43436@FreeBSD.org>
In-Reply-To: <201601290609.u0T69WQO078557@repo.freebsd.org>
References:  <201601290609.u0T69WQO078557@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 29, 2016 at 06:09:32AM +0000, Vanilla I. Shu wrote:
> New Revision: 407452
> URL: https://svnweb.freebsd.org/changeset/ports/407452
> 
> Log:
>   Fix broken on 9.

There are several problems with this commit. :(

Commit message does not tell us anything about the underlying problem,
we can only make guesses that it's likely related to the base GCC 4.2.
At this point, because of essentially missing commit log, we have to
look inside the Makefile:

% CXXFLAGS+=	-std=c++0x -DHAVE_STD_IS_PERMUTATION

And the build error message with base GCC:

    cc1plus: error: unrecognized command line option "-std=c++0x"

It suggests that the code conforms to C++0x and thus requires capable
compiler (at least).

> +.include <bsd.port.pre.mk>
> +
> +.if ${OSVERSION} <= 1000000

Strange OSVERSION; apparently it was supposed to reflect the moment when
Clang had become the default compiler?  If so, it should've been 1000024.
If you want/need Clang together with libc++, then it is 1000054.

Quick test with CXX=clang++ on 9.3, as well as compiler:c++0x/c++11-lang,
showed that compiler alone is not enough (see below).

> +USE_GCC=	4.9

4.9 seems strange; C++0x had appeared much earlier (`lang/pure' itself is
built with gcc48 on 9.3).  Requesting specific version is not welcome,
and should be adequately explained (if some port really does require new
GCC, your first attempt should be USE_GCC=yes) in the commit log.

More to it, requesting GCC here is bogus: what the port really wants is
compiler understanding C++11 and C++11-ready standard library.  Consider
replacing bogus USE_GCC with USES+=compiler:c++11-lib.  (Fixed the build
on 9.3 for me, with gcc48 as expected, and is no-op on 10.2 and -CURRENT.)

./danfe



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160129074611.GA43436>