Bug 224929 - textproc/jade: fails to build with clang 6.0 (blocks 412 ports)
Summary: textproc/jade: fails to build with clang 6.0 (blocks 412 ports)
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jan Beich
URL:
Keywords: patch
Depends on:
Blocks: 224669
  Show dependency treegraph
 
Reported: 2018-01-05 10:52 UTC by Jan Beich
Modified: 2018-01-27 13:38 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (kuriyama)


Attachments
blind fix: prepend "using " (6.83 KB, patch)
2018-01-05 10:52 UTC, Jan Beich
jbeich: maintainer-approval? (kuriyama)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer 2018-01-05 10:52:41 UTC
Created attachment 189438 [details]
blind fix: prepend "using "

FreeBSD -CURRENT plans to update base Clang to 6.0.0 soon. While testing this port failed to build.

In file included from EntityCatalog.cxx:9:
In file included from ./../include/EntityDecl.h:12:
./../include/Ptr.h:73:11: error: ISO C++11 does not allow access declarations; use using declarations
      instead
  Ptr<T>::isNull;
          ^
  using
./../include/Ptr.h:74:11: error: ISO C++11 does not allow access declarations; use using declarations
      instead
  Ptr<T>::clear;
          ^
  using

In file included from DescriptorManager.cxx:5:
In file included from ./../include/DescriptorManager.h:8:
In file included from ./../include/List.h:7:
./../include/IList.h:29:14: error: ISO C++11 does not allow access declarations; use using
      declarations instead
  IListBase::clear;
             ^
  using
./../include/IList.h:30:14: error: ISO C++11 does not allow access declarations; use using
      declarations instead
  IListBase::empty;
             ^
  using
In file included from DescriptorManager.cxx:6:
In file included from ./../include/ListIter.h:8:
./../include/IListIter.h:20:18: error: ISO C++11 does not allow access declarations; use using
      declarations instead
  IListIterBase::next;
                 ^
  using
./../include/IListIter.h:21:18: error: ISO C++11 does not allow access declarations; use using
      declarations instead
  IListIterBase::done;
                 ^
  using

In file included from parseSd.cxx:5:
./Parser.h:65:16: error: ISO C++11 does not allow access declarations; use using declarations instead
  ParserState::sdPointer;
               ^
  using
./Parser.h:66:16: error: ISO C++11 does not allow access declarations; use using declarations instead
  ParserState::instanceSyntaxPointer;
               ^
  using
./Parser.h:67:16: error: ISO C++11 does not allow access declarations; use using declarations instead
  ParserState::prologSyntaxPointer;
               ^
  using
./Parser.h:68:16: error: ISO C++11 does not allow access declarations; use using declarations instead
  ParserState::activateLinkType;
               ^
  using
./Parser.h:69:16: error: ISO C++11 does not allow access declarations; use using declarations instead
  ParserState::allLinkTypesActivated;
               ^
  using
./Parser.h:70:16: error: ISO C++11 does not allow access declarations; use using declarations instead
  ParserState::entityManager;
               ^
  using
./Parser.h:71:16: error: ISO C++11 does not allow access declarations; use using declarations instead
  ParserState::entityCatalog;
               ^
  using
./Parser.h:72:16: error: ISO C++11 does not allow access declarations; use using declarations instead
  ParserState::baseDtd;
               ^
  using
./Parser.h:73:16: error: ISO C++11 does not allow access declarations; use using declarations instead
  ParserState::options;
               ^
  using

To reproduce:
$ poudriere jail -cj clang6-amd64 -a amd64 -v projects/clang600-import -m svn+https
$ poudriere bulk -Ctj clang6-amd64 textproc/jade

http://package18.nyi.freebsd.org/data/headamd64PR224669-default/2018-01-02_08h32m49s/logs/errors/jade-1.2.1_10.log
Comment 1 Dimitry Andric freebsd_committer 2018-01-05 12:49:26 UTC
This could also be fixed by USING_CXXSTD=gnu++98.  It will still warn lots of times about the access declarations, but will not error out.

That said, Jan's patch looks fine to me, and builds for me too.
Comment 2 commit-hook freebsd_committer 2018-01-10 14:17:58 UTC
A commit references this bug:

Author: jbeich
Date: Wed Jan 10 14:17:14 UTC 2018
New revision: 458643
URL: https://svnweb.freebsd.org/changeset/ports/458643

Log:
  textproc/jade: unbreak build with Clang 6 (C++14 by default)

  In file included from EntityCatalog.cxx:9:
  In file included from ./../include/EntityDecl.h:12:
  ./../include/Ptr.h:73:11: error: ISO C++11 does not allow access declarations; use using declarations
        instead
    Ptr<T>::isNull;
            ^
    using
  ./../include/Ptr.h:74:11: error: ISO C++11 does not allow access declarations; use using declarations
        instead
    Ptr<T>::clear;
            ^
    using

  In file included from DescriptorManager.cxx:5:
  In file included from ./../include/DescriptorManager.h:8:
  In file included from ./../include/List.h:7:
  ./../include/IList.h:29:14: error: ISO C++11 does not allow access declarations; use using
        declarations instead
    IListBase::clear;
               ^
    using
  ./../include/IList.h:30:14: error: ISO C++11 does not allow access declarations; use using
        declarations instead
    IListBase::empty;
               ^
    using
  In file included from DescriptorManager.cxx:6:
  In file included from ./../include/ListIter.h:8:
  ./../include/IListIter.h:20:18: error: ISO C++11 does not allow access declarations; use using
        declarations instead
    IListIterBase::next;
                   ^
    using
  ./../include/IListIter.h:21:18: error: ISO C++11 does not allow access declarations; use using
        declarations instead
    IListIterBase::done;
                   ^
    using

  In file included from parseSd.cxx:5:
  ./Parser.h:65:16: error: ISO C++11 does not allow access declarations; use using declarations instead
    ParserState::sdPointer;
                 ^
    using
  ./Parser.h:66:16: error: ISO C++11 does not allow access declarations; use using declarations instead
    ParserState::instanceSyntaxPointer;
                 ^
    using
  ./Parser.h:67:16: error: ISO C++11 does not allow access declarations; use using declarations instead
    ParserState::prologSyntaxPointer;
                 ^
    using
  ./Parser.h:68:16: error: ISO C++11 does not allow access declarations; use using declarations instead
    ParserState::activateLinkType;
                 ^
    using
  ./Parser.h:69:16: error: ISO C++11 does not allow access declarations; use using declarations instead
    ParserState::allLinkTypesActivated;
                 ^
    using
  ./Parser.h:70:16: error: ISO C++11 does not allow access declarations; use using declarations instead
    ParserState::entityManager;
                 ^
    using
  ./Parser.h:71:16: error: ISO C++11 does not allow access declarations; use using declarations instead
    ParserState::entityCatalog;
                 ^
    using
  ./Parser.h:72:16: error: ISO C++11 does not allow access declarations; use using declarations instead
    ParserState::baseDtd;
                 ^
    using
  ./Parser.h:73:16: error: ISO C++11 does not allow access declarations; use using declarations instead
    ParserState::options;
                 ^
    using

  PR:		224929
  Reported by:	antoine (via bug 224669)
  Reviewed by:	dim
  Approved by:	portmgr blanket

Changes:
  head/textproc/jade/files/patch-Ptr.h
  head/textproc/jade/files/patch-include_IList.h
  head/textproc/jade/files/patch-include_IListIter.h
  head/textproc/jade/files/patch-lib_Parser.h