Sparse is architecture-agnostic and details like the size of a long or the type of size_t are parameters. These parameters are either given via some option flagsor are based on the machine used to build Sparse. This normally gives good results with few complications but is unsatisfactory when using Sparse during cross-compilation. This series aims to improve this situation by adding a new option, --arch=ARCH, which allows to specify the target architecture. Changes since v1: * add support for 32-bit s390 * keep architecture in sync with bit-ness. * with --arch, default bit-ness doesn't depend on the build machine. * --arch also set the default endianness of the architecture * use --arch to simplify cgcc * add some tests This series is also available for review & testing at: git://github.com/lucvoo/sparse-dev.git option-arch Luc Van Oostenryck (7): arch: add predefine for __mips__ arch: reorder MACH_XXX defines arch: add support for s390 (ILP32) arch: change the arch when changing -m32/64 arch: add an option to specify the desired arch: --arch=<arch> cgcc: specify the arch via --arch cgcc: removed unneeded predefines for integers cgcc | 67 ++++++++---------------------------- lib.c | 72 +++++++++++++++++++++++++++++++++++++++ machine.h | 22 +++++------- sparse.1 | 8 +++++ target.c | 22 ++++++++++++ validation/arch/arm.c | 27 +++++++++++++++ validation/arch/arm64.c | 23 +++++++++++++ validation/arch/mips32.c | 29 ++++++++++++++++ validation/arch/riscv64.c | 27 +++++++++++++++ 9 files changed, 232 insertions(+), 65 deletions(-) create mode 100644 validation/arch/arm.c create mode 100644 validation/arch/arm64.c create mode 100644 validation/arch/mips32.c create mode 100644 validation/arch/riscv64.c -- 2.23.0