compile error on Kubuntu 16.04

More
10 years 7 months ago #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 :
Code:
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 to join the conversation.

  • jepler
  • New Member
  • New Member
More
10 years 6 months ago #72491 by jepler
Replied by jepler on topic compile error on Kubuntu 16.04
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.

Please Log in to join the conversation.

More
10 years 6 months ago #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 to join the conversation.

More
10 years 6 months ago #72522 by tomate
Hi jepler,
Your fix made the building process successful. Thanks a lot.
When running Axis, I got an error :
Code:
'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

Attachment not found

Please Log in to join the conversation.

  • jepler
  • New Member
  • New Member
More
10 years 6 months ago #72523 by jepler
Replied by jepler on topic compile error on Kubuntu 16.04
Thanks. Both changes will be a part of a future linuxcnc 2.7.x release.

Please Log in to join the conversation.

More
10 years 6 months ago #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.

Attachment not found

Please Log in to join the conversation.

More
10 years 6 months ago #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 to join the conversation.

More
10 years 6 months ago #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.

Please Log in to join the conversation.

More
10 years 6 months ago #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 to join the conversation.

More
10 years 6 months ago #72891 by halbritt

tomate wrote: 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 to join the conversation.

Time to create page: 0.066 seconds
Powered by Kunena Forum