make fails

John Ralls jralls at ceridwen.us
Sun Dec 7 14:52:25 EST 2014


> On Dec 6, 2014, at 4:05 PM, Alex Aycinena <alex.aycinena at gmail.com> wrote:
> 
> John,
> 
> I get the following error on make with your latest push on Fedora 20 and 19:
> 
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp: In member function 'GncInt128 GncInt128::gcd(GncInt128) const':
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:157:24: error: suggest parentheses around arithmetic in operand of '^' [-Werror=parentheses]
>          while (t && (t & one ^ one)) t >>= 1;  //B3 & B4
>                         ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp: In member function 'GncInt128& GncInt128::operator*=(const GncInt128&)':
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:448:21: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>      carry = rv[1] > scratch ? 1 : 0;
>                      ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:453:21: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>      carry = rv[2] > scratch ? 1 : 0;
>                      ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:455:28: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>      carry += scratch > rv[2] ? 1 : 0;
>                             ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:459:21: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>      carry = rv[3] > scratch ? 1 : 0;
>                      ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:461:28: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>      carry += scratch > rv[3] ? 1 : 0;
>                             ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:463:22: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>      carry += rv[3] > scratch ? 1 : 0;
>                       ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp: In function 'void {anonymous}::div_multi_leg(uint64_t*, size_t, uint64_t*, size_t, GncInt128&, GncInt128&)':
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:498:26: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>      for (auto i = 0; i < m; ++i)
>                           ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:515:26: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>      for (auto i = 0; i < n; ++i)
>                           ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:534:23: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>          while (qhat > sublegmask ||
>                        ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:535:25: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>                 (rhat <= sublegmask &&
>                          ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:543:30: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>          for (auto k = 0; k < n; ++k) //D4
>                               ^
> /home/gnucash-dev/gitcheckouts/gnucash/src/libqof/qof/gnc-int128.cpp:569:34: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
>              for (auto k = 0; k < n; ++k)
>                                   ^
> At global scope:
> cc1plus: error: unrecognized command line option "-Wno-deprecated-register" [-Werror]
> cc1plus: all warnings being treated as errors

Alex,

Thanks for the heads up. I’ve pushed a fix.

It still won’t build on F18 or Debian Wheezy. There’s a problem with GCC 4.7, used in both, such that it doesn’t recognize the C99 standard sized-integer macros, e.g. UINT64_MAX, and the work-arounds I’ve found so far don’t.

Regards,
John Ralls




More information about the gnucash-devel mailing list