ref: f88d9e728d9db5f396ac1ef2ae09af8212c37f43
parent: 71fa62c9d1da8cebd7dae821072d0ff2cdd78edd
author: James Larrowe <[email protected]>
date: Tue May 19 15:21:16 EDT 2020
Fix DJGPP build GCC with the -std=c11 defines __STRICT_ANSI__. DJGPP checks if __STRICT_ANSI__ is defined and if so doesn't define some things mandated by POSIX such as struct stat, PATH_MAX, and others. The -std=gnu11 option does not define this macro, so use it instead. _DEFAULT_SOURCE isn't needed as no GNU nor BSD-specific functions are used. Remove it. Fix the last two occurrences of incorrect format specifiers for standard fixed-width integer types.
--- a/Makefile
+++ b/Makefile
@@ -34,8 +34,8 @@
# Overridable CFLAGS
CFLAGS := -O3
# Non-overridable CFLAGS
-REALCFLAGS := ${CFLAGS} ${WARNFLAGS} -std=c11 -D_POSIX_C_SOURCE=200809L \
- -D_DEFAULT_SOURCE -Iinclude
+REALCFLAGS := ${CFLAGS} ${WARNFLAGS} -std=gnu11 -D_POSIX_C_SOURCE=200809L \
+ -Iinclude
# Overridable LDFLAGS
LDFLAGS :=
# Non-overridable LDFLAGS
--- a/src/asm/asmy.y
+++ b/src/asm/asmy.y
@@ -1108,10 +1108,10 @@
printt : T_POP_PRINTT string { printf("%s", $2); }
;
-printv : T_POP_PRINTV const { printf("$%X", $2); }
+printv : T_POP_PRINTV const { printf("$%" PRIX32, $2); }
;
-printi : T_POP_PRINTI const { printf("%d", $2); }
+printi : T_POP_PRINTI const { printf("%" PRId32, $2); }
;
printf : T_POP_PRINTF const { math_Print($2); }