REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4576
File StdLib/Include/math.h:406 defines NAN constant as __nanf.__val. The problem is that __nanf is never defined. Fix is simple: define __nanf in similar way as __infinityf This fix has been provided through the below PR on edk2-libc repo https://github.com/tianocore/edk2-libc/pull/9. Cc: Rebecca Cran <rebe...@bsdio.com> Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Jayaprakash N <n.jayaprak...@intel.com> Signed-off-by: Kloper Dimitry <dimitry.klo...@intel.com> --- StdLib/LibC/LibC.inf | 1 + StdLib/LibC/Main/nanf_ieee754.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 StdLib/LibC/Main/nanf_ieee754.c diff --git a/StdLib/LibC/LibC.inf b/StdLib/LibC/LibC.inf index ad6a117..93e32e8 100644 --- a/StdLib/LibC/LibC.inf +++ b/StdLib/LibC/LibC.inf @@ -34,6 +34,7 @@ Main/isnand_ieee754.c Main/isnanf_ieee754.c Main/infinityf_ieee754.c + Main/nanf_ieee754.c Main/Main.c Main/HtoNtoH.c Main/ByteSwap.c diff --git a/StdLib/LibC/Main/nanf_ieee754.c b/StdLib/LibC/Main/nanf_ieee754.c new file mode 100644 index 0000000..8e56d32 --- /dev/null +++ b/StdLib/LibC/Main/nanf_ieee754.c @@ -0,0 +1,15 @@ +/* + * IEEE-compatible nanf.c -- public domain. + */ +#include <LibConfig.h> +#include <sys/EfiCdefs.h> + +#include <math.h> +#include <machine/endian.h> + +const union __float_u __nanf = +#if BYTE_ORDER == BIG_ENDIAN + { { 0x7f, 0xc0, 0, 0 } }; +#else + { { 0, 0, 0xc0, 0x7f } }; +#endif -- 2.40.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110117): https://edk2.groups.io/g/devel/message/110117 Mute This Topic: https://groups.io/mt/102202277/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-