This happens on the architectures where size of long double is not the same as double. The header file disables everything if any math method is missing.
I have it on my list to address. I was porting the long double methods from FreeBSD before anyone ran into this but haven't finished On Wed, Jan 11, 2023, 3:43 AM <jan.som...@dlr.de> wrote: > Hello and happy New Year, > > I stumbled upon a slightly weird problem with the current cross-compilers. > According to https://en.cppreference.com/w/cpp/numeric/math/fmax > std::fmax should be part of <cmath> for >= C++11. > However, if I try to use it, I sometimes get "error: 'fmax' is not a > member of 'std'; did you mean 'max'?" > > I do get the error when compiling the test file (see below) with > i386-rtems6-g++ and riscv-rtems6-g++, but for example not for > arm-rtems6-g++. > If I use "fmax" instead of "std::fmax" the file compiles for all 3 > architectures. > However, I have a library which uses the math functions with the namespace > qualifier, which I cannot change that easily. > > Does someone know, what is the reason for that behavior (I guess it's > related to newlib?) and what a solution could look like? > > Best regards, > > Jan > > > PS: My test file looks like this: > > #include <cmath> > > double test(double a, double b) > { > return std::fmax(a, b); > } > > > _______________________________________________ > users mailing list > users@rtems.org > http://lists.rtems.org/mailman/listinfo/users >
_______________________________________________ users mailing list users@rtems.org http://lists.rtems.org/mailman/listinfo/users