• Bug#1099287: rt-tests: FTBFS: error: redefinition of 'struct sched_attr

    From Santiago Vila@21:1/5 to All on Sat Mar 1 22:10:12 2025
    Package: src:rt-tests
    Version: 2.6-1
    Severity: serious
    Tags: ftbfs trixie sid

    Dear maintainer:

    During a rebuild of all packages in unstable, your package failed to build:

    --------------------------------------------------------------------------------
    [...]
    debian/rules clean
    dh clean
    dh_auto_clean
    make -j2 distclean
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    for F in cyclictest hackbench pip_stress pi_stress pmqtest ptsematest rt-migrate-test signaltest sigwaittest svsematest cyclicdeadline deadline_test queuelat ssdd oslat *.o .depend *.*~ *.orig *.rej *.d *.a *.8.gz *.8.bz2 ; do find -type f -name $F |
    xargs rm -f; done
    rm -f rt-tests-*.tar
    rm -f hwlatdetect
    rm -f get_cyclictest_snapshot
    rm -f tags
    rm -rf BUILD BUILDROOT RPMS SRPMS SPECS releases *.tar.gz *.tar.asc tmp make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    dh_clean
    debian/rules binary
    dh build-arch
    dh_update_autotools_config -a
    dh_autoreconf -a
    dh_auto_configure -a
    dh_auto_build -a
    make -j2 "INSTALL=install --strip-program=true"
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    gcc -D VERSION=2.6 -c src/cyclictest/cyclictest.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_
    FORTIFY_SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/cyclictest.o
    gcc -D VERSION=2.6 -c src/lib/rt-error.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_FORTIFY_
    SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-error.o
    gcc -D VERSION=2.6 -c src/lib/rt-get_cpu.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_FORTIFY_
    SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-get_cpu.o
    gcc -D VERSION=2.6 -c src/lib/rt-sched.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_FORTIFY_
    SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-sched.o
    gcc -D VERSION=2.6 -c src/lib/rt-utils.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_FORTIFY_
    SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-utils.o
    In file included from src/lib/rt-utils.c:28:
    src/include/rt-sched.h:45:8: error: redefinition of ‘struct sched_attr’
    45 | struct sched_attr {
    | ^~~~~~~~~~
    In file included from /usr/include/x86_64-linux-gnu/bits/sched.h:63,
    from /usr/include/sched.h:43,
    from src/lib/rt-utils.c:14: /usr/include/linux/sched/types.h:98:8: note: originally defined here
    98 | struct sched_attr {
    | ^~~~~~~~~~
    src/include/rt-sched.h:62:5: error: conflicting types for ‘sched_setattr’; have ‘int(pid_t, const struct sched_attr *, unsigned int)’ {aka ‘int(int, const struct sched_attr *, unsigned int)’}
    62 | int sched_setattr(pid_t pid,
    | ^~~~~~~~~~~~~
    /usr/include/x86_64-linux-gnu/bits/sched.h:148:5: note: previous declaration of ‘sched_setattr’ with type ‘int(pid_t, struct sched_attr *, unsigned int)’ {aka ‘int(int, struct sched_attr *, unsigned int)’}
    148 | int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags)
    | ^~~~~~~~~~~~~
    src/include/rt-sched.h:66:5: error: conflicting types for ‘sched_getattr’; have ‘int(pid_t, struct sched_attr *, unsigned int, unsigned int)’ {aka ‘int(int, struct sched_attr *, unsigned int, unsigned int)’}
    66 | int sched_getattr(pid_t pid,
    | ^~~~~~~~~~~~~
    /usr/include/x86_64-linux-gnu/bits/sched.h:153:5: note: previous declaration of ‘sched_getattr’ with type ‘int(pid_t, struct sched_attr *, unsigned int, unsigned int)’ {aka ‘int(int, struct sched_attr *, unsigned int, unsigned int)’}
    153 | int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size,
    | ^~~~~~~~~~~~~
    src/lib/rt-utils.c: In function ‘tracemark’:
    src/lib/rt-utils.c:480:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    480 | write(tracemark_fd, tracebuf, len);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/lib/rt-utils.c:483:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    483 | write(trace_fd, "0\n", 2);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    make[1]: *** [Makefile:97: bld/rt-utils.o] Error 1
    make[1]: *** Waiting for unfinished jobs....
    make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    dh_auto_build: error: make -j2 "INSTALL=install --strip-program=true" returned exit code 2
    make: *** [debian/rules:21: build-arch-stamp] Error 25
    dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

    The above is just how the build ends and not necessarily the most relevant part.
    If required, the full build log is available here:

    https://people.debian.org/~sanvila/build-logs/202503/

    About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages.

    If you could not reproduce the bug please contact me privately, as I
    am willing to provide ssh access to a virtual machine where the bug is
    fully reproducible.

    If this is really a bug in one of the build-depends, please use
    reassign and add an affects on src:rt-tests, so that this is still
    visible in the BTS web page for this package.

    Thanks.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Debian Bug Tracking System@21:1/5 to All on Thu Mar 6 19:40:02 2025
    Processing control commands:

    tag -1 + patch
    Bug #1099287 [src:rt-tests] rt-tests: FTBFS: error: redefinition of 'struct sched_attr'
    Added tag(s) patch.

    --
    1099287: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1099287
    Debian Bug Tracking System
    Contact owner@bugs.debian.org with problems

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aurelien Jarno@21:1/5 to Santiago Vila on Thu Mar 6 19:40:02 2025
    control: tag -1 + patch

    Hi,

    On 2025-03-01 21:03, Santiago Vila wrote:
    Package: src:rt-tests
    Version: 2.6-1
    Severity: serious
    Tags: ftbfs trixie sid

    Dear maintainer:

    During a rebuild of all packages in unstable, your package failed to build:

    --------------------------------------------------------------------------------
    [...]
    debian/rules clean
    dh clean
    dh_auto_clean
    make -j2 distclean
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    for F in cyclictest hackbench pip_stress pi_stress pmqtest ptsematest rt-migrate-test signaltest sigwaittest svsematest cyclicdeadline deadline_test queuelat ssdd oslat *.o .depend *.*~ *.orig *.rej *.d *.a *.8.gz *.8.bz2 ; do find -type f -name $F |
    xargs rm -f; done
    rm -f rt-tests-*.tar
    rm -f hwlatdetect
    rm -f get_cyclictest_snapshot
    rm -f tags
    rm -rf BUILD BUILDROOT RPMS SRPMS SPECS releases *.tar.gz *.tar.asc tmp make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    dh_clean
    debian/rules binary
    dh build-arch
    dh_update_autotools_config -a
    dh_autoreconf -a
    dh_auto_configure -a
    dh_auto_build -a
    make -j2 "INSTALL=install --strip-program=true"
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    gcc -D VERSION=2.6 -c src/cyclictest/cyclictest.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_
    FORTIFY_SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/cyclictest.o
    gcc -D VERSION=2.6 -c src/lib/rt-error.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_FORTIFY_
    SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-error.o
    gcc -D VERSION=2.6 -c src/lib/rt-get_cpu.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_
    FORTIFY_SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-get_cpu.o
    gcc -D VERSION=2.6 -c src/lib/rt-sched.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_FORTIFY_
    SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-sched.o
    gcc -D VERSION=2.6 -c src/lib/rt-utils.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_FORTIFY_
    SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-utils.o
    In file included from src/lib/rt-utils.c:28:
    src/include/rt-sched.h:45:8: error: redefinition of ‘struct sched_attr’
    45 | struct sched_attr {
    | ^~~~~~~~~~
    In file included from /usr/include/x86_64-linux-gnu/bits/sched.h:63,
    from /usr/include/sched.h:43,
    from src/lib/rt-utils.c:14: /usr/include/linux/sched/types.h:98:8: note: originally defined here
    98 | struct sched_attr {
    | ^~~~~~~~~~
    src/include/rt-sched.h:62:5: error: conflicting types for ‘sched_setattr’; have ‘int(pid_t, const struct sched_attr *, unsigned int)’ {aka ‘int(int, const struct sched_attr *, unsigned int)’}
    62 | int sched_setattr(pid_t pid,
    | ^~~~~~~~~~~~~
    /usr/include/x86_64-linux-gnu/bits/sched.h:148:5: note: previous declaration of ‘sched_setattr’ with type ‘int(pid_t, struct sched_attr *, unsigned int)’ {aka ‘int(int, struct sched_attr *, unsigned int)’}
    148 | int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags)
    | ^~~~~~~~~~~~~
    src/include/rt-sched.h:66:5: error: conflicting types for ‘sched_getattr’; have ‘int(pid_t, struct sched_attr *, unsigned int, unsigned int)’ {aka ‘int(int, struct sched_attr *, unsigned int, unsigned int)’}
    66 | int sched_getattr(pid_t pid,
    | ^~~~~~~~~~~~~
    /usr/include/x86_64-linux-gnu/bits/sched.h:153:5: note: previous declaration of ‘sched_getattr’ with type ‘int(pid_t, struct sched_attr *, unsigned int, unsigned int)’ {aka ‘int(int, struct sched_attr *, unsigned int, unsigned int)’}
    153 | int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size,
    | ^~~~~~~~~~~~~
    src/lib/rt-utils.c: In function ‘tracemark’:
    src/lib/rt-utils.c:480:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    480 | write(tracemark_fd, tracebuf, len);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    src/lib/rt-utils.c:483:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    483 | write(trace_fd, "0\n", 2);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    make[1]: *** [Makefile:97: bld/rt-utils.o] Error 1
    make[1]: *** Waiting for unfinished jobs....
    make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    dh_auto_build: error: make -j2 "INSTALL=install --strip-program=true" returned exit code 2
    make: *** [debian/rules:21: build-arch-stamp] Error 25
    dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

    This build failure is due to glibc 2.41 which started to define
    sched_setattr() and struct sched_attr. I am sorry I missed this when
    preparing this version.

    There is a patch available upstream fixing this issue: https://web.git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/commit/?id=d3a23a0cc76789c3083df3bad78982cd49bc4c5e

    Regards
    Aurelien

    --
    Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://aurel32.net

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aurelien Jarno@21:1/5 to Aurelien Jarno on Fri Mar 14 22:30:01 2025
    --FYnkUPFPVM7REtZH
    Content-Type: text/plain; charset=utf-8
    Content-Disposition: inline
    Content-Transfer-Encoding: quoted-printable

    Hi,

    On 2025-03-06 19:29, Aurelien Jarno wrote:
    control: tag -1 + patch

    Hi,

    On 2025-03-01 21:03, Santiago Vila wrote:
    Package: src:rt-tests
    Version: 2.6-1
    Severity: serious
    Tags: ftbfs trixie sid

    Dear maintainer:

    During a rebuild of all packages in unstable, your package failed to build:

    --------------------------------------------------------------------------------
    [...]
    debian/rules clean
    dh clean
    dh_auto_clean
    make -j2 distclean
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    for F in cyclictest hackbench pip_stress pi_stress pmqtest ptsematest rt-migrate-test signaltest sigwaittest svsematest cyclicdeadline deadline_test queuelat ssdd oslat *.o .depend *.*~ *.orig *.rej *.d *.a *.8.gz *.8.bz2 ; do find -type f -name $F |
    xargs rm -f; done
    rm -f rt-tests-*.tar
    rm -f hwlatdetect
    rm -f get_cyclictest_snapshot
    rm -f tags
    rm -rf BUILD BUILDROOT RPMS SRPMS SPECS releases *.tar.gz *.tar.asc tmp make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    dh_clean
    debian/rules binary
    dh build-arch
    dh_update_autotools_config -a
    dh_autoreconf -a
    dh_auto_configure -a
    dh_auto_build -a
    make -j2 "INSTALL=install --strip-program=true"
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    gcc -D VERSION=2.6 -c src/cyclictest/cyclictest.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -
    D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/cyclictest.o
    gcc -D VERSION=2.6 -c src/lib/rt-error.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_
    FORTIFY_SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-error.o
    gcc -D VERSION=2.6 -c src/lib/rt-get_cpu.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_
    FORTIFY_SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-get_cpu.o
    gcc -D VERSION=2.6 -c src/lib/rt-sched.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_
    FORTIFY_SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-sched.o
    gcc -D VERSION=2.6 -c src/lib/rt-utils.c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -O2 -g -Wdate-time -D_
    FORTIFY_SOURCE=2 -D_GNU_SOURCE -Isrc/include -o bld/rt-utils.o
    In file included from src/lib/rt-utils.c:28:
    src/include/rt-sched.h:45:8: error: redefinition of ‘struct sched_attr’
    45 | struct sched_attr {
    | ^~~~~~~~~~
    In file included from /usr/include/x86_64-linux-gnu/bits/sched.h:63,
    from /usr/include/sched.h:43,
    from src/lib/rt-utils.c:14: /usr/include/linux/sched/types.h:98:8: note: originally defined here
    98 | struct sched_attr {
    | ^~~~~~~~~~
    src/include/rt-sched.h:62:5: error: conflicting types for ‘sched_setattr’; have ‘int(pid_t, const struct sched_attr *, unsigned int)’ {aka ‘int(int, const struct sched_attr *, unsigned int)’}
    62 | int sched_setattr(pid_t pid,
    | ^~~~~~~~~~~~~
    /usr/include/x86_64-linux-gnu/bits/sched.h:148:5: note: previous declaration of ‘sched_setattr’ with type ‘int(pid_t, struct sched_attr *, unsigned int)’ {aka ‘int(int, struct sched_attr *, unsigned int)’}
    148 | int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags)
    | ^~~~~~~~~~~~~
    src/include/rt-sched.h:66:5: error: conflicting types for ‘sched_getattr’; have ‘int(pid_t, struct sched_attr *, unsigned int, unsigned int)’ {aka ‘int(int, struct sched_attr *, unsigned int, unsigned int)’}
    66 | int sched_getattr(pid_t pid,
    | ^~~~~~~~~~~~~
    /usr/include/x86_64-linux-gnu/bits/sched.h:153:5: note: previous declaration of ‘sched_getattr’ with type ‘int(pid_t, struct sched_attr *, unsigned int, unsigned int)’ {aka ‘int(int, struct sched_attr *, unsigned int, unsigned int)’}
    153 | int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size,
    | ^~~~~~~~~~~~~
    src/lib/rt-utils.c: In function ‘tracemark’:
    src/lib/rt-utils.c:480:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    480 | write(tracemark_fd, tracebuf, len);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/lib/rt-utils.c:483:9: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
    483 | write(trace_fd, "0\n", 2);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    make[1]: *** [Makefile:97: bld/rt-utils.o] Error 1
    make[1]: *** Waiting for unfinished jobs....
    make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    dh_auto_build: error: make -j2 "INSTALL=install --strip-program=true" returned exit code 2
    make: *** [debian/rules:21: build-arch-stamp] Error 25
    dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

    This build failure is due to glibc 2.41 which started to define sched_setattr() and struct sched_attr. I am sorry I missed this when preparing this version.

    There is a patch available upstream fixing this issue: https://web.git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/commit/?id=d3a23a0cc76789c3083df3bad78982cd49bc4c5e

    This issue, introduced by glibc 2.41, is going to cause rt-tests to get
    removed from testing, and thus to not get released with Trixie. I have therefore prepared a non-maintainer upload using the upstream patch and uploaded it to DELAYED/15. Please find the corresponding debdiff
    attached.

    Please feel free to upload a different fix in the meantime, ask me to
    delay further the NMU or to cancel it.

    Regards,
    Aurelien

    --
    Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://aurel32.net

    --FYnkUPFPVM7REtZH
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: attachment; filename="rt-tests_2.6-1.1.NMU.debdiff" Content-Transfer-Encoding: quoted-printable

    diff -Nru rt-tests-2.6/debian/changelog rt-tests-2.6/debian/changelog
    --- rt-tests-2.6/debian/changelog 2024-03-24 16:22:27.000000000 +0100
    +++ rt-tests-2.6/debian/changelog 2025-03-14 21:57:56.000000000 +0100
    @@ -1,3 +1,11 @@
    +rt-tests (2.6-1.1) unstable; urgency=medium
    +
    + * Non-maintainer upload
    + * Add patch 0007-Fix-rt-tests-build-with-glibc-2.41.patch from upstream to
    + fix build with glibc 2.41. Closes: #1099287
    +
    + -- Aurelien Jarno <aurel32@debian.org> Fri, 14 Mar 2025 21:57:56 +0100
    +
    rt-tests (2.6-1) unstable; urgency=medium

    * Update to new upstream release v2.6
    diff -Nru rt-tests-2.6/debian/patches/0007-Fix-rt-tests-build-with-glibc-2.41.patch rt-tests-2.6/debia