These changes allow to compile RetroBSD on a Linux Mint host with 32bit libraries installed.
The simulator in "tools/virtualmips/pic32" seems to work fine.
* removed the -Wall compiler flag (hopefully this will be temporary) from makefile recipes to prevent errors from stopping compilation. It mostly fails on printf type functions because of string size conflicts.
* added the "-m32" flag so that compilation and linking produced 32bit executables. I'm not sure is if this is strictly necessary.
* copied Makefile.kconfig to Makefile.kconfigpic32. The files in the pic32 directory compile after making this change
* modified the code in config.h to explicitly tag those function that are externally defined. This is required by newer versions of gcc
* hacked config.y so that the lexer/compiler stopped complaining.
* commented out the "compp" variable in main.c because of size mismatch errors. It doesn't seem to be used for anything.
* added a system header file to tools/kconfig/mkswapconf.c so that the compiler could find included functions
- Smaller C: fix a bug in __func__ introduced with
float-related changes
- make *printf() print floats greater than 1e25
- make *printf() print the plus sign when the format
includes "+", e.g. printf("%+f\n", 1.0);
- clean up and complete prototypes in <math.h>
- remove non-standard HUGE and LOGHUGE from <math.h>
- add HUGE_VAL to <math.h>
- express some hard-coded limits in terms of constants
from <float.h>
- uncomment prototypes of several floating point
conversion functions in <stdlib.h> for Smaller C
double is an alias for float. IOW, only 32-bit
single precision floats are supported. This isn't
conformant, but OK for some embedded systems (e.g.
RetroBSD) and simple compilers like this.
Also, the following operators are not supported with
floats at the moment: ++, --, +=, -=, *=, /=.
But +, -, *, /, =, ||, &&, ?:, !, comparison, casts,
if/while/for are OK.