[Bug modula2/92336] New: cross compiling gcc fails in gm2

helmut at subdivi dot de gcc-bugzilla@gcc.gnu.org
Sun Nov 3 10:45:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92336

            Bug ID: 92336
           Summary: cross compiling gcc fails in gm2
           Product: gcc
           Version: 9.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: modula2
          Assignee: unassigned at gcc dot gnu.org
          Reporter: helmut at subdivi dot de
                CC: doko at debian dot org
  Target Milestone: ---
              Host: !=$(build)
            Target: ==$(host)
             Build: x86_64-linux-gnu

The version of gcc packaged for Debian (currently based on 9.2.1) fails to
cross build. Cross compiler builds appear to work. This bug is about cross
building a native compiler.

You can find logs of failed builds at http://crossqa.debian.net/src/gcc-9. They
always fail with a configure invocation in gm2 that is given a --target, but no
--build nor --host. Thus configure assumes a native build, but a cross CC is
passed and configure fails:

> cd gm2 ; \
> if echo -DIN_GCC   | grep \\-DCROSS_COMPILE; then \
>             AR=`echo /usr/lib/gcc-cross/s390x-linux-gnu/9/../../../../s390x-linux-gnu/bin/ar | sed -e "s/^ //"` ; \
>             export AR ; \
>             RANLIB=`echo /usr/lib/gcc-cross/s390x-linux-gnu/9/../../../../s390x-linux-gnu/bin/ranlib | sed -e "s/^ //"` ; \
>             export RANLIB ; \
>             /bin/bash -c '../../../src/gcc/gm2/configure --srcdir=../../../src/gcc/gm2 --target=s390x-ibm-linux-gnu --program-suffix= --includedir=`echo /usr/include | sed -e :a -e 's,[^/]*/\.\.\/,,' -e ta`' ; \
>         else \
>             /bin/bash -c '../../../src/gcc/gm2/configure --srcdir=../../../src/gcc/gm2 --target=s390x-ibm-linux-gnu --program-suffix=' ; \
>        fi
> configure: loading site script /etc/dpkg-cross/cross-config.s390x
> checking for s390x-linux-gnu-ar... /usr/bin/s390x-linux-gnu-ar
> checking for flex... flex
> checking for gcc... s390x-linux-gnu-gcc-9
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... configure: error: in `/<<PKGBUILDDIR>>/build/gcc/gm2':
> configure: error: cannot run C compiled programs.
> If you meant to cross compile, use `--host'.
> See `config.log' for more details
> make[4]: *** [../../src/gcc/gm2/Make-lang.in:1286: gm2/gm2config.h] Error 1

I suspect that quite simply --host and --build flags are missing here as they
are present in most other makefiles. Unfortunately, simply adding
--build=$(build_alias) --host=$(host_alias) does not work, because the relevant
makefile variables are not initialized in this makefile.


More information about the Gcc-bugs mailing list