Just to keep track of the problem.
On openSUSE Tumbleweed, the only way to build 3.1.2 and not fail any test is to build gnu-cobol without lto flags and by disabling hardening.
Otherwise #698 will fail with hardening and #984 will fail with lto.
See attached test logs.
Test 984 "with lto" fails with:
If you can explain what that is about I can possibly say something else but so far it looks like your lto environment has a bug.
The other one is a theoretical bug in the testsuite source that could happen if the C routine defined there would be called without any parameter. It will be fixed to allow it be build without warnings "soon", if you want a clean build apply the following patch to the testsuite script:
Thanks for the report, if you can give some insights about the lto error then we may could come up with a patch.
Test #698 is indeed fixed with that patch.
Regarding LTO problems, I must confess it's a tad beyond my comprehension: it's something I've seen happen multiple times and either lto is disabled for the package or upstream fixes it, but unfortunately I couldn't tell you how. I will inquire, though.
Meanwhile, does this mean anything to you?
@lovigi - Can you please check if this is solved with 3.2?
The warning should be solved without any patch, the LTO - I guess you may tell me.
Note: Depending on the defaults it is "common" that one either has to explicit disable hardening (= auto-dropping everything related to that, which seems to have been done before) or explicit enable hardening (= auto-adding more flags during configure, which is in the current spec file), with the later considered "more safe but slower".
Side note: the spec file used with OpenSUSE may should be updated to use the official URLs:
(and I have no clue why there's a
BuildRequires: dos2unix)Last edit: Simon Sobisch 2023-08-22
Probably a leftover from when some text file was shipped with CRLF line endings.
I removed the patch above and reenabled LTO, logs attached.
P.S: I should add I'm not the package maintainer, I updated it only a couple of times.
OK, there's one failure, and that is unrelated to LTO:
Note that this test explicit trash the memory to trigger a new check after the fact - but it seems that the specific system this test was run on the system was faster to detect that... (my Debian LTS doesn't catch that, also not when configured with
--enable-hardening).If someone could find a "less intrusive" stack breakage that the system does not catch, but GnuCOBOL does, that would be quite nice.
Until then you may want to disable the specific check by using the following somewhere between unpacking and running
make check:If this (unportable) test is the only thing then it would definitely be good to update the package with the new settings and without a patch.
And I'd say we can close-fix this issue, do you agree?
Last edit: Simon Sobisch 2023-08-22