bugGNU Octave - Bugs: bug #48319, Development source build failure...

 
 

bug #48319: Development source build failure related to LONG_DOUBLE_ROUNDING in oct-inttypes.cc

Submitter:  Nir Krakauer <nir_krakauer>
Submitted:  Sun 26 Jun 2016 07:55:19 PM UTC
   
 
Category:  Configuration and Build System Severity:  4 - Important
Priority:  5 - Normal Item Group:  Build Failure
Status:  Fixed Assigned to:  None
Originator Name:  Open/Closed:  * Closed
Release:  * dev Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Fri 22 Jul 2016 05:31:14 PM UTC, comment #15: 

The build problem seems to be fixed so I'm closing this report.

John W. Eaton <jwe>
Group administrator
Mon 11 Jul 2016 07:21:28 PM UTC, comment #14: 

I pushed a followup fix for a build failure on non-x86 systems

http://hg.savannah.gnu.org/hgweb/octave/rev/79ee6df71b51

And then looking into this change and related long double precision changes led me to post http://lists.gnu.org/archive/html/octave-maintainers/2016-07/msg00195.html for comments.

Mike Miller <mtmiller>
Group Member
Sun 10 Jul 2016 11:32:25 PM UTC, comment #13: 

Marking report as "Ready for Test"

Rik <rik5>
Group administrator
Thu 07 Jul 2016 10:42:27 PM UTC, comment #12: 

I checked in this changeset:

  http://hg.savannah.gnu.org/hgweb/octave/rev/d18c63a45070

I don't think using functions here instead of macros will matter too much.  But if it does, then open a new bug report.

John W. Eaton <jwe>
Group administrator
Wed 06 Jul 2016 01:13:03 AM UTC, comment #11: 

Another option would be to just define our own liboctave equivalent to fpucw.h that defines the macros needed to set the rounding mode used here. Basically what jwe pasted inline, but maybe make it a separate internal-use-only header file, that we would maintain independently from (or by updating sporadically from) gnulib.

Mike Miller <mtmiller>
Group Member
Tue 05 Jul 2016 11:47:28 PM UTC, comment #10: 

Mike, if we have the #include "gnulib/...", we should probably also have a FIXME reminding devs that it is policy not to include straight from gnulib.

JWE, would that be OK?  Would it need to be improved before 4.2.0?

Lachlan Andrew <lachlan>
Tue 05 Jul 2016 03:54:16 PM UTC, comment #9: 

I think jwe was referring to #including libgnu/fpucw.h in oct-inttypes.cc instead of pasting the relevant macros like the patch does.

I had a suggestion to define wrapper functions for these instructions, but that would add undesired overhead to these calls which should be very simple and fast.

What if we made it explicit by declaring it as


#include "libgnu/fpucw.h"


to mark it as a gnulib header file being used intentionally. This is not a header file that masks other standard library header files, so it's a different case. That would also make it searchable and identifiable for future maintenance.

Mike Miller <mtmiller>
Group Member
Tue 05 Jul 2016 09:10:05 AM UTC, comment #8: 

In comment #6, JWE sounded concerned that this patch would encourage people to include files from gnulib.  I don't think it would, because it is a copy-paste that most people wouldn't recognise as coming from fpucw.h.

It would be useful to have it pushed, even as a temporary fix, so that people can do clean checkouts in the lead up to 4.2.0, and so that any patches that are needed for oct-inttypes.cc in that process are applied to a common base.

$0.02

Lachlan Andrew <lachlan>
Sat 02 Jul 2016 10:12:14 PM UTC, comment #7: 

I'll leave it unpushed for now.  This bug requires resolution before the 4.2 release.

Rik <rik5>
Group administrator
Sat 02 Jul 2016 07:15:56 PM UTC, comment #6: 

You could push that as a temporary fix, but we need something better.  It's just the same as including fpucw.h.  It doesn't need to be conditional.  But I don't want to include files directly from gnulib, mostly because I don't want people thinking it is OK to do that in other places.

