octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: build errors: "type of ‘std::copysign’ is unknown"


From: Michael Godfrey
Subject: Re: build errors: "type of ‘std::copysign’ is unknown"
Date: Mon, 6 Jun 2016 20:31:19 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0



On 06/06/2016 08:03 PM, John W. Eaton wrote:
This is high on my list of things to work on, but I don't have a solution yet.  I'm still trying to decide what the best path forward is.

jwe


On 06/06/2016 02:35 PM, Mike Miller wrote:
On Mon, Jun 06, 2016 at 11:19:36 -0700, Colin Macdonald wrote:

I updated my system to Fedora 24; when rebuilding Octave dev I get the
following errors (any many more for other math.h functions).

Anyone recognize this?

Basically, Octave doesn't build with gcc 6 currently.

There have been some threads about this but I don't think any decisions
about what to fix or progress has been made yet.

My understanding is

  * Octave has for some time used gnulib to replace both system and math
    library functions, and has been designed under the assumption that
    `#include <cmath>` would make functions such as `gnulib::floor`
    available to C++ modules

  * Gcc 6 has been made more strict, such that `#include <cmath>`
    includes the *system* math.h rather than any other math.h that may
    appear in the include search path

  * Gnulib has support for C++ to the extent that they will wrap their
    C library replacement functions in a namespace of the user's
    choosing, but they do not (to my knowledge) provide replacements for
    any standard C++ headers or functions

This may end up leaving Octave in the position that we have to decide to
use only C library header files when expicitly using the gnulib
replacement functions, and not use gnulib functions at the same time as
we are using the C++ standard library.

I'm sure help on fixing this would be appreciated. Otherwise you might
want to keep a gcc 5 handy for building Octave.

Some starting points:

http://lists.gnu.org/archive/html/octave-maintainers/2016-02/msg00164.html
https://lists.fedoraproject.org/archives/list/address@hidden/thread/74YWUCBM7KR2FCACH3WQNTX75WB76JSD
https://savannah.gnu.org/bugs/?47073


John,

Your patch octave-4.0.0-cxx11.patch applies for current dev system (ignoring HUNK #1 fails)
and causes build on FC24 to get a lot further. i.e. to:CXX      libinterp/corefcn/libinterp_corefcn_libcorefcn_la-mex.lo
So, will your suggestion of applying it to more #includes should do it.

Of course, if you have a better way...
Michael



reply via email to

[Prev in Thread] Current Thread [Next in Thread]