With this commit, it becomes possible to provide C compiler and preprocessor
flags to use in addition to those defined by the build system.
As required by the GNU coding standards, the flags can be provided
either at configure or at make invocation.
The provided CFLAGS and CPPFLAGS will also be taken into account
when C code is compiled by ocamlc/ocamlopt.
This commit removes the explicit reference to CFLAGS in the
configuration for the xlc compiler, since it is not necessary any longer.
The C global variable caml_fl_merge and the C function
caml_spacetime_my_profinfo (bytecode version) were declared and
defined with different types. This is undefined behavior and
can cause link-time errors with link-time optimization (LTO).
Closes: #9825
* Fix#9759: Typing without -principal is broken in 4.11 and trunk
* compile stdlib in -principal mode
* never modify generic part of ty_expected_explained
* use generic_instance where possible
* add comment for -no-principal in stdlib__oo.cmi
Software emulation of floating-point arithmetic, as in the ARM EABI port,
use pairs of pseudoregisters of type Int to represent values of type Float.
This is achieved by the `regs_for` method of class `selector_generic`,
which defaults to `Reg.createv` but is overriden for ARM EABI so
as to perform the transformation Float -> Int,Int on the fly.
The method `bind_let_mut` uses `Reg.createv` to associate
pseudoregisters to bound variables. This is incorrect in a soft FP
context, as a bound variable of type Float will get a Float register
nonetheless. `self#regs_for` must be used instead. This is what this
commit does.
If an OCaml C library already defines some of the new `Val_none`,
`Some_val`, `Is_none`, `Is_some`, `caml_alloc_some`, or `Tag_some`
macros; then the C compiler will likely warn for macro redefinition,
even if the macro definition are identical.
Implement (in utils/binutils.ml) a simple parser for ELF, Mach-O and PE shared object files. Use it to get rid of libbfd in ocamlobjinfo and to improve the checking of external primitives during linking in ocamlc.