Report forwarded
to Debian Electronics Team <[email protected]>: Bug#1096682; Package src:gcc-sh-elf.
(Mon, 17 Feb 2025 17:15:40 GMT) (full text, mbox, link).
Acknowledgement sent
to Matthias Klose <[email protected]>:
New Bug report received and forwarded. Copy sent to Debian Electronics Team <[email protected]>.
(Mon, 17 Feb 2025 17:15:40 GMT) (full text, mbox, link).
Package: src:gcc-sh-elf
Version: 8.2
Severity: important
Tags: sid forky
User: [email protected]
Usertags: ftbfs-gcc-15
[This bug is NOT targeted to the upcoming trixie release]
Please keep this issue open in the bug tracker for the package it
was filed for. If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.
The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.
The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/gcc-sh-elf_8.2_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.
To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.
apt-get -t=experimental install g++
GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html
[...]
checking dl_iterate_phdr in target C library... unknown
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether to avoid linking multiple front-ends at once... no
checking whether to serialize linking of multiple front-ends... no
GNU
checking for O_CLOEXEC... yes
checking for makeinfo... makeinfo --split-size=5000000
Links are now set up to build a cross-compiler
from x86_64-pc-linux-gnu to sh-unknown-elf.
checking for exported symbols... checking for expect... /usr/bin/expect
checking for Tcl supporting try/catch... yes
checking for -rdynamic... yes
checking for linker versioning flags... -Wl,--version-script
yes
checking for library containing dlopen... (cached) none required
checking for -fPIC -shared... configure: updating cache ./config.cache
checking that generated files are newer than configure... done
configure: creating ./config.status
yes
gcc_driver_version: 13
checking for -fno-PIE option... yes
checking for -no-pie option... yes
checking for CET support... yes
checking linker -z bndplt option... no
checking linker --push-state/--pop-state options... yes
configure: updating cache ./config.cache
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: creating as
config.status: creating collect-ld
config.status: creating nm
config.status: executing default-1 commands
config.status: executing libtool commands
config.status: creating dsymutil
config.status: creating Makefile
config.status: creating ada/gcc-interface/Makefile
config.status: creating ada/Makefile
config.status: creating m2/config-make
config.status: creating m2/Make-maintainer
config.status: creating auto-host.h
config.status: executing depdir commands
mkdir -p -- .deps
config.status: executing gccdepdir commands
mkdir -p -- build/.deps
mkdir -p -- ada/.deps
mkdir -p -- c/.deps
mkdir -p -- cp/.deps
mkdir -p -- d/.deps
mkdir -p -- fortran/.deps
mkdir -p -- go/.deps
mkdir -p -- jit/.deps
mkdir -p -- lto/.deps
mkdir -p -- m2/.deps
mkdir -p -- objc/.deps
mkdir -p -- objcp/.deps
mkdir -p -- rust/.deps
mkdir -p -- c-family/.deps
mkdir -p -- common/.deps
mkdir -p -- analyzer/.deps
mkdir -p -- rtl-ssa/.deps
config.status: executing default commands
make[3]: Leaving directory '/build/reproducible-path/gcc-sh-elf-8.2/bld'
make[2]: *** [Makefile:1036: all] Error 2
make[2]: Leaving directory '/build/reproducible-path/gcc-sh-elf-8.2/bld'
make[1]: *** [debian/rules:77: override_dh_auto_build] Error 2
make[1]: Leaving directory '/build/reproducible-path/gcc-sh-elf-8.2'
make: *** [debian/rules:22: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
Control: forwarded -1 https://forge.sourceware.org/binutils-gdb/binutils-gdb-mirror/commit/9385922d3fb9304622bbd78b2437bcfa50e7491a
Here's the problem starting at line 6079 in your build log:
> ../../src/sim/sh/interp.c: In function ‘sim_resume’:
> ../../src/sim/sh/interp.c:1731:12: error: assignment to ‘void (*)(void)’ from incompatible pointer type ‘__sighandler_t’ {aka ‘void (*)(int)’} [-Wincompatible-pointer-types]
> 1731 | prev_fpe = signal (SIGFPE, SIG_IGN);
> | ^
> In file included from ../gnulib/import/signal.h:52,
> from ../../src/sim/sh/interp.c:27:
> /usr/include/signal.h:72:16: note: ‘__sighandler_t’ declared here
> 72 | typedef void (*__sighandler_t) (int);
> | ^~~~~~~~~~~~~~
> ../../src/sim/sh/interp.c:1867:19: error: passing argument 2 of ‘signal’ from incompatible pointer type [-Wincompatible-pointer-types]
> 1867 | signal (SIGFPE, prev_fpe);
> | ^~~~~~~~
> | |
> | void (*)(void)
> /usr/include/signal.h:88:57: note: expected ‘__sighandler_t’ {aka ‘void (*)(int)’} but argument is of type ‘void (*)(void)’
> 88 | extern __sighandler_t signal (int __sig, __sighandler_t __handler)
> | ~~~~~~~~~~~~~~~^~~~~~~~~
> /usr/include/signal.h:72:16: note: ‘__sighandler_t’ declared here
> 72 | typedef void (*__sighandler_t) (int);
> | ^~~~~~~~~~~~~~
Technically this is an issue in the gdb-source binary package the simulator gets pulled in from and which was fixed upstream already. It appears this fix hasn't made it into a GDB release yet, but when a newer version of GDB gets uploaded to Debian it should resolve without any change to gcc-sh-elf.
There may be other subsequent build failures though, and if so, they'll probably dissipate when I upgrade this package to GCC 15.
Debbugs is free software and licensed under the terms of the GNU General
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.