John W. Eaton <jwe>
Group administrator
Sat 02 Jul 2016 07:00:40 PM UTC, comment #5: 

Should jwe's temporary patch from comment #3 be pushed to Mercurial?  Does it need a configure test wrapped around it so it is only used on some platforms?

Rik <rik5>
Group administrator
Wed 29 Jun 2016 05:55:50 PM UTC, comment #4: 

Thanks, I can build it with your patch.

Nir Krakauer <nir_krakauer>
Mon 27 Jun 2016 08:24:34 PM UTC, comment #3: 

As a temporary workaround, I think the attached change to oct-inttypes.cc will allow you to build again.

(file #37603)

John W. Eaton <jwe>
Group administrator
Mon 27 Jun 2016 12:06:40 AM UTC, comment #2: 

My architecture is i386.
Octave 4.0.2 builds without errors on the same system.

Nir Krakauer <nir_krakauer>
Sun 26 Jun 2016 08:22:50 PM UTC, comment #1: 

Hmm, I'm able to build completely on Debian testing/unstable with gcc 5.4 on revision 19cfad4e4112.

I guess that that portion of code is not compiled for me because OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED is not defined for me (SIZEOF_LONG_DOUBLE == 16 on my system).

This is probably due to the recent work to quarantine the libgnu header files from the rest of Octave, but doesn't affect every system because of the conditional on architecture.

Mike Miller <mtmiller>
Group Member
Sun 26 Jun 2016 07:55:19 PM UTC, original submission:  

Following the instructions in etc/HACKING with an up-to-date Debian Unstable system (gcc 5.4.0), "make" fails with the error message:

...

  CXX      liboctave/util/liboctave_util_libutil_la-oct-inttypes.lo
../liboctave/util/oct-inttypes.cc: In static member function ‘static bool octave_int_cmp_op::external_mop(double, int64_t)’:
../liboctave/util/oct-inttypes.cc:113:6: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      DECL_LONG_DOUBLE_ROUNDING \
      ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc:120:32: error: there are no arguments to ‘END_LONG_DOUBLE_ROUNDING’ that depend on a template parameter, so a declaration of ‘END_LONG_DOUBLE_ROUNDING’ must be available [-fpermissive]
      END_LONG_DOUBLE_ROUNDING (); \
                                ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc:120:32: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
      END_LONG_DOUBLE_ROUNDING (); \
                                ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In static member function ‘static bool octave_int_cmp_op::external_mop(int64_t, double)’:
../liboctave/util/oct-inttypes.cc:129:6: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      DECL_LONG_DOUBLE_ROUNDING \
      ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc:136:32: error: there are no arguments to ‘END_LONG_DOUBLE_ROUNDING’ that depend on a template parameter, so a declaration of ‘END_LONG_DOUBLE_ROUNDING’ must be available [-fpermissive]
      END_LONG_DOUBLE_ROUNDING (); \
                                ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In static member function ‘static bool octave_int_cmp_op::external_mop(double, uint64_t)’:
../liboctave/util/oct-inttypes.cc:113:6: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      DECL_LONG_DOUBLE_ROUNDING \
      ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc:120:32: error: there are no arguments to ‘END_LONG_DOUBLE_ROUNDING’ that depend on a template parameter, so a declaration of ‘END_LONG_DOUBLE_ROUNDING’ must be available [-fpermissive]
      END_LONG_DOUBLE_ROUNDING (); \
                                ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In static member function ‘static bool octave_int_cmp_op::external_mop(uint64_t, double)’:
../liboctave/util/oct-inttypes.cc:129:6: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      DECL_LONG_DOUBLE_ROUNDING \
      ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc:136:32: error: there are no arguments to ‘END_LONG_DOUBLE_ROUNDING’ that depend on a template parameter, so a declaration of ‘END_LONG_DOUBLE_ROUNDING’ must be available [-fpermissive]
      END_LONG_DOUBLE_ROUNDING (); \
                                ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In function ‘uint64_t octave_external_uint64_uint64_mul(uint64_t, uint64_t)’:
../liboctave/util/oct-inttypes.cc:164:3: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
   DECL_LONG_DOUBLE_ROUNDING
   ^
../liboctave/util/oct-inttypes.cc:170:29: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
   END_LONG_DOUBLE_ROUNDING ();
                             ^
../liboctave/util/oct-inttypes.cc: In function ‘int64_t octave_external_int64_int64_mul(int64_t, int64_t)’:
../liboctave/util/oct-inttypes.cc:178:3: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
   DECL_LONG_DOUBLE_ROUNDING
   ^
../liboctave/util/oct-inttypes.cc:184:29: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
   END_LONG_DOUBLE_ROUNDING ();
                             ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_int64 external_double_octave_int64_add(double, octave_int64)’:
../liboctave/util/oct-inttypes.cc:201:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:227:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, +, add); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc:207:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:227:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, +, add); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_int64 external_octave_int64_double_add(octave_int64, double)’:
../liboctave/util/oct-inttypes.cc:215:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:227:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, +, add); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc:221:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:227:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, +, add); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_int64 external_double_octave_int64_sub(double, octave_int64)’:
../liboctave/util/oct-inttypes.cc:201:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:228:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, -, sub); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc:207:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:228:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, -, sub); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_int64 external_octave_int64_double_sub(octave_int64, double)’:
../liboctave/util/oct-inttypes.cc:215:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:228:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, -, sub); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc:221:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:228:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, -, sub); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_int64 external_double_octave_int64_mul(double, octave_int64)’:
../liboctave/util/oct-inttypes.cc:201:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:229:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, *, mul); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc:207:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:229:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, *, mul); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_int64 external_octave_int64_double_mul(octave_int64, double)’:
../liboctave/util/oct-inttypes.cc:215:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:229:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, *, mul); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc:221:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:229:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, *, mul); \
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_int64 external_double_octave_int64_div(double, octave_int64)’:
../liboctave/util/oct-inttypes.cc:201:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:230:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, /, div)
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc:207:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:230:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, /, div)
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_int64 external_octave_int64_double_div(octave_int64, double)’:
../liboctave/util/oct-inttypes.cc:215:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:230:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, /, div)
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc:221:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:230:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, /, div)
   ^
