On Thu, Jul 23, 2015 at 01:03:19PM +0100, Nick Clifton wrote: > Hi Helmut, Hi Ulrich, Hi Andreas, > > A toolchain configured as --target=s390-linux currently fails to build > gcc because of an undefined function: > > undefined reference to `s390_host_detect_local_cpu(int, char const**)' > Makefile:1858: recipe for target 'xgcc' failed > > The patch below fixes the problem for me by adding a stub function in > s390-common.c, but I am not sure if it is the correct solution. > Please can you advise ?
Isn't it better to just follow what other arches do? E.g. on i?86/x86_64, the EXTRA_SPEC_FUNCTIONS definition is guarded with #if defined(__i386__) || defined(__x86_64__) and similarly on mips: #if defined(__mips__) and thus I'd expect s390{,x} should guard it with #if defined(__s390__) || defined(__s390x__) or so. The config.host change also looks wrong, e.g. i?86 or mips have: i[34567]86-*-* \ | x86_64-*-* ) case ${target} in i[34567]86-*-* \ | x86_64-*-* ) host_extra_gcc_objs="driver-i386.o" host_xmake_file="${host_xmake_file} i386/x-i386" ;; esac ;; mips*-*-linux*) case ${target} in mips*-*-linux*) host_extra_gcc_objs="driver-native.o" host_xmake_file="${host_xmake_file} mips/x-native" ;; esac ;; while s390 has: s390-*-* | s390x-*-*) host_extra_gcc_objs="driver-native.o" host_xmake_file="${host_xmake_file} s390/x-native" ;; I bet that is gone break also cross-compilers from s390* to other targets. Jakub