#1097583 pico-sdk: ftbfs with GCC-15

#1097583#5
Date:
2025-02-17 17:43:42 UTC
From:
To:
[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/pico-sdk_2.0.0-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

[...]
    1 | /*
In file included from /build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.h:12:
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/output_format.h:83:9: error: ‘uint8_t’ does not name a type
   83 |         uint8_t used_gpio_ranges;
      |         ^~~~~~~
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/output_format.h:1:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
  +++ |+#include <cstdint>
    1 | /*
In file included from /build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/gen/parser.hpp:52,
                 from /build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.h:11,
                 from tools/pioasm/lexer.ll:13:
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_types.h:290:5: error: ‘uint8_t’ does not name a type
  290 |     uint8_t used_gpio_ranges = 0;
      |     ^~~~~~~
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_types.h:19:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
   18 | #include "pio_enums.h"
  +++ |+#include <cstdint>
   19 |
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp: In member function ‘void program::set_clock_div(const yy::location&, float)’:
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp:68:22: error: ‘uint16_t’ was not declared in this scope
   68 |     clock_div_int = (uint16_t)clock_div;
      |                      ^~~~~~~~
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp:10:1: note: ‘uint16_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
    9 | #include "pio_assembler.h"
  +++ |+#include <cstdint>
   10 | #include "parser.hpp"
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp:72:27: error: ‘uint8_t’ was not declared in this scope
   72 |         clock_div_frac = (uint8_t)((clock_div - (float)clock_div_frac) * (1u << 8u));
      |                           ^~~~~~~
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp:72:27: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
make[4]: *** [CMakeFiles/pioasm.dir/build.make:152: CMakeFiles/pioasm.dir/c_sdk_output.cpp.o] Error 1
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp: In member function ‘virtual raw_encoding instr_wait::raw_encode(program&)’:
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp:413:40: error: ‘struct program’ has no member named ‘used_gpio_ranges’
  413 |             if (bitmap == 4 && program.used_gpio_ranges & 1) {
      |                                        ^~~~~~~~~~~~~~~~
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp:416:40: error: ‘struct program’ has no member named ‘used_gpio_ranges’
  416 |             if (bitmap == 1 && program.used_gpio_ranges & 4) {
      |                                        ^~~~~~~~~~~~~~~~
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp:419:21: error: ‘struct program’ has no member named ‘used_gpio_ranges’
  419 |             program.used_gpio_ranges |= bitmap;
      |                     ^~~~~~~~~~~~~~~~
In file included from /build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.h:12:
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/output_format.h:83:9: error: ‘uint8_t’ does not name a type
   83 |         uint8_t used_gpio_ranges;
      |         ^~~~~~~
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/output_format.h:1:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
  +++ |+#include <cstdint>
    1 | /*
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp: In member function ‘int pio_assembler::write_output()’:
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp:504:18: error: ‘struct compiled_source::program’ has no member named ‘used_gpio_ranges’
  504 |         cprogram.used_gpio_ranges = program.used_gpio_ranges;
      |                  ^~~~~~~~~~~~~~~~
/build/reproducible-path/pico-sdk-2.0.0/tools/pioasm/pio_assembler.cpp:504:45: error: ‘struct program’ has no member named ‘used_gpio_ranges’
  504 |         cprogram.used_gpio_ranges = program.used_gpio_ranges;
      |                                             ^~~~~~~~~~~~~~~~
make[4]: *** [CMakeFiles/pioasm.dir/build.make:124: CMakeFiles/pioasm.dir/gen/lexer.cpp.o] Error 1
make[4]: *** [CMakeFiles/pioasm.dir/build.make:166: CMakeFiles/pioasm.dir/python_output.cpp.o] Error 1
make[4]: *** [CMakeFiles/pioasm.dir/build.make:82: CMakeFiles/pioasm.dir/main.cpp.o] Error 1
make[4]: *** [CMakeFiles/pioasm.dir/build.make:138: CMakeFiles/pioasm.dir/gen/parser.cpp.o] Error 1
make[4]: *** [CMakeFiles/pioasm.dir/build.make:96: CMakeFiles/pioasm.dir/pio_assembler.cpp.o] Error 1
make[4]: Leaving directory '/build/reproducible-path/pico-sdk-2.0.0/pioasm-obj-x86_64-linux-gnu'
make[3]: *** [CMakeFiles/Makefile2:90: CMakeFiles/pioasm.dir/all] Error 2
make[3]: Leaving directory '/build/reproducible-path/pico-sdk-2.0.0/pioasm-obj-x86_64-linux-gnu'
make[2]: *** [Makefile:139: all] Error 2
make[2]: Leaving directory '/build/reproducible-path/pico-sdk-2.0.0/pioasm-obj-x86_64-linux-gnu'
dh_auto_build: error: cd pioasm-obj-x86_64-linux-gnu && make -j8 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make[1]: *** [debian/rules:48: execute_after_dh_auto_build-arch] Error 25
make[1]: Leaving directory '/build/reproducible-path/pico-sdk-2.0.0'
make: *** [debian/rules:27: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1097583#14
Date:
2025-09-06 16:26:16 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
pico-sdk, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1097583@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Johannes Schauer Marin Rodrigues <josch@debian.org> (supplier of updated pico-sdk package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sat, 06 Sep 2025 17:59:05 +0200
Source: pico-sdk
Architecture: source
Version: 2.2.0-1
Distribution: unstable
Urgency: medium
Maintainer: Johannes Schauer Marin Rodrigues <josch@debian.org>
Changed-By: Johannes Schauer Marin Rodrigues <josch@debian.org>
Closes: 1097583
Changes:
 pico-sdk (2.2.0-1) unstable; urgency=medium
 .
   * add debian/README.source
   * New upstream version 2.2.0
      - fix pioasm build failure caused by GCC 15 changes (closes: #1097583)
Checksums-Sha1:
 e04366fb48f330df5db53867c2698d6883b31b7c 2187 pico-sdk_2.2.0-1.dsc
 8ea960df5b4b89d47bd70a5890a1e9c55c6c8909 2496942 pico-sdk_2.2.0.orig.tar.gz
 05740581e6aed8a2cab0791138f7b0cccca7a674 10908 pico-sdk_2.2.0-1.debian.tar.xz
Checksums-Sha256:
 ad723d8f21aa496c40346177605dc78c6fd53b812489697f8ac7e526f13edc1e 2187 pico-sdk_2.2.0-1.dsc
 dbd8db79015aced4ef35cbaa88051b0d451775010d20202e1c7d2bee69c25b35 2496942 pico-sdk_2.2.0.orig.tar.gz
 5d0b987ff56d5de3235a34a11d7e801519034f5cc655ccc8323b88543eb154d3 10908 pico-sdk_2.2.0-1.debian.tar.xz
Files:
 4be07d4f773b73daf85301343ac2eed5 2187 libdevel optional pico-sdk_2.2.0-1.dsc
 808dc41688b95d94b591c80837818889 2496942 libdevel optional pico-sdk_2.2.0.orig.tar.gz
 c1852cd5c052a47321f38e6037285318 10908 libdevel optional pico-sdk_2.2.0-1.debian.tar.xz
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEElFhU6KL81LF4wVq58sulx4+9g+EFAmi8WosACgkQ8sulx4+9
g+G6OA/+MRtYVF/v/sWtXb9fiwlVUzy/hpSdY49DH302/xw9mcg7ZJWtB+jaU8go
pTmIxi+RIoxvBILafpYNehx6ir3dyXmCoDGOURx3jnGiFim/cJZTMP5ycDfEWcMk
w1j+4YSim7XSJVisuy4eMa+Ki2oLOhhZCIeJpslBKlWCSzEDBcwLHlTkoydZel70
Smfhsho0SCpKRGDtwcRnHvXCV18qkuWzCjKhENDrMGX5s91RVgc4iOFYWrcuwYpD
xWlCUsjS7UTYLTT568Qo3emP8SsOL7bUOv06YHxYEqv4XT5dZrsmhWG68+V3AfYL
sIDLila+mJcUraiQaLJQ0bqHEU8p7OiEw3+2wMJU/21AYL4A7+5jNzcFzE1Ygs0G
RfYVjEESl+FowrFy7ciSHoWih3jRhsagl525EqfJ21mvQHRwcfYPMTYzmm0hf9Kx
FIZ+j61F+nNTLksPi1tw5FgJiv5LxmwqEo5ClTvZShtZ9fzxuTmtgCDzv1U75k+H
XdV8vdkernEXvEdU13w95WTsN7FPL8+gu3DYevFUGjk9xdkiu1Us1W5wc3ntGg64
VtXAbTX6LusQ5ht2q65PUO17vsDZenX/5/kU+yC6za7/TEaBA3Ml7BHFGR9qwWtU
DJUEaGrtrMBzQ9Jndzeof4v/0ZpOx+efe73irt/UeEGS5EeEZn0=
=VVNU
-----END PGP SIGNATURE-----