Abstract_VM_Version::internal_vm_info_string allows the version string to contain an optional FLOAT_ARCH component that can be set externally by invoking the compiler with -DFLOAT_ARCH=... At present the code assumes/requires that FLOAT_ARCH is set to a string literal, hence in normal invocation you would have to invoke the compiler as: gcc -DFLOAT_ARCH='"my-float-arch"' However if the compiler is invoked by a makefile, and you try to set this via a make variable, or even by a shell variable that invokes make from a script, then you need to use multiple levels of "escape" characters to ensure that the final result is a string literal. This is impractical in general. A simpler solution is to change Abstract_VM_Version::internal_vm_info_string to not expect a string literal and to stringify it using the XSTR macro (already used elsewhere in the VM_version code).