../liboctave/util/oct-inttypes.cc:232:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_int64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_uint64 external_double_octave_uint64_add(double, octave_uint64)’:
../liboctave/util/oct-inttypes.cc:201:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:227:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, +, add); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc:207:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:227:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, +, add); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_uint64 external_octave_uint64_double_add(octave_uint64, double)’:
../liboctave/util/oct-inttypes.cc:215:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:227:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, +, add); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc:221:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:227:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, +, add); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_uint64 external_double_octave_uint64_sub(double, octave_uint64)’:
../liboctave/util/oct-inttypes.cc:201:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:228:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, -, sub); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc:207:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:228:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, -, sub); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_uint64 external_octave_uint64_double_sub(octave_uint64, double)’:
../liboctave/util/oct-inttypes.cc:215:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:228:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, -, sub); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc:221:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:228:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, -, sub); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_uint64 external_double_octave_uint64_mul(double, octave_uint64)’:
../liboctave/util/oct-inttypes.cc:201:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:229:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, *, mul); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc:207:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:229:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, *, mul); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_uint64 external_octave_uint64_double_mul(octave_uint64, double)’:
../liboctave/util/oct-inttypes.cc:215:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:229:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, *, mul); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc:221:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:229:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, *, mul); \
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_uint64 external_double_octave_uint64_div(double, octave_uint64)’:
../liboctave/util/oct-inttypes.cc:201:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:230:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, /, div)
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc:207:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:230:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, /, div)
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc: In function ‘octave_uint64 external_octave_uint64_double_div(octave_uint64, double)’:
../liboctave/util/oct-inttypes.cc:215:5: error: ‘DECL_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     DECL_LONG_DOUBLE_ROUNDING \
     ^
