bugGNU Octave - Bugs: bug #56171, [octave forge] (control) fails to...

 
 

bug #56171: [octave forge] (control) fails to build and install

Submitted by:  None
Submitted on:  Fri 19 Apr 2019 03:38:36 PM UTC  
 
Category:  Octave Forge Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Need Info Assigned to:  None
Originator Name:  Charles (past) Tolle Originator Email:  -email is unavailable-
Open/Closed:  Open Release:  5.1.0
Operating System:  Mac OS

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

( Jump to the original submission)

Sat 04 May 2019 12:55:24 PM UTC, comment #6: 

Andrew:  yes, they will get email notification if they leave a valid email address.

The following was posted to the mailing list and so did not appear here:

It appears that I had an old path include mistake within my compiler.  Still there but it has been patched via CPATH.   So the old error has gone away.  However a new error has been created within octave's own header files.   I tries reinstall octave normally and from source which installed fine.  But when I still try to install the -forge packages I now get this error:

brew uninstall octave
brew install -s octave
octave

octave
GNU Octave, version 5.1.0
Copyright (C) 2019 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.

Octave was configured for "x86_64-apple-darwin18.5.0".

Additional information about Octave is available at https://www.octave.org.

Please contribute if you find this software useful.
For more information, visit https://www.octave.org/get-involved.html

Read https://www.octave.org/bugs.html to learn how to submit bug reports.
For information about changes from previous versions, type 'news'.

octave:1> pkg install -forge control
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
In file included from __control_helper_functions__.cc:1:
In file included from ./is_real_scalar.cc:28:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/../octave/oct.h:30:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/Matrix.h:31:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/mx-base.h:30:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/MatrixType.h:29:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/MSparse.h:29:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/Array-util.h:28:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/Array.h:37:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/dim-vector.h:35:
/usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/oct-refcount.h:126:80: error: expected ';' after attributes list
using octave_refcount OCTAVE_DEPRECATED (4.4, "use 'octave::refcount' instead") = octave::refcount<T>;
                                                                               ^
                                                                               ;
/usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/oct-refcount.h:126:1: error: cannot template a using declaration
using octave_refcount OCTAVE_DEPRECATED (4.4, "use 'octave::refcount' instead") = octave::refcount<T>;
^
2 errors generated.
make: *** [__control_helper_functions__.oct] Error 1
make: *** Waiting for unfinished jobs....
MA02ID.f:188:21:

MA02ID.f:184:72:

          DO 90 J = 1, N+1
                                                                        2
MA02ID.f:188:21:

                DWORK(J-1) = DWORK(J-1) + TEMP
                     1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:188:34:

MA02ID.f:184:72:

          DO 90 J = 1, N+1
                                                                        2
MA02ID.f:188:34:

                DWORK(J-1) = DWORK(J-1) + TEMP
                                  1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:230:21:

MA02ID.f:226:72:

          DO 160 J = 1, N+1
                                                                        2
MA02ID.f:230:21:

                DWORK(J-1) = DWORK(J-1) + TEMP
                     1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:230:34:

MA02ID.f:226:72:

          DO 160 J = 1, N+1
                                                                        2
MA02ID.f:230:34:

                DWORK(J-1) = DWORK(J-1) + TEMP
                                  1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
