diff --git a/ext/eyalroz/module.lb b/ext/eyalroz/module.lb index 8f37ffb357..080a6d19c0 100644 --- a/ext/eyalroz/module.lb +++ b/ext/eyalroz/module.lb @@ -23,10 +23,14 @@ def build(env): env.copy("printf/src/printf/printf.h", "printf.h") files = env.copy("printf/src/printf/printf.c", "printf.c") - env.collect(":build:ccflags", "-Wno-double-promotion", "-Wno-overflow", operations=files) + env.collect(":build:ccflags", "-Wno-overflow", operations=files) with_long_long = "avr" not in env[":target"].identifier.platform + with_double = "fd" in env[":target"].get_driver("core")["type"] + if not with_double: + env.collect(":build:ccflags", "-Wno-double-promotion", operations=files) env.substitutions = { + "with_double": with_double, "with_long_long": env.get(":io:with_long_long", with_long_long), "is_hosted": env[":target"].identifier.platform == "hosted", } diff --git a/ext/eyalroz/printf b/ext/eyalroz/printf index 72716295bc..9bd8ed1b06 160000 --- a/ext/eyalroz/printf +++ b/ext/eyalroz/printf @@ -1 +1 @@ -Subproject commit 72716295bcaa14f96ad9725b40dcc9dff0930eac +Subproject commit 9bd8ed1b06dca8db465d9dc285a673ec97346421 diff --git a/ext/eyalroz/printf_config.h.in b/ext/eyalroz/printf_config.h.in index 758cb54603..a0ddd0a158 100644 --- a/ext/eyalroz/printf_config.h.in +++ b/ext/eyalroz/printf_config.h.in @@ -20,19 +20,17 @@ #endif #ifndef PRINTF_DEFAULT_FLOAT_PRECISION -#define PRINTF_DEFAULT_FLOAT_PRECISION 5 +#define PRINTF_DEFAULT_FLOAT_PRECISION 5 #endif -#ifndef PRINTF_ALIAS_STANDARD_FUNCTION_NAMES -#define PRINTF_ALIAS_STANDARD_FUNCTION_NAMES {{ 0 if is_hosted else 1 }} +#ifndef PRINTF_USE_DOUBLE_INTERNALLY +#define PRINTF_USE_DOUBLE_INTERNALLY {{ 1 if with_double else 0 }} #endif #ifndef PRINTF_ALIAS_STANDARD_FUNCTION_NAMES_HARD -#define PRINTF_ALIAS_STANDARD_FUNCTION_NAMES_HARD 0 +#define PRINTF_ALIAS_STANDARD_FUNCTION_NAMES_HARD {{ 0 if is_hosted else 1 }} #endif #ifndef PRINTF_ALIAS_STANDARD_FUNCTION_NAMES_SOFT #define PRINTF_ALIAS_STANDARD_FUNCTION_NAMES_SOFT 0 #endif - -