octave-maintainers
[Top][All Lists]
Advanced

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

RE: MXE compile and popen2


From: JohnD
Subject: RE: MXE compile and popen2
Date: Fri, 20 May 2016 16:29:39 -0400

 

 

From: JohnD [mailto:address@hidden
Sent: Friday, May 20, 2016 4:04 PM
To: 'Rik'
Cc: 'Octave Maintainers List'
Subject: RE: MXE compile and popen2

 

 

 

From: Rik [mailto:address@hidden]
Sent: Friday, May 20, 2016 12:33 PM
To: John D
Cc: address@hidden
Subject: Re: MXE compile and popen2

 

On 05/20/2016 07:01 AM, address@hidden wrote:
> Subject:

> mingw cross complile fails for popen

> From:

> "JohnD" <address@hidden>

> Date:

> 05/20/2016 07:01 AM

> To:

> "'Octave Maintainers List'" <address@hidden>

> List-Post:

> <mailto:address@hidden>

> Precedence:

> list

> MIME-Version:

> 1.0

> Message-ID:

> <address@hidden>

> Content-Type:

> multipart/alternative; boundary="----=_NextPart_000_0161_01D1B27E.949AA040"

> Message:

> 6

> 

> Not sure it its just me, but when cross compiling dev

> 

> 

> hg heads

> 

> changeset:   21751:b571fc85953f

> 

> bookmark:    @

> 

> tag:         tip

> 

> user:        Rik <address@hidden>

> 

> date:        Thu May 19 18:48:52 2016 -0700

> 

> summary:     maint: Use two spaces after period to indicate sentence break.

> 

> 

> 

> In file included from /home/johnd/mxe-octave/w32/tmp-default-octave/octave-4.1.0+/libinterp/corefcn/sysdep.h:33:0,

> 

>                  from /home/johnd/mxe-octave/w32/tmp-default-octave/octave-4.1.0+/libinterp/corefcn/oct-procbuf.cc:38:

> 

> /home/johnd/mxe-octave/w32/tmp-default-octave/octave-4.1.0+/liboctave/system/lo-sysdep.h:59:41: error: unable to deduce 'const auto' from 'octave::sys::popen2'

> 

> const auto octave_popen2 = octave::sys::popen2;

> 

>                                          ^

> 

> /home/johnd/mxe-octave/w32/tmp-default-octave/octave-4.1.0+/liboctave/system/lo-sysdep.h:59:12: warning: 'octave_popen2' defined but not used [-Wunused-variable]

> 

> 

> /home/johnd/mxe-octave/w32/tmp-default-octave/octave-4.1.0+/libinterp/corefcn/oct-procbuf.cc:52:24: warning: 'octave_procbuf_list' defined but not used [-Wunused-variable]

> 

> static octave_procbuf *octave_procbuf_list = 0;

> 

>                         ^

> 

> Makefile:17184: recipe for target 'libinterp/corefcn/libinterp_corefcn_libcorefcn_la-oct-procbuf.lo' failed

> 

> make[4]: *** [libinterp/corefcn/libinterp_corefcn_libcorefcn_la-oct-procbuf.lo] Error 1

5/20/16

John,

I can confirm this too.  The code for lo-sysdep.h is

-- lo-sysdep.h --
namespace octave
{
  namespace sys
  {
    extern std::string getcwd (void);

    extern int chdir (const std::string&);

#if defined (__WIN32__) && ! defined (__CYGWIN__)
    extern pid_t popen2 (const std::string&, const string_vector&,
                         bool, int *, std::string&);
#endif
  }
}

#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS)

OCTAVE_DEPRECATED ("use 'octave::sys::getcwd' instead")
const auto octave_getcwd = octave::sys::getcwd;

OCTAVE_DEPRECATED ("use 'octave::sys::chdir' instead")
const auto octave_chdir = octave::sys::chdir;

#if defined (__WIN32__) && ! defined (__CYGWIN__)
OCTAVE_DEPRECATED ("use 'octave::sys::popen2' instead")
const auto octave_popen2 = octave::sys::popen2;
#endif

#endif
-- END lo-sysdep.h

The code path that is failing is protected by #if blocks on __WIN32__ so it has probably not been exercised or tested before the MXE compile.

--Rik

Using const auto octave_popen2 = &octave::sys::popen2;  (note the ampersand) appears to be compiling ok. Not tested yet for it runs though.

 

I will take that back – didn’t compile


reply via email to

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