Bug 219300

Summary: science/gnudatalanguage: fails to build with lang/gcc6 or later
Product: Ports & Packages Reporter: Jan Beich <jbeich>
Component: Individual Port(s)Assignee: Raphael Kubo da Costa <rakuco>
Status: Closed FIXED    
Severity: Affects Only Me CC: fjoe, gerald, rakuco, thierry
Priority: --- Flags: thierry: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 219275    
Attachments:
Description Flags
Proposed patch rakuco: maintainer-approval+

Description Jan Beich freebsd_committer freebsd_triage 2017-05-14 23:46:10 UTC
In file included from src/datatypes.hpp:499:0,
                 from src/envt.hpp:28,
                 from src/dialog.cpp:25:
src/specializations.hpp:537:15: error: template-id 'operator>><>' for 'std::__1::istream& operator>>(std::__1::istream&, Data_<SpDFloat>&)' does not match any template declaration
 std::istream& operator>>(std::istream& i, Data_<SpDFloat>& data_);
               ^~~~~~~~
In file included from /usr/local/include/wx-2.8/wx/utils.h:31:0,
                 from /usr/local/include/wx-2.8/wx/cursor.h:41,
                 from /usr/local/include/wx-2.8/wx/event.h:22,
                 from /usr/local/include/wx-2.8/wx/window.h:19,
                 from /usr/local/include/wx-2.8/wx/toplevel.h:21,
                 from /usr/local/include/wx-2.8/wx/dialog.h:17,
                 from /usr/local/include/wx-2.8/wx/filedlg.h:19,
                 from src/dialog.cpp:21:
/usr/local/include/wx-2.8/wx/longlong.h:1073:43: note: candidates are: wxTextInputStream& operator>>(wxTextInputStream&, long long unsigned int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxULongLong_t &value);
                                           ^~~~~~~~
/usr/local/include/wx-2.8/wx/longlong.h:1074:43: note:                 wxTextInputStream& operator>>(wxTextInputStream&, long long int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxLongLong_t &value);
                                           ^~~~~~~~
In file included from src/datatypes.hpp:499:0,
                 from src/envt.hpp:28,
                 from src/dialog.cpp:25:
src/specializations.hpp:539:15: error: template-id 'operator>><>' for 'std::__1::istream& operator>>(std::__1::istream&, Data_<SpDDouble>&)' does not match any template declaration
 std::istream& operator>>(std::istream& i, Data_<SpDDouble>& data_);
               ^~~~~~~~
In file included from /usr/local/include/wx-2.8/wx/utils.h:31:0,
                 from /usr/local/include/wx-2.8/wx/cursor.h:41,
                 from /usr/local/include/wx-2.8/wx/event.h:22,
                 from /usr/local/include/wx-2.8/wx/window.h:19,
                 from /usr/local/include/wx-2.8/wx/toplevel.h:21,
                 from /usr/local/include/wx-2.8/wx/dialog.h:17,
                 from /usr/local/include/wx-2.8/wx/filedlg.h:19,
                 from src/dialog.cpp:21:
/usr/local/include/wx-2.8/wx/longlong.h:1073:43: note: candidates are: wxTextInputStream& operator>>(wxTextInputStream&, long long unsigned int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxULongLong_t &value);
                                           ^~~~~~~~
/usr/local/include/wx-2.8/wx/longlong.h:1074:43: note:                 wxTextInputStream& operator>>(wxTextInputStream&, long long int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxLongLong_t &value);
                                           ^~~~~~~~
In file included from src/datatypes.hpp:499:0,
                 from src/envt.hpp:28,
                 from src/dialog.cpp:25:
src/specializations.hpp:541:15: error: template-id 'operator>><>' for 'std::__1::istream& operator>>(std::__1::istream&, Data_<SpDComplex>&)' does not match any template declaration
 std::istream& operator>>(std::istream& i, Data_<SpDComplex>& data_);
               ^~~~~~~~
