In hindsight my emscripten-ifdef (70d416a8f63f) is nonsense.
As fpcrtl_glShaderSource() would not be defined and lead to compiling issues.
So either it's 3 ifdefs (in pas2cRedo, pas2cSystem and misc.c),
in order to toggle between fpcrtl_ and the native function,
or alternatively have no ifdef for it at all.
I'm going with none at all,
which means emscripten will compile with the original (const) function prototype,
being wrapped by the fpcrtl_ function, same as non-emscripten builds.
#ifndef PMATH_H_
#define PMATH_H_
#include <stdint.h>
#include <math.h>
#define fpcrtl_min(a, b) ((a) < (b) ? (a) : (b))
#define fpcrtl_max(a, b) ((a) > (b) ? (a) : (b))
#define fpcrtl_power(a, b) pow(a, b)
/* Currently the games only uses sign of an integer */
int fpcrtl_signi(int x);
float fpcrtl_csc(float x);
#define fpcrtl_arctan2(y, x) atan2(y, x)
float __attribute__((overloadable)) fpcrtl_abs(float x);
double __attribute__((overloadable)) fpcrtl_abs(double x);
long double __attribute__((overloadable)) fpcrtl_abs(long double x);
int __attribute__((overloadable)) fpcrtl_abs(int x);
int64_t __attribute__((overloadable)) fpcrtl_abs(int64_t x);
/* emscripten cannot find math.h through our cmake */
#ifdef EMSCRIPTEN
double exp(double);
double log(double);
double sin(double);
double cos(double);
double fabs(double);
float fabsf(float);
long double fabsl(long double);
double ceil(double);
double sqrt(double);
double atan(double);
double atan2(double, double);
#endif
#endif /* PMATH_H_ */