bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/31824] New: gcc 14 fails during link step on Windows when bootst


From: tanksherman27 at gmail dot com
Subject: [Bug ld/31824] New: gcc 14 fails during link step on Windows when bootstrap-lto is specified
Date: Fri, 31 May 2024 09:54:26 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=31824

            Bug ID: 31824
           Summary: gcc 14 fails during link step on Windows when
                    bootstrap-lto is specified
           Product: binutils
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: tanksherman27 at gmail dot com
  Target Milestone: ---

gcc 14 seems to be unable to link itself when the bootstrap config that is
active is bootstrap-lto, to turn on Link Time Optimization for the gcc being
compiled. The following is the configure command:

  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105507#c3
  # At least with mingw32 + dwarf-2 exceptions there can only be one libgcc in
  # process, or exceptions will no longer work. Since some of the gcc deps are
  # linked dynamically like gmp/zlib/zstd and those pull in libgcc we can't
  # allow libgcc to be linked statically. The default is "-static-libstdc++
  # -static-libgcc" for both, so we drop "-static-libgcc" here:
  # GCC 14 Update: Since we dropped 32bit Ada with GCC 14.1 and GCC doesn't use
  # exceptions elsewhere this could in theory be removed, in case it makes
problems.
  _extra_config+=(
    '--with-boot-ldflags="-static-libstdc++"'
    '--with-stage1-ldflags="-static-libstdc++"'
  )

  # In addition adaint.c does `#include <accctrl.h>` which pulls in msxml.h,
hacky hack:
  CPPFLAGS+=" -DCOM_NO_WINDOWS_H"

  ../${_sourcedir}/configure \
    --prefix=${MINGW_PREFIX} \
    --with-local-prefix=${MINGW_PREFIX}/local \
    --with-build-config='bootstrap-lto' \
    --build=${MINGW_CHOST} \
    --host=${MINGW_CHOST} \
    --target=${MINGW_CHOST} \
    --with-native-system-header-dir=${MINGW_PREFIX}/include \
    --libexecdir=${MINGW_PREFIX}/lib \
    --enable-bootstrap \
    --enable-checking=release \
    --with-arch=${_arch} \
    --with-tune=generic \
    --enable-languages=${_languages} \
    --enable-shared \
    --enable-static \
    --enable-libatomic \
    --enable-threads=${_threads} \
    --enable-graphite \
    --enable-fully-dynamic-string \
    --enable-libstdcxx-threads \
    --enable-libstdcxx-filesystem-ts \
    --enable-libstdcxx-time \
    --disable-libstdcxx-pch \
    --enable-lto \
    --enable-libgomp \
    --disable-libssp \
    --disable-multilib \
    --disable-rpath \
    --disable-win32-registry \
    --disable-nls \
    --disable-werror \
    --disable-symvers \
    --with-libiconv \
    --with-system-zlib \
    --with-{gmp,mpfr,mpc,isl}=${MINGW_PREFIX} \
    --with-pkgversion="Rev${pkgrel}, Built by MSYS2 project" \
    --with-bugurl="https://github.com/msys2/MINGW-packages/issues"; \
    --with-gnu-as \
    --with-gnu-ld \
    "${_extra_config[@]}"

...and the invocation of make:

  # https://gcc.gnu.org/onlinedocs/gccint/Makefile.html
  make -O STAGE1_CFLAGS="-O2" \
          --jobs profiledbootstrap

This fails with the following error:

C:\msys64\ucrt64\x86_64-w64-mingw32\bin\ld.exe: error: export ordinal too
large: 91917
C:\msys64\ucrt64\x86_64-w64-mingw32\bin\ld.exe: error: export ordinal too
large: 91820
collect2.exe: error: ld returned 1 exit status
make[3]: *** [../../gcc-14.1.0/gcc/lto/Make-lang.in:102: lto-dump.exe] Error 1
make[3]: *** Waiting for unfinished jobs....
collect2.exe: error: ld returned 1 exit status
make[3]: *** [../../gcc-14.1.0/gcc/lto/Make-lang.in:96: lto1.exe] Error 1
C:\msys64\ucrt64\x86_64-w64-mingw32\bin\ld.exe: error: export ordinal too
large: 94928
collect2.exe: error: ld returned 1 exit status
make[3]: *** [../../gcc-14.1.0/gcc/c/Make-lang.in:87: cc1.exe] Error 1
C:\msys64\ucrt64\x86_64-w64-mingw32\bin\ld.exe: error: export ordinal too
large: 97453
collect2.exe: error: ld returned 1 exit status
make[3]: *** [../../gcc-14.1.0/gcc/cp/Make-lang.in:145: cc1plus.exe] Error 1
rm gcc.pod
make[2]: *** [Makefile:5228: all-stageprofile-gcc] Error 2
make[1]: *** [Makefile:23910: stageprofile-bubble] Error 2
make: *** [Makefile:24164: profiledbootstrap] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]