compile error on Kubuntu 16.04

More
31 Mar 2016 15:04 #72479 by tomate
Hi,
First, I would like to sincerely thank all LinuxCNC contributors for this awesome software.
I installed Kubuntu 16.04 a couple of days ago, and gave a try at building LinuxCNC 2.7.4 on a self-compiled RT-PREEMPT Kernel (4.1.20-rt23).
Unfortunately, I ran into errors :
Linking classicladder
Compiling hal/utils/meter.c
Linking halmeter
Compiling hal/utils/scope.c
Compiling hal/utils/scope_horiz.c
Compiling hal/utils/scope_vert.c
Compiling hal/utils/scope_trig.c
Compiling hal/utils/scope_disp.c
Compiling hal/utils/scope_files.c
Linking halscope
Compiling emc/rs274ngc/interp_read.cc
In file included from emc/rs274ngc/interp_read.cc:29:0:
emc/rs274ngc/interp_read.cc: In member function ‘int Interp::read_real_value(char*, int*, double*, double*)’:
emc/rs274ngc/interp_read.cc:2704:25: error: ‘isnan’ was not declared in this scope
   CHKS(isnan(*double_ptr),
                         ^
emc/rs274ngc/interp_internal.hh:879:13: note: in definition of macro ‘CHKS’
         if (bad) {                                             \
             ^
emc/rs274ngc/interp_read.cc:2704:25: note: suggested alternatives:
   CHKS(isnan(*double_ptr),
                         ^
emc/rs274ngc/interp_internal.hh:879:13: note: in definition of macro ‘CHKS’
         if (bad) {                                             \
             ^
In file included from /usr/include/c++/5/random:38:0,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/boost/function/detail/prologue.hpp:13,
                 from /usr/include/boost/function/function_template.hpp:13,
                 from /usr/include/boost/function/detail/maybe_include.hpp:13,
                 from /usr/include/boost/function/function0.hpp:11,
                 from /usr/include/boost/python/errors.hpp:13,
                 from /usr/include/boost/python/handle.hpp:11,
                 from /usr/include/boost/python/args_fwd.hpp:10,
                 from /usr/include/boost/python/args.hpp:10,
                 from /usr/include/boost/python.hpp:11,
                 from emc/rs274ngc/interp_read.cc:17:
/usr/include/c++/5/cmath:641:5: note:   ‘std::isnan’
     isnan(_Tp __x)
     ^
In file included from /usr/include/boost/lexical_cast/detail/inf_nan.hpp:35:0,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp:64,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:53,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:34,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /usr/include/boost/python/operators.hpp:19,
                 from /usr/include/boost/python.hpp:50,
                 from emc/rs274ngc/interp_read.cc:17:
/usr/include/boost/math/special_functions/fpclassify.hpp:579:14: note:   ‘boost::math::isnan’
 inline bool (isnan)(T x)
              ^
In file included from emc/rs274ngc/interp_read.cc:29:0:
emc/rs274ngc/interp_read.cc:2706:25: error: ‘isinf’ was not declared in this scope
   CHKS(isinf(*double_ptr),
                         ^
emc/rs274ngc/interp_internal.hh:879:13: note: in definition of macro ‘CHKS’
         if (bad) {                                             \
             ^
emc/rs274ngc/interp_read.cc:2706:25: note: suggested alternatives:
   CHKS(isinf(*double_ptr),
                         ^
emc/rs274ngc/interp_internal.hh:879:13: note: in definition of macro ‘CHKS’
         if (bad) {                                             \
             ^
In file included from /usr/include/c++/5/random:38:0,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/boost/function/detail/prologue.hpp:13,
                 from /usr/include/boost/function/function_template.hpp:13,
                 from /usr/include/boost/function/detail/maybe_include.hpp:13,
                 from /usr/include/boost/function/function0.hpp:11,
                 from /usr/include/boost/python/errors.hpp:13,
                 from /usr/include/boost/python/handle.hpp:11,
                 from /usr/include/boost/python/args_fwd.hpp:10,
                 from /usr/include/boost/python/args.hpp:10,
                 from /usr/include/boost/python.hpp:11,
                 from emc/rs274ngc/interp_read.cc:17:
/usr/include/c++/5/cmath:621:5: note:   ‘std::isinf’
     isinf(_Tp __x)
     ^
In file included from /usr/include/boost/lexical_cast/detail/inf_nan.hpp:35:0,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp:64,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:53,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:34,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /usr/include/boost/python/operators.hpp:19,
                 from /usr/include/boost/python.hpp:50,
                 from emc/rs274ngc/interp_read.cc:17:
/usr/include/boost/math/special_functions/fpclassify.hpp:496:14: note:   ‘boost::math::isinf’
 inline bool (isinf)(T x)
              ^
Makefile:216: recipe for target 'objects/emc/rs274ngc/interp_read.o' failed
make: *** [objects/emc/rs274ngc/interp_read.o] Error 1
Would someone have a clue on how to fix this ?
Thanks,
Chris

Please Log in or Create an account to join the conversation.

More
31 Mar 2016 20:34 - 31 Mar 2016 20:42 #72491 by jepler
This appears to be related: sourceware.org/bugzilla/show_bug.cgi?id=19439#c12

that source file includes <math.h> and uses unqualified isnan. adding an inclusion of <cmath> and using std::isnan instead may resolve the problem.

If you get it working, please submit a patch.
Last edit: 31 Mar 2016 20:42 by jepler.
The following user(s) said Thank You: tomate

Please Log in or Create an account to join the conversation.

More
31 Mar 2016 21:01 #72492 by tomate
So, this may be a glibc problem.
i'll try to fix it tomorrow, and inform you about the result.
Thanks a lot !

Please Log in or Create an account to join the conversation.

More
01 Apr 2016 11:53 #72522 by tomate
Hi jepler,
Your fix made the building process successful. Thanks a lot.
When running Axis, I got an error :
'utf8' codec can't decode byte ...
Googling this gave me the fix.
So, the attached patch (I'm not a developer, so I hope it is good ) makes LinuxCNC 2.7.4 compile on Kubuntu 16.04.
Chris

File Attachment:

File Name: Kubuntu1604.patch
File Size:2 KB
Attachments:

Please Log in or Create an account to join the conversation.

More
01 Apr 2016 12:26 #72523 by jepler
Thanks. Both changes will be a part of a future linuxcnc 2.7.x release.
The following user(s) said Thank You: tomate

Please Log in or Create an account to join the conversation.

More
04 Apr 2016 21:25 #72742 by halbritt
I encountered similar errors compiling against a 4.4.6 PREEMPT_RT kernel in taskintf.cc. Adding the std:: namespace to the function allows it to compile properly.

Patch attached.

File Attachment:

File Name: taskintf.patch
File Size:5 KB
Attachments:

Please Log in or Create an account to join the conversation.

More
06 Apr 2016 09:34 #72831 by tomate
Hi,
Thanks for the patch.
I don't know why I didn't get this problem when compiling LinuxCNC myself ?
BTW, does your Preempt kernel work good for you ?
I have compiled several preempt kernels this past year, and always get some desktop freezes ( 10 to 15 seconds duration ) happening a couple of times in an hour.
All my machining work well, but that's pretty annoying.
I am not at all a computer expert, so I am wondering if I do something wrong with my kernel config.
Would you post your kernel config, please, so that I can give a try at it ?
Thanks,
Chris

Please Log in or Create an account to join the conversation.

More
06 Apr 2016 17:10 - 06 Apr 2016 17:10 #72857 by cncnoob1979
tomate,

What graphics are you using? Intel HD?

If so I was experiencing this with a Kepler Arch CPU. It is a known bug with the accelerated graphics accelerator. UXA vs SNA.

wiki.archlinux.org/index.php/Intel_graphics#SNA_issues

I experienced this with Linux Mint LMDE2 and Jessie. I decided to go with Linux Mint 17.3 Mate instead and not use the Intel Drivers Changing from SNA to UXA did not help with my issue however.
Last edit: 06 Apr 2016 17:10 by cncnoob1979.

Please Log in or Create an account to join the conversation.

More
06 Apr 2016 20:27 #72871 by tomate
Hi,
No, i'm using the radeonsi driver ( radeon HD 7750 ).
But, indeed, i suspect these freezes to be related to graphic driver since they seem to happen especially (but not only) when I hover an app in the taskbar and the thumbnail appears ...
Chris

Please Log in or Create an account to join the conversation.

More
07 Apr 2016 02:36 #72891 by halbritt

Hi,
Thanks for the patch.
I don't know why I didn't get this problem when compiling LinuxCNC myself ?
BTW, does your Preempt kernel work good for you ?
I have compiled several preempt kernels this past year, and always get some desktop freezes ( 10 to 15 seconds duration ) happening a couple of times in an hour.
All my machining work well, but that's pretty annoying.
I am not at all a computer expert, so I am wondering if I do something wrong with my kernel config.
Would you post your kernel config, please, so that I can give a try at it ?
Thanks,
Chris


There's a couple of reasons the errors may have arisen. It could the version of the c library that I'm using or it could be that cmath was included before math.h. Either way, the correct implementation explicitly defines the namespace.

As for how well preempt_rt is working, I've gotten jitter down to around 40 and 60 microseconds for servo and base thread respectively using isolcpu. This is on a pretty beefy server I had lying around. I've been messing around with the bios settings and can't seem to improve on that.

I've ordered a low power industrial computer that might work okay. I'm going to try that. In either case, I don't plan to do any soft-stepping. If I did, I'd probably try RTAI.

I might do that just for giggles anyway.

Please Log in or Create an account to join the conversation.

Time to create page: 0.087 seconds
Powered by Kunena Forum