../liboctave/util/oct-inttypes.cc:230:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, /, div)
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc:221:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
     END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:230:3: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OP’
   OCTAVE_LONG_DOUBLE_OP (T, /, div)
   ^
../liboctave/util/oct-inttypes.cc:233:1: note: in expansion of macro ‘OCTAVE_LONG_DOUBLE_OPS’
 OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, int64_t) [with xop = octave_int_cmp_op::lt; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(int64_t, double) [with xop = octave_int_cmp_op::lt; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, int64_t) [with xop = octave_int_cmp_op::le; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(int64_t, double) [with xop = octave_int_cmp_op::le; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, int64_t) [with xop = octave_int_cmp_op::gt; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(int64_t, double) [with xop = octave_int_cmp_op::gt; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, int64_t) [with xop = octave_int_cmp_op::ge; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(int64_t, double) [with xop = octave_int_cmp_op::ge; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, int64_t) [with xop = octave_int_cmp_op::eq; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(int64_t, double) [with xop = octave_int_cmp_op::eq; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, int64_t) [with xop = octave_int_cmp_op::ne; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(int64_t, double) [with xop = octave_int_cmp_op::ne; int64_t = long long int]’:
../liboctave/util/oct-inttypes.cc:158:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:141:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, uint64_t) [with xop = octave_int_cmp_op::lt; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(uint64_t, double) [with xop = octave_int_cmp_op::lt; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, uint64_t) [with xop = octave_int_cmp_op::le; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(uint64_t, double) [with xop = octave_int_cmp_op::le; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, uint64_t) [with xop = octave_int_cmp_op::gt; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(uint64_t, double) [with xop = octave_int_cmp_op::gt; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, uint64_t) [with xop = octave_int_cmp_op::ge; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(uint64_t, double) [with xop = octave_int_cmp_op::ge; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, uint64_t) [with xop = octave_int_cmp_op::eq; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(uint64_t, double) [with xop = octave_int_cmp_op::eq; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(double, uint64_t) [with xop = octave_int_cmp_op::ne; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:120:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
../liboctave/util/oct-inttypes.cc: In instantiation of ‘static bool octave_int_cmp_op::external_mop(uint64_t, double) [with xop = octave_int_cmp_op::ne; uint64_t = long long unsigned int]’:
../liboctave/util/oct-inttypes.cc:159:1:   required from here
../liboctave/util/oct-inttypes.cc:136:31: error: ‘END_LONG_DOUBLE_ROUNDING’ was not declared in this scope
      END_LONG_DOUBLE_ROUNDING (); \
                               ^
../liboctave/util/oct-inttypes.cc:142:1: note: in expansion of macro ‘DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES’
 DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
 ^
Makefile:23157: recipe for target 'liboctave/util/liboctave_util_libutil_la-oct-inttypes.lo' failed
make[2]: *** [liboctave/util/liboctave_util_libutil_la-oct-inttypes.lo] Error 1
make[2]: Leaving directory 'octave/.build'
Makefile:25953: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory 'octave/.build'
Makefile:9808: recipe for target 'all' failed
make: *** [all] Error 2


Nir Krakauer <nir_krakauer>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #37603:  inttypes-patch.txt added by jwe (1KiB - text/plain)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by lachlan (Posted a comment)
  • -email is unavailable- added by rik5 (Updated the item)
  • -email is unavailable- added by jwe (Updated the item)
  • -email is unavailable- added by bumi
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by nir_krakauer (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 7 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-07-22 jwe StatusReady For Test Fixed
        Open/ClosedOpen Closed
    2016-07-10 rik5 StatusIn Progress Ready For Test
    2016-07-02 rik5 StatusNone In Progress
    2016-07-01 rik5 Severity3 - Normal 4 - Important
    2016-06-27 jwe Attached File- Added inttypes-patch.txt, #37603
    2016-06-27 bumi Carbon-Copy- Added bumi

    Back to the top

    Powered by Savane 3.13-4448.
    Corresponding source code