Using pow(base,exponent) in a custom component
And here is the "vomit":component powtest;
license "GPL"; // indicates GPL v2 or later
pin in float x_in;
pin out float z_out;
function _;
;;
#include <rtapi_math.h>
z_out = pow(x_in,3);
My next step is to try to reproduce the error on another PC with the current image of LinuxCNC to determine if this is a bug which has already been fixed.$ halcompile --compile powtest.comp
make KBUILD_EXTRA_SYMBOLS=/usr/realtime-3.4-9-rtai-686-pae/modules/linuxcnc/Module.symvers -C /usr/src/linux-headers-3.4-9-rtai-686-pae SUBDIRS=`pwd` CC=gcc V=0 modules
make[1]: Entering directory `/usr/src/linux-headers-3.4-9-rtai-686-pae'
CC [M] /tmp/tmpyFUQgz/powtest.o
In file included from powtest.comp:11:0:
/usr/include/linuxcnc/rtapi_math.h: In function ‘_’:
/usr/include/linuxcnc/rtapi_math.h:51:24: error: nested function ‘atan’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math.h:51:24: error: static declaration of ‘atan’ follows non-static declaration
/usr/include/linuxcnc/rtapi_math.h:28:15: note: previous declaration of ‘atan’ was here
/usr/include/linuxcnc/rtapi_math.h:55:24: error: nested function ‘asin’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math.h:55:24: error: static declaration of ‘asin’ follows non-static declaration
/usr/include/linuxcnc/rtapi_math.h:30:15: note: previous declaration of ‘asin’ was here
/usr/include/linuxcnc/rtapi_math.h:59:24: error: nested function ‘acos’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math.h:59:24: error: static declaration of ‘acos’ follows non-static declaration
/usr/include/linuxcnc/rtapi_math.h:31:15: note: previous declaration of ‘acos’ was here
/usr/include/linuxcnc/rtapi_math.h:63:24: error: nested function ‘fmax’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math.h:63:24: error: static declaration of ‘fmax’ follows non-static declaration
/usr/include/linuxcnc/rtapi_math.h:34:15: note: previous declaration of ‘fmax’ was here
/usr/include/linuxcnc/rtapi_math.h:66:24: error: nested function ‘fmin’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math.h:66:24: error: static declaration of ‘fmin’ follows non-static declaration
/usr/include/linuxcnc/rtapi_math.h:33:15: note: previous declaration of ‘fmin’ was here
In file included from /usr/include/linuxcnc/rtapi_math.h:71:0,
from powtest.comp:11:
/usr/include/linuxcnc/rtapi_math_i386.h:11:1: error: nested function ‘sin’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math_i386.h:11:1: error: static declaration of ‘sin’ follows non-static declaration
In file included from powtest.comp:11:0:
/usr/include/linuxcnc/rtapi_math.h:23:15: note: previous declaration of ‘sin’ was here
In file included from /usr/include/linuxcnc/rtapi_math.h:71:0,
from powtest.comp:11:
/usr/include/linuxcnc/rtapi_math_i386.h:12:1: error: nested function ‘cos’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math_i386.h:12:1: error: static declaration of ‘cos’ follows non-static declaration
In file included from powtest.comp:11:0:
/usr/include/linuxcnc/rtapi_math.h:24:15: note: previous declaration of ‘cos’ was here
In file included from /usr/include/linuxcnc/rtapi_math.h:71:0,
from powtest.comp:11:
/usr/include/linuxcnc/rtapi_math_i386.h:13:1: error: nested function ‘fabs’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math_i386.h:13:1: error: static declaration of ‘fabs’ follows non-static declaration
In file included from powtest.comp:11:0:
/usr/include/linuxcnc/rtapi_math.h:27:15: note: previous declaration of ‘fabs’ was here
In file included from /usr/include/linuxcnc/rtapi_math.h:71:0,
from powtest.comp:11:
/usr/include/linuxcnc/rtapi_math_i386.h:14:1: error: nested function ‘sqrt’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math_i386.h:14:1: error: static declaration of ‘sqrt’ follows non-static declaration
In file included from powtest.comp:11:0:
/usr/include/linuxcnc/rtapi_math.h:26:15: note: previous declaration of ‘sqrt’ was here
In file included from /usr/include/linuxcnc/rtapi_math.h:71:0,
from powtest.comp:11:
/usr/include/linuxcnc/rtapi_math_i386.h:16:24: error: nested function ‘tan’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math_i386.h:16:24: error: static declaration of ‘tan’ follows non-static declaration
In file included from powtest.comp:11:0:
/usr/include/linuxcnc/rtapi_math.h:25:15: note: previous declaration of ‘tan’ was here
In file included from /usr/include/linuxcnc/rtapi_math.h:71:0,
from powtest.comp:11:
/usr/include/linuxcnc/rtapi_math_i386.h:23:24: error: nested function ‘atan2’ declared ‘extern’
/usr/include/linuxcnc/rtapi_math_i386.h:23:24: error: static declaration of ‘atan2’ follows non-static declaration
In file included from powtest.comp:11:0:
/usr/include/linuxcnc/rtapi_math.h:29:15: note: previous declaration of ‘atan2’ was here
make[4]: *** [/tmp/tmpyFUQgz/powtest.o] Error 1
make[3]: *** [_module_/tmp/tmpyFUQgz] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.4-9-rtai-686-pae'
make: *** [modules] Error 2
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
- tommylight
- Online
- Moderator
- Posts: 19198
- Thank you received: 6436
32BIT is quite old, so maybe that?
Please Log in or Create an account to join the conversation.