Ping?! Thanks, Andreas
On 27.11.14 21:56, Andreas Tobler wrote:
Hi all, this is the second attempt. I reworked the issues Richard mentioned in the previous review. I also found one issue which will break build/bootstrap if I pass --enable-gnu-indirect-function, also fixed. One thing which came up is the way we generate code for the armv6*-*-freebsd* triplet versus the arm-*-freebsd* triplet. I think the thing which confuses is the fact that we have only two fixed triplets where we build a complete OS with. Means the whole OS is built with the same optimization, not only the kernel or one binary. For the armv6* we want to benefit from the cpu's functionality by default. We build all __ARM_ARCH >= 6 with TARGET_CPU_arm1176jzs, on the other hand all __ARM_ARCH <=5 will be built with TARGET_CPU_arm9. Now who becomes arm-*-freebsd* and who becomes armv6*-*-freebsd*? As tried above, we only know two triplets, so __ARM_ARCH >= 6 becomes armv6*-*-freebsd* and __ARM_ARCH <=5 becomes arm-*-freebsd*. armv8 is not yet in the portfolio and it will become something different, either arm64 or aarch64, I do not know. I'd like to keep this since our system compilers, clang and gcc-4.2.1 behave the same. If we have to change here, we would confuse people quite a lot. The whole thing is FreeBSD specific and does not touch others. As usual, bootstrapped, cross compiled, tested. Ok for trunk? TIA, Andreas toplevel: * configure.ac: Don't add ${libgcj} for arm*-*-freebsd*. * configure: Regenerate. gcc: * config.gcc (arm*-*-freebsd*): New configuration. * config/arm/freebsd.h: New file. * config.host: Add extra components for arm*-*-freebsd*. * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE. * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE. libgcc: * config.host (arm*-*-freebsd*): Add new configuration for arm*-*-freebsd*. * config/arm/freebsd-atomic.c: New file. * config/arm/t-freebsd: Likewise. * config/arm/unwind-arm.h: Add __FreeBSD__ to the list of 'PC-relative indirect' OS's. libatomic: * configure.tgt: Exclude arm*-*-freebsd* from try_ifunc. libstdc++-v3: * configure.host: Add arm*-*-freebsd* port_specific_symbol_files.