On Sat, Apr 27, 2019 at 11:26:15AM +0200, Matthias Klose wrote: > On 15.03.19 16:49, Robin Dapp wrote: > > during the last few days I tried to get D running on s390x (apparently > > the first Big Endian platform to try it?). I did not yet go through the > > code systematically and add a version(SystemZ) in every place where it > > might be needed but rather tried to fix test failures as they arose. > > this now fails on trunk and the gcc-9-branch with a multilib build: > > > /<<PKGBUILDDIR>>/src/libphobos/libdruntime/core/sys/posix/ucontext.d:769:9: > error: static assert "unimpleme > nted" > 769 | static assert(0, "unimplemented"); > | ^ > make[10]: *** [Makefile:2149: core/thread.lo] Error 1 > make[10]: Leaving directory > '/<<PKGBUILDDIR>>/build/s390x-linux-gnu/32/libphobos/libdruntime' > make[9]: *** [Makefile:473: all-recursive] Error 1 > make[10]: *** [Makefile:2149: core/thread.lo] Error 1 > make[10]: Leaving directory > '/<<PKGBUILDDIR>>/build/s390x-linux-gnu/32/libphobos/libdruntime' > make[9]: *** [Makefile:473: all-recursive] Error 1
Ugh, can we disable D for GCC 9.1 on s390x then, on the trunk look through all files that only use version (SystemZ) and don't use version (S390) at least find -type f | xargs grep -l SystemZ | xargs grep -L S390 ./src/std/uni.d ./src/std/math.d ./src/std/experimental/allocator/building_blocks/region.d ./libdruntime/gcc/sections/elf_shared.d ./libdruntime/core/sys/linux/link.d ./libdruntime/core/sys/posix/setjmp.d ./libdruntime/core/sys/posix/ucontext.d ./libdruntime/core/sys/posix/sys/stat.d and make sure it works also for s390 31-bit and finally backport to 9.2? E.g. in src/std/math.d I wonder if it just shouldn't be done through version (S390) version = IBMZ_Any; version (SystemZ) version = IBMZ_Any; and using later version (IBMZ_Any) instead of version (SystemZ). Guess in various other spots, except for those where structure sizes are needed. Robin, have you been testing with --disable-multilib or something similar? Jakub