Issue 61 in casacore: Build fails with gcc 4.8

1 view
Skip to first unread message

casa...@googlecode.com

unread,
Sep 13, 2013, 10:34:59 AM9/13/13
to casacor...@googlegroups.com
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium Milestone-Release1.4

New issue 61 by jdswinb...@gmail.com: Build fails with gcc 4.8
http://code.google.com/p/casacore/issues/detail?id=61

I have:

$ g++ --version
g++ (Debian 4.8.1-10) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

My build of the current trunk (r21389) fails with:

casacore/scimath/Functionals/SerialHelper.cc:69:52: error: declaration of
‘void casa::getArrayVal(V&, int, const casa::Record&, const casa::String&,
casa::uInt) [with V = bool; casa::uInt = unsigned int]’ has a different
exception specifier
const String& name, uInt
index)WHATEVER_SUN_EXCEPTSPEC(InvalidSerializationError)

(See attached log)

WHATEVER_SUN_EXCEPTSPEC is defined (in casa/aipsdef.h) to be nothing,
except on Sun or Cray XT3 machines. It's not obvious why: since
getArrayVal() is defined (at scimath/Functionals/SerialHelper.h) with an
exception specifier, I'm not sure why we'd want to hide it in
SerialHelper.cc.

For what it's worth, the code builds fine on GCC 4.7; with clang 3.3 it
raises warnings but still compiles.

Attachments:
casacore_r21389_gcc48.log 12.7 KB

--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

casa...@googlecode.com

unread,
Sep 17, 2013, 1:54:48 AM9/17/13
to casacor...@googlegroups.com
Updates:
Status: Fixed
Owner: gervandi...@gmail.com

Comment #1 on issue 61 by gervandi...@gmail.com: Build fails with gcc 4.8
http://code.google.com/p/casacore/issues/detail?id=61

This has been fixed in the branch nrao-nov12 which will become the trunk
any time soon.
You could try to build this branch (which should be completely free of
warnings).

Ger

casa...@googlecode.com

unread,
Dec 20, 2013, 10:24:07 AM12/20/13
to casacor...@googlegroups.com

Comment #2 on issue 61 by Muhammad...@gmail.com: Build fails with gcc 4.8
http://code.google.com/p/casacore/issues/detail?id=61

Could anyone please tell me how I can get the nrao-nov12 branch?

casa...@googlecode.com

unread,
Dec 20, 2013, 10:38:31 AM12/20/13
to casacor...@googlegroups.com

Comment #3 on issue 61 by jdswinb...@gmail.com: Build fails with gcc 4.8
http://code.google.com/p/casacore/issues/detail?id=61

You can use the instructions for checking out the trunk from
http://code.google.com/p/casacore/source/checkout with a slight
modification:

svn checkout http://casacore.googlecode.com/svn/branches/nrao-nov12/
casacore-read-only

casa...@googlecode.com

unread,
Dec 20, 2013, 1:44:31 PM12/20/13
to casacor...@googlegroups.com

Comment #4 on issue 61 by Muhammad...@gmail.com: Build fails with gcc 4.8
http://code.google.com/p/casacore/issues/detail?id=61

I am trying to build this in Ubuntu 13.10 and getting the error (at 32%),

In file included from
/home/md/Softs/casacore-read-only/tables/Tables/RecordGram.cc:39:0:
/home/md/Softs/casacore-read-only/tables/Tables/TableParse.h: In member
function ‘std::vector<casa::CountedPtr<casa::TableExprGroupFuncSet> >
casa::TableParseSelect::doGroupByAggrSingleKey(const
std::vector<casa::TableExprAggrNode*>&)’:
/home/md/Softs/casacore-read-only/tables/Tables/TableParse.h:663:17: error:
‘numeric_limits’ is not a member of ‘std’
T lastKey = std::numeric_limits<Double>::max();
^
/home/md/Softs/casacore-read-only/tables/Tables/TableParse.h:663:43: error:
expected primary-expression before ‘>’ token
T lastKey = std::numeric_limits<Double>::max();
^
/home/md/Softs/casacore-read-only/tables/Tables/TableParse.h:663:44: error:
‘::max’ has not been declared
T lastKey = std::numeric_limits<Double>::max();
^
/home/md/Softs/casacore-read-only/tables/Tables/TableParse.h:663:44: note:
suggested alternatives:
In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0,
from /usr/include/c++/4.8/string:40,
from
/home/md/Softs/casacore-read-only/casa/BasicSL/String.h:35,
from
/home/md/Softs/casacore-read-only/tables/Tables/TableInfo.h:33,
from
/home/md/Softs/casacore-read-only/tables/Tables/BaseTable.h:34,
from
/home/md/Softs/casacore-read-only/tables/Tables/Table.h:34,
from
/home/md/Softs/casacore-read-only/tables/Tables/ExprNodeRep.h:33,
from
/home/md/Softs/casacore-read-only/tables/Tables/ExprNode.h:33,
from
/home/md/Softs/casacore-read-only/tables/Tables/RecordGram.cc:34:
/usr/include/c++/4.8/bits/stl_algobase.h:260:5: note: ‘std::max’
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
In file included from
/home/md/Softs/casacore-read-only/tables/Tables/RecordGram.cc:34:0:
/home/md/Softs/casacore-read-only/tables/Tables/ExprNode.h:1688:22: note:
‘casa::max’
inline TableExprNode max (const TableExprNode& node)
^
make[2]: *** [tables/CMakeFiles/casa_tables.dir/Tables/RecordGram.cc.o]
Error 1
make[1]: *** [tables/CMakeFiles/casa_tables.dir/all] Error 2

casa...@googlecode.com

unread,
Dec 20, 2013, 2:39:58 PM12/20/13
to casacor...@googlegroups.com

Comment #5 on issue 61 by jdswinb...@gmail.com: Build fails with gcc 4.8
http://code.google.com/p/casacore/issues/detail?id=61

Yes, I see the same error. The fix is easy: edit
/home/md/Softs/casacore-read-only/tables/Tables/TableParse.h and add the
following at line 43 (ie, on the line immediately after #include <vector>):

#include <limits>

Note that the nrao-nov12 branch isn't a released version of casacore, so
it's understandable that errors will creep in. That said, this does mean
that neither the latest release, nor the trunk, nor this branch are
buildable as-is with GCC 4.8 from March of this year, which is unfortunate.
Reply all
Reply to author
Forward
0 new messages