bugGNU Octave - Bugs: bug #60527, Warnings during compilation and...

 
 

bug #60527: Warnings during compilation and test errors with gcc 11

Submitter:  Michael Godfrey <godfrey>
Submitted:  Wed 05 May 2021 08:49:06 AM UTC
   
 
Category:  Interpreter Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Fixed Assigned to:  None
Originator Name:  godfrey Open/Closed:  * Closed
Release:  * dev Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Wed 17 Nov 2021 04:03:58 PM UTC, comment #23: 

Closing as fixed.

Markus Mützel <mmuetzel>
Group administrator
Fri 12 Nov 2021 05:57:34 PM UTC, comment #22: 

Can this report be closed?  I now have GCC 11 and I don't see any warnings that are different from my previous GCC 10 builds.

John W. Eaton <jwe>
Group administrator
Sat 15 May 2021 12:07:18 AM UTC, comment #21: 

The failing test is:ov-java.cc-tst

This may be due to one of the tests which depends on
the jver which will be different in fc34

Michael Godfrey <godfrey>
Group Member
Thu 13 May 2021 10:32:33 PM UTC, comment #20: 

Good news. I removed all the java related entries from the fc34
system


and then went to: https://jdk.java.net/16/
and downloaded Linux / x64 tar.gz (sha256)

Then installed the required files and recompiled.
dnf install java-latest-openjdk.x86_64
dnf install java-latest-openjdk-devel.x86_64
dnf install java-11-openjdk-devel.x86_64
This produced for :rpm -qa|grep java

tzdata-java-2021a-1.fc34.noarch
python3-javapackages-5.3.0-15.fc34.noarch
abrt-java-connector-1.2.0-5.fc34.x86_64
javapackages-filesystem-5.3.0-15.fc34.noarch
java-11-openjdk-headless-11.0.11.0.9-0.fc34.x86_64
java-11-openjdk-11.0.11.0.9-0.fc34.x86_64
javapackages-tools-5.3.0-15.fc34.noarch
javacc-7.0.4-8.fc34.noarch
java-latest-openjdk-headless-16.0.1.0.9-1.rolling.fc34.x86_64
java-latest-openjdk-16.0.1.0.9-1.rolling.fc34.x86_64
java-latest-openjdk-devel-16.0.1.0.9-1.rolling.fc34.x86_64
java-11-openjdk-devel-11.0.11.0.9-0.fc34.x86_64


make check:
 This
produced:
  PASS                            16771
  FAIL                                0
  XFAIL (reported bug)               28
  SKIP (missing feature)            126
  SKIP (run-time condition)          20

My fc32 system gives:
  PASS                            16772
  FAIL                                0
  XFAIL (reported bug)               27
  SKIP (missing feature)            126
  SKIP (run-time condition)          20

Just one failure to resolve. So, it appears that the java
in the fc34 release is not useful. The recommendation to go to
the java source above is clearly better.

Michael Godfrey <godfrey>
Group Member
Thu 13 May 2021 04:15:26 PM UTC, comment #19: 

Another part of the Register piece on Java and FC34:

Miller and Cotton thanked him for his efforts, while others indicated agreement that maintaining Java is particularly burdensome.

"This is a task that has burned out many people (including me)," said Aleksandar Kurtakov from the Red Hat Eclipse team; while Ankur Sinha from the neuro-sig group (neuroscience research) said "the neuro-sig reached a similar conclusion - that they're just too much work or just pretty much impossible to keep in Fedora. We've now accepted that documenting Java tools and asking users to install them directly from upstream is the most we can manage."

Michael Godfrey <godfrey>
Group Member
Thu 13 May 2021 01:50:06 PM UTC, comment #18: 

fc34 contains java 8 and java 11 components. This may be part of the problem. However, the following is worth noting:

From The Register (https://www.theregister.com/2021/04/27/fedora_34_released_fabio_valentini_quits/):

============================================================
Spoiling the celebrations, Fedora's main Java package maintainer Fabio Valentini said yesterday: "I can no longer in good conscience be the primary maintainer of (most) Java packages in Fedora."

It is worse than that; in a post entitled "The Death of Java (packages)" he said "new versions and even security issues have been piling up for months," that "Java package maintainers from Red Hat have been exceptionally unhelpful, and have not substantially contributed to Java packages in Fedora in years," that the Eclipse Java-based IDE (the packages for which are maintained by someone else) is a "dumpster fire" and that "I see no way for the situation to improve."
=====================================================

In any case, it will take someone with substantial java skills to resolve the current fc34 java problems. These are mainly apparent lack of some features. The features may be present in java-11 but just not found.

Michael Godfrey <godfrey>
Group Member
Sat 08 May 2021 11:32:02 PM UTC, comment #17: 

Dmitri,
Yes. I run the tests on 2 systems which are kept
in sync for Octave level.

Michael Godfrey <godfrey>
Group Member
Fri 07 May 2021 03:17:57 PM UTC, comment #16: 

Michael, are you comparing the results on the same hg revision?

Dmitri.
--

Basically, no. Both fc34 and Octave are being updated. So, it would seem that just being aware of the current failures is good. But, there are also pretty obvious minor items such as deprecated usage in gcc 11 that can be fixed. It will take some time for fc34 to be in wide use.


Michael Godfrey <godfrey>
Group Member
Thu 06 May 2021 01:57:19 PM UTC, comment #15: 

Somehow I overlooked at first that there are 2 tests there --
is this a recent change (due to failures on MacOS)?

Michael, are you comparing the results on the same hg revision?

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Thu 06 May 2021 01:51:36 PM UTC, comment #14: 

But this memory test is completely normal:

First test is passes on linux (because it is isunix()), the seconds
skips, because it !ispc().

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Thu 06 May 2021 01:37:25 PM UTC, comment #13: 

Sorry. That should have read: "The condition being that the test is not run on macOS."

Markus Mützel <mmuetzel>
Group administrator
Thu 06 May 2021 01:36:27 PM UTC, comment #12: 

Is the test skipped because of a missing feature for you?
On Ubuntu 20.10, one test is skipped due to a runtime condition for me. The condition being that the test is not run on Windows.

Markus Mützel <mmuetzel>
Group administrator
Thu 06 May 2021 01:32:49 PM UTC, comment #11: 

I confirm that "test memory" skips due to missing features (?!)
Though memory() seems to work and give reasonable values.

test methods
PASSES 9 out of 9 tests

test ismethod
PASSES 3 out of 3 tests

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Thu 06 May 2021 12:59:44 PM UTC, comment #10: 

The only other issue with gcc11/clang12 I noticed is that at higher optimization level (-O3) on modern cpus (with avx2 instructions) we get more precision-related failures.
Asa result, besides failing tests, some iterative solvers take much longer time to converge.
To me, those look like compiler bugs (they do not truncate intermediate results of avx operations?).

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Thu 06 May 2021 12:45:45 PM UTC, comment #9: 

Markus,

Will provide log soon. Right now there are frequent updates to fc34. A recent one changed the number of make check fails...
I probably should have waited somewhat longer before trying an fc34 install.

Michael Godfrey <godfrey>
Group Member
Thu 06 May 2021 11:23:14 AM UTC, comment #8: 

Like I wrote, that was just a guess. :-)

Could you please attach the fntests.log and config.log of the system with skipped tests?

Markus Mützel <mmuetzel>
Group administrator
Thu 06 May 2021 11:18:44 AM UTC, comment #7: 

Markus,

Your guesses are not correct. My 2 systems are very similar and for the same version of Octave they have in the past produced identical results for make check. The main purpose of my second system is for backup. Therefore I make sure that it is in sync with my primary system. Now it is not in sync due to the multiple errors produced by gcc 11.

Skipped tests which occur on only one of two identically configured systems, except for the version of system software, are errors.