In file included from /usr/local/include/wx-2.8/wx/utils.h:31:0,
                 from /usr/local/include/wx-2.8/wx/cursor.h:41,
                 from /usr/local/include/wx-2.8/wx/event.h:22,
                 from /usr/local/include/wx-2.8/wx/window.h:19,
                 from /usr/local/include/wx-2.8/wx/toplevel.h:21,
                 from /usr/local/include/wx-2.8/wx/dialog.h:17,
                 from /usr/local/include/wx-2.8/wx/filedlg.h:19,
                 from src/dialog.cpp:21:
/usr/local/include/wx-2.8/wx/longlong.h:1073:43: note: candidates are: wxTextInputStream& operator>>(wxTextInputStream&, long long unsigned int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxULongLong_t &value);
                                           ^~~~~~~~
/usr/local/include/wx-2.8/wx/longlong.h:1074:43: note:                 wxTextInputStream& operator>>(wxTextInputStream&, long long int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxLongLong_t &value);
                                           ^~~~~~~~
In file included from src/datatypes.hpp:499:0,
                 from src/envt.hpp:28,
                 from src/dialog.cpp:25:
src/specializations.hpp:543:15: error: template-id 'operator>><>' for 'std::__1::istream& operator>>(std::__1::istream&, Data_<SpDComplexDbl>&)' does not match any template declaration
 std::istream& operator>>(std::istream& i, Data_<SpDComplexDbl>& data_);
               ^~~~~~~~
In file included from /usr/local/include/wx-2.8/wx/utils.h:31:0,
                 from /usr/local/include/wx-2.8/wx/cursor.h:41,
                 from /usr/local/include/wx-2.8/wx/event.h:22,
                 from /usr/local/include/wx-2.8/wx/window.h:19,
                 from /usr/local/include/wx-2.8/wx/toplevel.h:21,
                 from /usr/local/include/wx-2.8/wx/dialog.h:17,
                 from /usr/local/include/wx-2.8/wx/filedlg.h:19,
                 from src/dialog.cpp:21:
/usr/local/include/wx-2.8/wx/longlong.h:1073:43: note: candidates are: wxTextInputStream& operator>>(wxTextInputStream&, long long unsigned int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxULongLong_t &value);
                                           ^~~~~~~~
/usr/local/include/wx-2.8/wx/longlong.h:1074:43: note:                 wxTextInputStream& operator>>(wxTextInputStream&, long long int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxLongLong_t &value);
                                           ^~~~~~~~
In file included from src/datatypes.hpp:499:0,
                 from src/envt.hpp:28,
                 from src/dialog.cpp:25:
src/specializations.hpp:545:15: error: template-id 'operator>><>' for 'std::__1::istream& operator>>(std::__1::istream&, Data_<SpDString>&)' does not match any template declaration
 std::istream& operator>>(std::istream& is, Data_<SpDString>& data_);
               ^~~~~~~~
In file included from /usr/local/include/wx-2.8/wx/utils.h:31:0,
                 from /usr/local/include/wx-2.8/wx/cursor.h:41,
                 from /usr/local/include/wx-2.8/wx/event.h:22,
                 from /usr/local/include/wx-2.8/wx/window.h:19,
                 from /usr/local/include/wx-2.8/wx/toplevel.h:21,
                 from /usr/local/include/wx-2.8/wx/dialog.h:17,
                 from /usr/local/include/wx-2.8/wx/filedlg.h:19,
                 from src/dialog.cpp:21:
/usr/local/include/wx-2.8/wx/longlong.h:1073:43: note: candidates are: wxTextInputStream& operator>>(wxTextInputStream&, long long unsigned int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxULongLong_t &value);
                                           ^~~~~~~~
/usr/local/include/wx-2.8/wx/longlong.h:1074:43: note:                 wxTextInputStream& operator>>(wxTextInputStream&, long long int&)
 WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxLongLong_t &value);
                                           ^~~~~~~~

build log: http://sprunge.us/UNQA
Comment 1 Thierry Thomas freebsd_committer freebsd_triage 2017-05-18 20:09:48 UTC
Adding fjoe, maintainer of x11-toolkits/wxgtk28-common.

Meanwhile, a ticket has been opened upstream, at
https://sourceforge.net/p/gnudatalanguage/bugs/722/
Comment 2 Thierry Thomas freebsd_committer freebsd_triage 2017-05-18 20:18:26 UTC
And on another way, I'm trying to switch to wxgtk30.
Comment 3 commit-hook freebsd_committer freebsd_triage 2017-05-19 18:07:53 UTC
A commit references this bug:

Author: thierry
Date: Fri May 19 18:06:48 UTC 2017
New revision: 441256
URL: https://svnweb.freebsd.org/changeset/ports/441256

Log:
  Switch to wxgtk30.

  PR:		219300

Changes:
  head/science/gnudatalanguage/Makefile
  head/science/gnudatalanguage/files/patch-src_gdlgstream.hpp
  head/science/gnudatalanguage/files/patch-src_gdlwidget.cpp
  head/science/gnudatalanguage/files/patch-src_gdlwidget.hpp
Comment 4 commit-hook freebsd_committer freebsd_triage 2017-05-31 20:48:34 UTC
A commit references this bug:

Author: thierry
Date: Wed May 31 20:48:06 UTC 2017
New revision: 442265
URL: https://svnweb.freebsd.org/changeset/ports/442265

Log:
  Remove a clash due to #include filedlg.h to fix the build with Gcc 6.

  PR:		219300
  Obtained from:	Gilles Duvert (upstream)

Changes:
  head/science/gnudatalanguage/Makefile
  head/science/gnudatalanguage/files/patch-src_dialog.cpp
Comment 5 Raphael Kubo da Costa freebsd_committer freebsd_triage 2017-07-26 18:51:17 UTC
Is this fixed then?
Comment 6 Thierry Thomas freebsd_committer freebsd_triage 2017-07-30 09:03:54 UTC
(In reply to Raphael Kubo da Costa from comment #5)
Not completely, but upstream is working on a new release, and I'm waiting for it.
Comment 7 Gerald Pfeifer freebsd_committer freebsd_triage 2017-08-13 20:46:13 UTC
Hi Thierry, this is now one of only two PRs blocking the update to GCC 6.

Do you think you can hack this in the next days?  If not, would you be
okay to go with USE_GCC=5 until the update is available and you'll be
able to apply it?
Comment 8 Thierry Thomas freebsd_committer freebsd_triage 2017-08-14 11:22:16 UTC
(In reply to Gerald Pfeifer from comment #7)
Yes, please, go with USE_GCC=5 for the time being.
I shall try to remove it with the next release.
Comment 9 Raphael Kubo da Costa freebsd_committer freebsd_triage 2017-08-15 19:56:56 UTC
Created attachment 185460 [details]
Proposed patch

The attached patch backports http://gnudatalanguage.cvs.sourceforge.net/viewvc/gnudatalanguage/gdl/src/specializations.hpp?revision=1.41&view=markup, which fixes the build error reported here.

It worked fine in Poudriere (HEAD-amd64) and lets us avoid having to force GCC 5.
Comment 10 Thierry Thomas freebsd_committer freebsd_triage 2017-08-15 21:43:15 UTC
(In reply to Raphael Kubo da Costa from comment #9)
Great, thanks!
Comment 11 commit-hook freebsd_committer freebsd_triage 2017-08-16 07:34:39 UTC
A commit references this bug:

Author: rakuco
Date: Wed Aug 16 07:34:23 UTC 2017
New revision: 448025
URL: https://svnweb.freebsd.org/changeset/ports/448025

Log:
  Backport a patch to fix the build with GCC 6.

  Obtained from: https://sourceforge.net/p/gnudatalanguage/bugs/688/#4622

  PR:		219300
  Approved by:	thierry (maintainer)

Changes:
  head/science/gnudatalanguage/files/patch-src_specializations.hpp
Comment 12 Raphael Kubo da Costa freebsd_committer freebsd_triage 2017-08-16 07:35:09 UTC
Thanks for the quick review!
Comment 13 commit-hook freebsd_committer freebsd_triage 2017-09-26 22:32:36 UTC
A commit references this bug:

Author: jbeich
Date: Tue Sep 26 22:32:04 UTC 2017
New revision: 450701
URL: https://svnweb.freebsd.org/changeset/ports/450701

Log:
  science/gnudatalanguage: unbreak with gcc6 on 10.*

  src/CMakeFiles/gdl.dir/GDLInterpreter.cpp.o: In function `GDLInterpreter::l_decinc_dot_expr(ProgNode*, int)':
  GDLInterpreter.cpp:(.text+0x4c24): undefined reference to `operator delete(void*, unsigned int)'
  GDLInterpreter.cpp:(.text+0x4f51): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/GDLInterpreter.cpp.o: In function `GDLInterpreter::l_arrayexpr_mfcall_as_arrayexpr(ProgNode*, BaseGDL*)':
  GDLInterpreter.cpp:(.text+0x51e9): undefined reference to `operator delete(void*, unsigned int)'
  GDLInterpreter.cpp:(.text+0x5442): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/GDLInterpreter.cpp.o: In function `GDLInterpreter::l_arrayexpr_mfcall(ProgNode*, BaseGDL*)':
  GDLInterpreter.cpp:(.text+0x5ab2): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/GDLInterpreter.cpp.o:GDLInterpreter.cpp:(.text._ZN5antlr15CharInputBufferD0Ev[_ZN5antlr15CharInputBufferD5Ev]+0x5d): more undefined references to `operator delete(void*, unsigned int)' follow
  src/CMakeFiles/gdl.dir/basic_fun.cpp.o: In function `ForInfoListT<ForLoopInfoT, 32ull>::resize(unsigned long long)':
  basic_fun.cpp:(.text._ZN12ForInfoListTI12ForLoopInfoTLy32EE6resizeEy[_ZN12ForInfoListTI12ForLoopInfoTLy32EE6resizeEy]+0x17e): undefined reference to `operator delete[](void*, unsigned int)'
  src/CMakeFiles/gdl.dir/dcommon.cpp.o: In function `DCommon::~DCommon()':
  dcommon.cpp:(.text+0xf5): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/dcommon.cpp.o: In function `DCommon::~DCommon()':
  dcommon.cpp:(.text+0x154): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/dcommon.cpp.o: In function `DCommonRef::~DCommonRef()':
  dcommon.cpp:(.text+0x3fd): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/dcommon.cpp.o: In function `DCommon::AddVar(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)':
  dcommon.cpp:(.text+0x482): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/dcompiler.cpp.o: In function `DCompiler::ForwardFunction(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)':
  dcompiler.cpp:(.text+0x226): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/dcompiler.cpp.o:dcompiler.cpp:(.text+0x314): more undefined references to `operator delete(void*, unsigned int)' follow
  src/CMakeFiles/gdl.dir/envt.cpp.o: In function `ForInfoListT<ForLoopInfoT, 32ull>::~ForInfoListT()':
  envt.cpp:(.text._ZN12ForInfoListTI12ForLoopInfoTLy32EED2Ev[_ZN12ForInfoListTI12ForLoopInfoTLy32EED5Ev]+0x76): undefined reference to `operator delete[](void*, unsigned int)'
  src/CMakeFiles/gdl.dir/envt.cpp.o: In function `EnvUDT::~EnvUDT()':
  envt.cpp:(.text._ZN6EnvUDTD2Ev[_ZN6EnvUDTD5Ev]+0xca): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/extrat.cpp.o: In function `ExtraT::ResolveExtra(EnvBaseT*)':
  extrat.cpp:(.text+0x1aaa): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/fmtnode.cpp.o: In function `FMTNode::~FMTNode()':
  fmtnode.cpp:(.text+0x44): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/gdlexception.cpp.o: In function `WarnAboutObsoleteRoutine(antlr::ASTRefCount<DNode>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)':
  gdlexception.cpp:(.text+0x1c6f): undefined reference to `operator delete(void*, unsigned int)'
  gdlexception.cpp:(.text+0x1eab): undefined reference to `operator delete(void*, unsigned int)'
  src/CMakeFiles/gdl.dir/gdlxstream.cpp.o:gdlxstream.cpp:(.text._ZN10GDLXStreamD0Ev[_ZN10GDLXStreamD5Ev]+0x1d): more undefined references to `operator delete(void*, unsigned int)' follow

  PR:		219300
  Reported by:	pkg-fallout
  Submitted by:	rakuco

Changes:
  head/science/gnudatalanguage/Makefile