Than you for the bug report and the patch, Alexandre. I am uploading the new release shortly.
Best regards, Georges. Alexandre Ghiti a écrit : > Package: aseba > Version: 1.6.99+dfsg > Severity: normal > Tags: patch > User: ubuntu-de...@lists.ubuntu.com > Usertags: origin-ubuntu kinetic ubuntu-patch > > Dear Maintainer, > > SIGSTKSZ is not constant anymore so altStackMem must be allocated > dynamically: this patch implements what is done upstream. > > In Ubuntu, the attached patch was applied to fix the FTBFS as can be > seen in [1]. > > Not related but I updated the homepage link to directly point to aseba, > it took me a few minutes to find it from the original link. > > Thanks for considering the patch. > > [1] > https://launchpad.net/~alexghiti/+archive/ubuntu/riscv/+sourcepub/13492679/+listing-archive-extra > > -- System Information: > Debian Release: bookworm/sid > APT prefers jammy-updates > APT policy: (500, 'jammy-updates'), (500, 'jammy-security'), (500, 'jammy') > Architecture: amd64 (x86_64) > Foreign Architectures: i386 > > Kernel: Linux 5.15.0-27-generic (SMP w/16 CPU threads) > Kernel taint flags: TAINT_WARN > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: > LC_ALL set to en_US.UTF-8), LANGUAGE not set > Shell: /bin/sh linked to /usr/bin/dash > Init: systemd (via /run/systemd/system) > LSM: AppArmor: enabled > diff -Nru aseba-1.6.99+dfsg/debian/control aseba-1.6.99+dfsg/debian/control > --- aseba-1.6.99+dfsg/debian/control 2020-09-17 18:17:11.000000000 +0200 > +++ aseba-1.6.99+dfsg/debian/control 2022-05-03 16:24:08.000000000 +0200 > @@ -15,7 +15,7 @@ > Standards-Version: 4.5.0 > Vcs-Browser: https://salsa.debian.org/science-team/aseba.git > Vcs-Git: https://salsa.debian.org/science-team/aseba.git > -Homepage: https://www.thymio.org/ > +Homepage: https://github.com/aseba-community/aseba > > Package: aseba > Architecture: any > diff -Nru > aseba-1.6.99+dfsg/debian/patches/0001-third_party-catch2-Fix-non-constant-SIGSTKSZ.patch > > aseba-1.6.99+dfsg/debian/patches/0001-third_party-catch2-Fix-non-constant-SIGSTKSZ.patch > --- > aseba-1.6.99+dfsg/debian/patches/0001-third_party-catch2-Fix-non-constant-SIGSTKSZ.patch > 1970-01-01 01:00:00.000000000 +0100 > +++ > aseba-1.6.99+dfsg/debian/patches/0001-third_party-catch2-Fix-non-constant-SIGSTKSZ.patch > 2022-05-03 16:21:52.000000000 +0200 > @@ -0,0 +1,81 @@ > +From 830dbd151a5743629f3c6fb2827bb65bb6bca70d Mon Sep 17 00:00:00 2001 > +From: Alexandre Ghiti <alexandre.gh...@canonical.com> > +Date: Tue, 3 May 2022 15:15:12 +0200 > +Subject: [PATCH] third_party: catch2: Fix non-constant SIGSTKSZ > + > +SIGSTKSZ is not constant anymore so altStackMem must be allocated > +dynamically: this patch implements what is done upstream. > + > +Signed-off-by: Alexandre Ghiti <alexandre.gh...@canonical.com> > +--- > + third_party/catch2/include/catch2/catch.hpp | 23 ++++++++++++++++++--- > + 1 file changed, 20 insertions(+), 3 deletions(-) > + > +diff --git a/third_party/catch2/include/catch2/catch.hpp > b/third_party/catch2/include/catch2/catch.hpp > +index 081cb41..2de9330 100644 > +--- a/third_party/catch2/include/catch2/catch.hpp > ++++ b/third_party/catch2/include/catch2/catch.hpp > +@@ -4731,7 +4731,8 @@ namespace Catch { > + static bool isSet; > + static struct sigaction oldSigActions[]; > + static stack_t oldSigStack; > +- static char altStackMem[]; > ++ static char* altStackMem; > ++ static std::size_t altStackSize; > + > + static void handleSignal( int sig ); > + > +@@ -7226,6 +7227,11 @@ namespace { > + void reportFatal( char const * const message ) { > + > Catch::getCurrentContext().getResultCapture()->handleFatalErrorCondition( > message ); > + } > ++ > ++ //! Minimal size Catch2 needs for its own fatal error handling. > ++ //! Picked empirically, so it might not be sufficient on all > ++ //! platforms, and for all configurations. > ++ constexpr std::size_t minStackSizeForErrors = 32 * 1024; > + } > + > + #endif // signals/SEH handling > +@@ -7318,10 +7324,16 @@ namespace Catch { > + } > + > + FatalConditionHandler::FatalConditionHandler() { > ++ assert(!altStackMem && "Cannot initialize POSIX signal handler when > one already exists"); > ++ if (altStackSize == 0) { > ++ altStackSize = std::max(static_cast<size_t>(SIGSTKSZ), > minStackSizeForErrors); > ++ } > ++ altStackMem = new char[altStackSize](); > ++ > + isSet = true; > + stack_t sigStack; > + sigStack.ss_sp = altStackMem; > +- sigStack.ss_size = SIGSTKSZ; > ++ sigStack.ss_size = altStackSize; > + sigStack.ss_flags = 0; > + sigaltstack(&sigStack, &oldSigStack); > + struct sigaction sa = { }; > +@@ -7334,6 +7346,10 @@ namespace Catch { > + } > + > + FatalConditionHandler::~FatalConditionHandler() { > ++ delete[] altStackMem; > ++ // We signal that another instance can be constructed by zeroing > ++ // out the pointer. > ++ altStackMem = nullptr; > + reset(); > + } > + > +@@ -7352,7 +7368,8 @@ namespace Catch { > + bool FatalConditionHandler::isSet = false; > + struct sigaction > FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = > {}; > + stack_t FatalConditionHandler::oldSigStack = {}; > +- char FatalConditionHandler::altStackMem[SIGSTKSZ] = {}; > ++ char* FatalConditionHandler::altStackMem = nullptr; > ++ std::size_t FatalConditionHandler::altStackSize = 0; > + > + } // namespace Catch > + > +-- > +2.34.1 > + > diff -Nru aseba-1.6.99+dfsg/debian/patches/series > aseba-1.6.99+dfsg/debian/patches/series > --- aseba-1.6.99+dfsg/debian/patches/series 1970-01-01 01:00:00.000000000 > +0100 > +++ aseba-1.6.99+dfsg/debian/patches/series 2022-05-03 16:22:39.000000000 > +0200 > @@ -0,0 +1 @@ > +0001-third_party-catch2-Fix-non-constant-SIGSTKSZ.patch -- Georges KHAZNADAR et Jocelyne FOURNIER 22 rue des mouettes, 59240 Dunkerque France. Téléphone +33 (0)3 28 29 17 70
signature.asc
Description: PGP signature