There are various reasons for the errors but they best addressed by the owners of the functions. It is unlikely that the gcc owners will accept any of these incompatibilities as errors. So, it is up to Octave developers to adapt.

Also, the same Java-1.8.0 and associated packages is installed on both systems.

Michael Godfrey <godfrey>
Group Member
Thu 06 May 2021 10:33:45 AM UTC, comment #6: 

Skipped tests aren't errors (at least not necessarily).
Please, check your configure results to get information on which features are missing and why.

Seeing which functions have skipped tests, I'm guessing you either don't have a Java runtime installed or it wasn't detected.

Markus Mützel <mmuetzel>
Group administrator
Thu 06 May 2021 10:13:07 AM UTC, comment #5: 

There are other errors such as:
miscellaneous/ismethod.m ....................................... pass    2/2  
                                                 (missing feature) SKIP    1

miscellaneous/memory.m ......................................... pass    1/1  
                                              (run-time condition) SKIP    1

miscellaneous/methods.m ........................................ pass    6/6  
                                                 (missing feature) SKIP    3
 
All of the above are new in fc34 gcc 11 as compared to fc32
Current summaries:

fc32
  PASS                            16772
  FAIL                                0
  XFAIL (reported bug)               27
  SKIP (missing feature)            126
  SKIP (run-time condition)          18
fc34:
  PASS                            16733
  FAIL                                0
  XFAIL (reported bug)               27
  SKIP (missing feature)            166
  SKIP (run-time condition)          17



Michael Godfrey <godfrey>
Group Member
Wed 05 May 2021 12:43:29 PM UTC, comment #4: 

The crash is due to pipewire audio in Fedora:

https://savannah.gnu.org/bugs/?60365

https://bugzilla.redhat.com/show_bug.cgi?id=1948238

You need to disable audio.

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Wed 05 May 2021 12:03:50 PM UTC, comment #3: 

I believe some of those warnings will disappear after this changeset:
https://hg.savannah.gnu.org/hgweb/octave/rev/0169ffb3fe5d

But there are quite a few others of this type:

In file included from /usr/include/c++/11/list:60,
                 from ../src/liboctave/util/lo-regexp.cc:30:
In static member function ‘static _Tp* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(const _Tp*, const _Tp*, _Tp*) [with _Tp = long int; bool _IsMove = false]’,
    inlined from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false; _II = long int*; _OI = long int*]’ at /usr/include/c++/11/bits/stl_algobase.h:495:30,
    inlined from ‘_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = false; _II = long int*; _OI = long int*]’ at /usr/include/c++/11/bits/stl_algobase.h:522:42,
    inlined from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false; _II = long int*; _OI = long int*]’ at /usr/include/c++/11/bits/stl_algobase.h:529:31,
    inlined from ‘_OI std::copy(_II, _II, _OI) [with _II = long int*; _OI = long int*]’ at /usr/include/c++/11/bits/stl_algobase.h:620:7,
    inlined from ‘_OutputIterator std::__copy_n(_RandomAccessIterator, _Size, _OutputIterator, std::random_access_iterator_tag) [with _RandomAccessIterator = long int*; _Size = int; _OutputIterator = long int*]’ at /usr/include/c++/11/bits/stl_algo.h:725:23,
    inlined from ‘_OIter std::copy_n(_IIter, _Size, _OIter) [with _IIter = long int*; _Size = int; _OIter = long int*]’ at /usr/include/c++/11/bits/stl_algo.h:757:27,
    inlined from ‘_OIter std::copy_n(_IIter, _Size, _OIter) [with _IIter = long int*; _Size = int; _OIter = long int*]’ at /usr/include/c++/11/bits/stl_algo.h:743:5,
    inlined from ‘octave_idx_type* dim_vector::clonerep()’ at ../src/liboctave/array/dim-vector.h:132:17,
    inlined from ‘void dim_vector::make_unique()’ at ../src/liboctave/array/dim-vector.h:169:45,
    inlined from ‘void dim_vector::make_unique()’ at ../src/liboctave/array/dim-vector.h:165:8,
    inlined from ‘void dim_vector::chop_trailing_singletons()’ at ../src/liboctave/array/dim-vector.h:246:21,
    inlined from ‘Array<T>::Array(const dim_vector&) [with T = std::__cxx11::basic_string<char>]’ at ../src/liboctave/array/Array.h:271:41,
    inlined from ‘string_vector::string_vector(octave_idx_type)’ at ../src/liboctave/util/str-vec.h:45:48,
    inlined from ‘octave::regexp::match_data octave::regexp::match(const string&) const’ at ../src/liboctave/util/lo-regexp.cc:374:44:
/usr/include/c++/11/bits/stl_algobase.h:431:30: warning: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ reading between 24 and 17179869176 bytes from a region of size 16 [-Wstringop-overread]
  431 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/liboctave/array/Array.h:38,
                 from ../src/liboctave/array/Array-util.h:31,
                 from ../src/liboctave/array/MSparse.h:31,
                 from ../src/liboctave/array/MatrixType.h:31,
                 from ../src/liboctave/operators/mx-base.h:33,
                 from ../src/liboctave/array/Matrix.h:34,
                 from ../src/liboctave/util/lo-regexp.cc:41:
../src/liboctave/array/dim-vector.h: In member function ‘octave::regexp::match_data octave::regexp::match(const string&) const’:
../src/liboctave/array/dim-vector.h:116:56: note: at offset 16 into source object of size 32 allocated by ‘operator new []’
  116 |     octave_idx_type *r = new octave_idx_type [ndims + 2];
      |                                                        ^


Tbh, I don't know what to make out of them.
It might very well be that we can safely ignore those.

Markus Mützel <mmuetzel>
Group administrator
Wed 05 May 2021 11:27:37 AM UTC, comment #2: 

Another issue on Fedora 34:
I usually build dev Octave using "make -j4 && make check && make dist". After the 'make check' step, early in 'make dist' I get a core dump; reliably reproducible. However, restarting 'make dist' by itself then seems to create the .lz .xz .tar.gz dist archives w/o issues. Octave otherwise runs fine, both .run-octave and after installation.
To me it appears that 'make check' doesn't work completely cleanly,
but I haven't explored further, e.g. by leaving out 'make check' or 'make -j4'.
Fedora 34 is very actively updated ATM, maybe/hopefully some of these issues will be ironed out later on.

Philip Nienhuis <philipnienhuis>
Group Member
Wed 05 May 2021 09:43:04 AM UTC, comment #1: 

Thanks for raising this early.

IIUC, the Fedora buildbot workers have been updated recently, too. Afaict, they are also using gcc 11 now.
They are probably emitting the same warnings during compilation you are seeing.
E.g. here: http://buildbot.octave.org:8010/#/builders/11/builds/2265/steps/6/logs/stdio

It might be worth checking if there is something about them.

However, all tests still pass for them.

How did you configure Octave? And which tests are failing for you that didn't fail with gcc 10?

Markus Mützel <mmuetzel>
Group administrator
Wed 05 May 2021 08:49:06 AM UTC, original submission:  

I installed Fedora34 on my test machine. The install went fairly smoothly. But, compiling the current development system showed
substantial problems due to gcc 11. The compile completes but
there are many warning messages which did not appear in gcc 10.
Running make check also shows new failures. 

Since FC34 is now the official Fedora release this problem with
gcc 11 will need attention sometime soon.

My update was from FC32 but I doubt if that is relevant. The
update only had minor problems (QT did not update correctly for example).

Michael Godfrey <godfrey>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by dasergatskov (Posted a comment)
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by godfrey (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2021-11-17 mmuetzel StatusNeed Info Fixed
        Open/ClosedOpen Closed
    2021-05-05 mmuetzel StatusNone Need Info
        SummaryBuild failures due to FC34 use of gcc 11 Warnings during compilation and test errors with gcc 11

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code