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

            Bug ID: 127546
           Summary: Unable to bootstrap gcc with
                    --target=aarch64-w64-mingw32
           Product: gcc
           Version: 16.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: azoff at gcc dot gnu.org
  Target Milestone: ---

I'm trying to build a cross toolchain that will run on linux and produce
Windows on ARM64 binaries.

$ /tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/configure
--prefix=/opt/aarch64-w64-mingw32 --target=aarch64-w64-mingw32
--with-sysroot=/opt/aarch64-w64-mingw32/aarch64-w64-mingw32
--with-native-system-header-dir=/include --with-arch=armv8-a
--enable-languages=c,c++ --enable-threads=win32 --disable-bootstrap
--disable-multilib --disable-nls --disable-shared --disable-libatomic
--disable-libgomp --disable-libquadmath --disable-libsanitizer --disable-libssp
--without-headers --with-system-zlib
....
/tmp/aarch64-mingw-toolchain/build/gcc-stage1/./gcc/xgcc
-B/tmp/aarch64-mingw-toolchain/build/gcc-stage1/./gcc/
-L/opt/aarch64-w64-mingw32/aarch64-w64-mingw32/lib
-L/opt/aarch64-w64-mingw32/mingw/lib -isystem
/opt/aarch64-w64-mingw32/aarch64-w64-mingw32/include -isystem
/opt/aarch64-w64-mingw32/mingw/include
-B/opt/aarch64-w64-mingw32/aarch64-w64-mingw32/bin/
-B/opt/aarch64-w64-mingw32/aarch64-w64-mingw32/lib/ -isystem
/opt/aarch64-w64-mingw32/aarch64-w64-mingw32/include -isystem
/opt/aarch64-w64-mingw32/aarch64-w64-mingw32/sys-include    -g -O2 -O2  -g -O2
-DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-error=narrowing
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition  -isystem ./include   -g -DIN_LIBGCC2 -fbuilding-libgcc
-fno-stack-protector  -Werror -Wno-prio-ctor-dtor -Wno-error=attributes  -I.
-I. -I../.././gcc -I/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc
-I/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/.
-I/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/../gcc
-I/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/../include
-I/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/aarch64
-I/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid
-DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS -DUSE_EMUTLS  -o bid_binarydecimal.o
-MT bid_binarydecimal.o -MD -MP -MF bid_binarydecimal.dep -c
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:
In function '__binary80_to_bid32':
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:420:13:
error: 'x_in.i.hi' is used uninitialized [-Werror=uninitialized]
  420 |   e = x_in.i.hi;                                                       
    \
      |       ~~~~~~^~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:145793:3:
note: in expansion of macro 'unpack_binary80'
145793 |   unpack_binary80 (x, s, e, c.w[0], t, return_bid32_zero (s),
       |   ^~~~~~~~~~~~~~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:416:23:
note: 'x_in' declared here
  416 | { BID_BINARY80LDOUBLE x_in;                                            
    \
      |                       ^~~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:145793:3:
note: in expansion of macro 'unpack_binary80'
145793 |   unpack_binary80 (x, s, e, c.w[0], t, return_bid32_zero (s),
       |   ^~~~~~~~~~~~~~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:
In function '__binary80_to_bid64':
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:420:13:
error: 'x_in.i.hi' is used uninitialized [-Werror=uninitialized]
  420 |   e = x_in.i.hi;                                                       
    \
      |       ~~~~~~^~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:146423:3:
note: in expansion of macro 'unpack_binary80'
146423 |   unpack_binary80 (x, s, e, c.w[1], t, return_bid64_zero (s),
       |   ^~~~~~~~~~~~~~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:416:23:
note: 'x_in' declared here
  416 | { BID_BINARY80LDOUBLE x_in;                                            
    \
      |                       ^~~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:146423:3:
note: in expansion of macro 'unpack_binary80'
146423 |   unpack_binary80 (x, s, e, c.w[1], t, return_bid64_zero (s),
       |   ^~~~~~~~~~~~~~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:
In function '__binary80_to_bid128':
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:420:13:
error: 'x_in.i.hi' is used uninitialized [-Werror=uninitialized]
  420 |   e = x_in.i.hi;                                                       
    \
      |       ~~~~~~^~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:147081:3:
note: in expansion of macro 'unpack_binary80'
147081 |   unpack_binary80 (x, s, e, c.w[1], t, return_bid128_zero (s),
       |   ^~~~~~~~~~~~~~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:416:23:
note: 'x_in' declared here
  416 | { BID_BINARY80LDOUBLE x_in;                                            
    \
      |                       ^~~~
/tmp/aarch64-mingw-toolchain/src/gcc-16.2.0/libgcc/config/libbid/bid_binarydecimal.c:147081:3:
note: in expansion of macro 'unpack_binary80'
147081 |   unpack_binary80 (x, s, e, c.w[1], t, return_bid128_zero (s),
       |   ^~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [bid_binarydecimal.o] Error 1
make: *** [all-target-libgcc] Error 2

I've not tried a more recent snapshot, but since
libgcc/config/libbid/bid_binarydecimal.c has not been touched after
releases/gcc-16.1.0, I assume that the problem also exist on trunk.

These are the sources used to get the above error:
https://ftp.gnu.org/gnu/binutils/binutils-2.47.tar.xz
https://ftp.gnu.org/gnu/gcc/gcc-16.2.0/gcc-16.2.0.tar.xz
https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v14.0.0.tar.bz2

Reply via email to