Open
Description
F´ Version | v3.6.1 |
Affected Component | FPP autocoders |
Problem Description
I'm using F Prime on a platform that doesn't have support for 64-bit floats, so the F64 type is not defined. This has been working fine, but I updated to the latest devel
commit earlier today, and I encountered this error while compiling autocode:
[build] [321/768] Building CXX object F-Prime/Svc/CmdDispatcher/CMakeFiles/Svc_CmdDispatcher.dir/CommandDispatcherComponentAc.cpp.obj
[build] FAILED: F-Prime/Svc/CmdDispatcher/CMakeFiles/Svc_CmdDispatcher.dir/CommandDispatcherComponentAc.cpp.obj
[build] /usr/local/bin/clang-19 -DFW_BAREMETAL_SCHEDULER=0 -I/workspaces/[...]/cmake/platform/types -I/workspaces/[...]/lib/fprime -I/workspaces/[...]/config -I/workspaces/[...] -I/workspaces/[...]/build-fprime-automatic-[...] -I/workspaces/[...]/build-fprime-automatic-[...]/F-Prime -I/workspaces/[...]/build-fprime-automatic-[...]/config -I/workspaces/[...] -I/workspaces/[...]/lib/fprime-vorago [... other flags ...] -std=c++14 -DASSERT_RELATIVE_PATH='"build-fprime-automatic-[...]/F-Prime/Svc/CmdDispatcher/CommandDispatcherComponentAc.cpp"' -MD -MT F-Prime/Svc/CmdDispatcher/CMakeFiles/Svc_CmdDispatcher.dir/CommandDispatcherComponentAc.cpp.obj -MF F-Prime/Svc/CmdDispatcher/CMakeFiles/Svc_CmdDispatcher.dir/CommandDispatcherComponentAc.cpp.obj.d -o F-Prime/Svc/CmdDispatcher/CMakeFiles/Svc_CmdDispatcher.dir/CommandDispatcherComponentAc.cpp.obj -c /workspaces/[...]/build-fprime-automatic-[...]/F-Prime/Svc/CmdDispatcher/CommandDispatcherComponentAc.cpp
[build] /workspaces/[...]/build-fprime-automatic-[...]/F-Prime/Svc/CmdDispatcher/CommandDispatcherComponentAc.cpp:2542:21: error: unknown type name 'F64'
[build] 2542 | static_cast<F64>(arg2),
[build] | ^
[build] 1 error generated.
[build] ninja: build stopped: subcommand failed.
[proc] The command: /usr/bin/cmake --build /workspaces/[...]/build-fprime-automatic-[...] --parallel 6 -- exited with code: 1
[driver] Build completed: 00:00:18.310
[build] Build finished with exit code 1
For reference, here is the command that causes this problem:
@ No-op command
async command CMD_TEST_CMD_1(
arg1: I32 @< The I32 command argument
arg2: F32 @< The F32 command argument
arg3: U8 @< The U8 command argument
) \
opcode 2
You'll note that it does not reference F64, but rather F32.
Context / Environment
Execute fprime-util version-check
and share the output.
Operating System: Linux
CPU Architecture: x86_64
Platform: Linux-4.18.0-553.34.1.el8_10.x86_64-x86_64-with-glibc2.34
Python version: 3.9.21
CMake version: 3.26.5
Pip version: 21.3.1
Pip packages:
fprime-tools==3.6.1
fprime-gds==3.6.1
fprime-fpp-*==3.0.0a2
Project submodules:
https://github.com/nasa/fprime.git @ v3.6.0-40-g58f4f9691
How to Reproduce
- Build built in F Prime components on a platform without F64 support.
- Observe error.
Expected Behavior
The FPP autocoder should not substitute F64s for F32s on platforms that do not support F64s.