tar -xzf slicot.tar.gz
/usr/local/Cellar/octave/5.1.0_2/bin/mkoctfile-5.1.0 -Wall -Wno-deprecated-declarations  __control_helper_functions__.cc
mkdir sltmp
mv slicot/src/*.f ./sltmp
mv slicot/src_aux/*.f ./sltmp
cp TG04BX.fortran ./sltmp/TG04BX.f
cp TB01ZD.fortran ./sltmp/TB01ZD.f
cd sltmp; /usr/local/Cellar/octave/5.1.0_2/bin/mkoctfile-5.1.0 -c *.f
ar -rc slicotlibrary.a ./sltmp/*.o
rm -rf sltmp slicot

pkg: error running `make' for the control package.
error: called from
    configure_make at line 99 column 9
    install at line 184 column 7
    pkg at line 441 column 9
octave:1> exit

the key lines:

/usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/oct-refcount.h:126:80: error: expected ';' after attributes list
using octave_refcount OCTAVE_DEPRECATED (4.4, "use 'octave::refcount' instead") = octave::refcount<T>;
                                                                               ^
                                                                               ;
/usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/oct-refcount.h:126:1: error: cannot template a using declaration
using octave_refcount OCTAVE_DEPRECATED (4.4, "use 'octave::refcount' instead") = octave::refcount<T>;
^
2 errors generated.
make: *** [__control_helper_functions__.oct] Error 1
make: *** Waiting for unfinished jobs....

Additional info:

gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

brew list
arpack                        gcc                        graphicsmagick                libevent                lua                        pixman                        sqlite
cairo                        gcc@4.9                        graphite2                libffi                        maxima                        pkg-config                suite-sparse
clisp                        gcc@7                        gzip                        libheif                        metis                        plotutils                sundials
cmake                        gd                        harfbuzz                libmpc                        mpfr                        portaudio                szip
doxygen                        gdbm                        hdf5                        libogg                        netpbm                        pstoedit                tcl-tk
epstool                        gettext                        icu4c                        libomp                        ocaml                        python                        texinfo
fftw                        ghostscript                ilmbase                        libpng                        octave                        qhull                        veclibfort
fig2dev                        gl2ps                        imagemagick                libsigsegv                open-mpi                qrupdate                webp
flac                        glib                        isl                        libsndfile                openexr                        qt                        wxmac
fltk                        glpk                        jasper                        libtiff                        openjpeg                readline                wxmaxima
fontconfig                gmp                        jpeg                        libtool                        openssl                        rlwrap                        x265
freetype                gnu-sed                        libcerf                        libvorbis                pango                        shared-mime-info        xz
fribidi                        gnuplot                        libde265                little-cms2                pcre                        snappy

My CPATH patch is:

CPATH=/Library/Developer/CommandLineTools/usr/include/c++/v1

Any idea’s?

John W. Eaton <jwe>
Project Administrator
Sat 20 Apr 2019 05:18:58 PM UTC, comment #5: 

Filed bug #56183 for adding tests for building and linking with BLAS, Fortran, etc.

Mike Miller <mtmiller>
Project Administrator
Sat 20 Apr 2019 02:42:57 AM UTC, comment #4: 

Do Anonymous submitters get notifications of comments on their posts?

Eh, screw it: here's a downstream Homebrew PR for a revision bump for octave which I think will fix this problem: https://github.com/Homebrew/homebrew-core/pull/39122

Andrew Janke <apjanke>
Sat 20 Apr 2019 02:25:50 AM UTC, comment #3: 

This does sound like a local configuration issue or a Homebrew formula definition or "bottling" issue.

On my macOS 10.14.4 box with Xcode 10.2 installed, `pkg install -forge control` succeeds for me in Octave.app 5.1.0 beta 3, which is a customized Homebrew-based installation. (Raises warnings as usual, but the actual build & installation succeeds.) But Octave.app uses customized formulae and builds everything from source, so that doesn't necessarily reflect what's happening with core Homebrew octave installs.

On my vanilla Homebrewed Octave 5.1.0 installation, however, it's busted. Different error message, but definitely busted:

octave:5> ver
----------------------------------------------------------------------
GNU Octave Version: 5.1.0 (hg id: d05d6eebde10)
GNU Octave License: GNU General Public License
Operating System: Darwin 18.5.0 Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 x86_64
----------------------------------------------------------------------
no packages installed.
octave:6> pkg install -forge control
[...]
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
ld: warning: directory not found for option '-L/usr/local/opt/gcc/lib/gcc/8/gcc/x86_64-apple-darwin18.2.0/8.3.0'
ld: warning: directory not found for option '-L/usr/local/opt/gcc/lib/gcc/8/gcc/x86_64-apple-darwin18.2.0/8.3.0/../../..'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [__control_slicot_functions__.oct] Error 1
tar -xzf slicot.tar.gz
/usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -Wall -Wno-deprecated-declarations  __control_helper_functions__.cc
mkdir sltmp
mv slicot/src/*.f ./sltmp
mv slicot/src_aux/*.f ./sltmp
cp TG04BX.fortran ./sltmp/TG04BX.f
cp TB01ZD.fortran ./sltmp/TB01ZD.f
cd sltmp; /usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -c *.f
ar -rc slicotlibrary.a ./sltmp/*.o
rm -rf sltmp slicot
LFLAGS="-L/usr/local/Cellar/octave/5.1.0/lib/octave/5.1.0 -L/usr/local/Cellar/octave/5.1.0/lib  -L/usr/local/opt/veclibfort/lib -lvecLibFort  -L/usr/local/opt/gcc/lib/gcc/8/gcc/x86_64-apple-darwin18.2.0/8.3.0 -L/usr/local/opt/gcc/lib/gcc/8/gcc/x86_64-apple-darwin18.2.0/8.3.0/../../.. -lgfortran -lquadmath -lm" \
    /usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -Wall -Wno-deprecated-declarations  __control_slicot_functions__.cc common.cc slicotlibrary.a

pkg: error running `make' for the control package.
error: called from
    configure_make at line 99 column 9
    install at line 184 column 7
    pkg at line 441 column 9
octave:6>

My Homebrew and overall OS installation on this box are pretty well managed imho, so it's less likely to be a local configuration issue here.

gfortran linkage issue? gfortran is provided by gcc.

The gcc Homebrew formula has been updated recently, and the octave formula/bottle has not been updated since:

$ brew log gcc | head -6
commit ddde81887459bc4855031fb5b6919032f35f277b
Author: BrewTestBot <homebrew-test-bot@lists.sfconservancy.org>
Date:   Fri Apr 19 09:46:10 2019 +0000

    gcc: update 8.3.0_1 bottle.

[~]
$ brew log octave | head -6
commit 33a5454868538fee44e7d398b5259b95a5f53f44
Author: BrewTestBot <homebrew-test-bot@lists.sfconservancy.org>
Date:   Tue Mar 26 20:40:27 2019 +0000

    octave: update 5.1.0 bottle.

Often, when a Homebrew formula is updated, its dependencies that have binary linkage to it must also be updated, with a "revision bump" that's just a rebuild to update the bottle to link against the new dependency's build. That may well be what's happening here. Normally, Homebrew's CI infrastructure detects these linkage problems because it runs `brew test` on all the updated formula's dependents. But `brew test` on octave does not involve installing Octave Forge packages, or doing any C/C++/Fortran/mkoctfile compilation. And the Octave installation does not have direct linkage to the gcc libraries (I think). So it may well have missed this.

Reinstalling `octave` from source fixed it for me.

[~]
$ brew uninstall octave
Uninstalling /usr/local/Cellar/octave/5.1.0... (2,261 files, 53.5MB)
[~]
$ brew install -s octave
==> Downloading https://ftp.gnu.org/gnu/octave/octave-5.1.0.tar.xz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/octave/5.1.0 --disable-silent-rules --enable-link-all-dependencies --enable-shared --disable-static --with-hdf5-includedir=/usr
==> make all
==> make install
🍺  /usr/local/Cellar/octave/5.1.0: 2,261 files, 53.8MB, built in 9 minutes 2 seconds
[~]
$ octave
octave:1> pkg install -forge control
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
[...]
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
ld: warning: could not create compact unwind for _sb10yd_: stack subq instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _mb03xp_: stack subq instruction is too different from dwarf stack size
For information about changes from previous versions of the control package, run 'news control'.
octave:2> pkg list
Package Name  | Version | Installation directory
--------------+---------+-----------------------
     control  |   3.2.0 | /Users/janke/octave/control-3.2.0
octave:3>

This is consistent with the Homebrew bottle needing a rebuild to account for the gcc update.

Please report this downstream to Homebrew core at https://github.com/Homebrew/homebrew-core/issues. Tell them specifically that "octave may need a revision bump to handle the recent gcc update". Include a link to this Savannah issue so they can see the background of what's going on.

In the meantime, you can run `brew reinstall -s octave` from the shell command line to probably get a working Octave installation.

Also make sure you have run Xcode once and accepted the license agreement it presents, just to make sure.

Also, perhaps Homebrew core should add a trivial usage of `mkoctfile` to the Octave `brew test`, to make sure the development/compilation parts of Octave work. That's a significant component of how Octave is used in the wild. Not sure how you'd set up a trivial mkoctfile that involved Fortran compilation, though. That's probably something Octave itself should ship in its bundled test suite if it wants downstream packagers to exercise it. If this was done, then Homebrew would be able to automatically detect when an Octave rebuild was needed to take care of this case.

Andrew Janke <apjanke>
Fri 19 Apr 2019 04:33:40 PM UTC, comment #2: 

Yeah this looks like a local configuration issue. Compiling a C++ source file should naturally be able to find <cstdint>, so I don't think this is a bug in the control package.

Mike Miller <mtmiller>
Project Administrator
Fri 19 Apr 2019 03:56:46 PM UTC, comment #1: 

I can just guess that you are using homebrew installing Octave 5.1 on macOS (version?)? You really should add these infos and since this looks like a packaging problem where dependencies aren't installed you might ask the homebrew people

Andreas Weber <andy1978>
Project Member
Fri 19 Apr 2019 03:38:36 PM UTC, original submission:  

octave:1> pkg install -forge control
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
In file included from _control_helper_functions_.cc:1:
In file included from ./is_real_scalar.cc:28:
In file included from /usr/local/Cellar/octave/5.1.0/include/octave-5.1.0/octave/../octave/oct.h:26:
/usr/local/Cellar/octave/5.1.0/include/octave-5.1.0/octave/octave-config.h:64:14: fatal error: 'cstdint' file not found
#    include <cstdint>
             ^
1 error generated.
make: *** [__control_helper_functions__.oct] Error 1
make: *** Waiting for unfinished jobs....
MA02ID.f:188:21:

MA02ID.f:184:72:

          DO 90 J = 1, N+1
                                                                        2
MA02ID.f:188:21:

                DWORK(J-1) = DWORK(J-1) + TEMP
                     1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:188:34:

MA02ID.f:184:72:

          DO 90 J = 1, N+1
                                                                        2
MA02ID.f:188:34:

                DWORK(J-1) = DWORK(J-1) + TEMP
                                  1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:230:21:

MA02ID.f:226:72:

          DO 160 J = 1, N+1
                                                                        2
MA02ID.f:230:21:

                DWORK(J-1) = DWORK(J-1) + TEMP
                     1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:230:34:

MA02ID.f:226:72:

          DO 160 J = 1, N+1
                                                                        2
MA02ID.f:230:34:

                DWORK(J-1) = DWORK(J-1) + TEMP
                                  1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
tar -xzf slicot.tar.gz
/usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -Wall -Wno-deprecated-declarations  _control_helper_functions_.cc
mkdir sltmp
mv slicot/src/*.f ./sltmp
mv slicot/src_aux/*.f ./sltmp
cp TG04BX.fortran ./sltmp/TG04BX.f
cp TB01ZD.fortran ./sltmp/TB01ZD.f
cd sltmp; /usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -c *.f
ar -rc slicotlibrary.a ./sltmp/*.o
rm -rf sltmp slicot

pkg: error running `make' for the control package.
error: called from
    configure_make at line 99 column 9
    install at line 184 column 7
    pkg at line 441 column 9

Anonymous

 

(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 apjanke (Posted a comment)
  • -email is unavailable- added by andy1978 (Posted a comment)
  • -email is unavailable- added by None (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-04-19 mtmiller StatusNone => Need Info
        SummaryForge control package fails to build and install. => [octave forge] (control) fails to build and install

    Back to the top


    Powered by Savane 3.5