bugGNU Octave - Bugs: bug #48443, Incompatibility between 4.1.0+ and...

 
 

bug #48443: Incompatibility between 4.1.0+ and image package

Submitter:  None
Submitted:  Fri 08 Jul 2016 10:22:54 AM UTC
   
 
Category:  Octave Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Installation Failure
Status:  Invalid / Not an Octave Bug Assigned to:  None
Originator Name:  Eric Barnhill Originator Email:  -email is unavailable-
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

Fri 08 Jul 2016 10:40:32 PM UTC, comment #8: 

Thanks for the explanations.

Editing one line in configure.ac is OK,
and can even be automated as
sed -i s/"\[4.1.0+[0-9+]*\]"/"\[4.1.0+`hg id -n`\]"/g configure.ac
before the ./bootstrap step

This is working as expected, and with the following lines in .octaverc,
allows to encapsulate a given development version snapshot together with packages:

# mind the ~/
pkg ("prefix", ["~/octave-pkg/" version], ["~/octave-pkg/" version]);
# ~/ not understood here
pkg ("local_list", ["/home/ederag/.octave_packages_" version]);



ederag <ederag>
Fri 08 Jul 2016 08:48:27 PM UTC, comment #7: 

That is correct, you can't install packages without doing 'make install' first. This is known and intentionally caught, when for example the mkoctfile program is not in the bin directory where it is supposed to be.

You might be able to work out which CPPFLAGS and LDFLAGS to add such that all the proper header files and shared libraries distributed throughout Octave's source and build directories are found. Seems like more trouble than it's worth, but if someone thinks this is important they could work on adding support for this.

There is also currently no way to change the version suffix without editing configure.ac to add a suffix yourself or something like that.

Setting a specific --prefix=/some/path/with/specific/version/and/hgid is always possible.

Mike Miller <mtmiller>
Group Member
Fri 08 Jul 2016 08:40:54 PM UTC, comment #6: 

Thanks a lot Mike.
Indeed, removing /usr/local/openblas-mt-gcc4.8.3/share/octave,
followed by make install, did it.

So run-octave (and mkoctfile called from it) is not totally standalone.

Wouldn't it be nice if the "run-octave" version were different (say 4.1.0r) than the installed dev version,
so that a new pull could be tested together with packages,
without breaking a previous working (and installed) dev version ?

Or is there a way to specify a version suffix at installation, like
make install VERSION_SUFFIX=`hg id -n`
which would install to 4.1.0+21750 for instance ?

ederag <ederag>
Fri 08 Jul 2016 06:19:05 PM UTC, comment #5: 

ederag: ericbarnhill says reinstalling the image package resolves the undefined symbol errors.

I am not able to reproduce the errors that you are seeing.

The symbol that your .oct file is trying to load is indeed no longer defined.

If I had to guess, I would say that it looks like you have not done a make install in a while. The .oct files are probably being compiled against out of date versions of Octave's default branch that are no longer valid.

Please try deleting your entire Octave installation under /usr/local/openblas-mt-gcc4.8.3 and do a fresh 'make install'.

Mike Miller <mtmiller>
Group Member
Fri 08 Jul 2016 01:42:11 PM UTC, comment #4: 

Following comment #3, it looks like the issue is different here,
since it happens even without any package installed.

Here is the bisection outcome:

The first bad revision is:
changeset:   21750:6720e5a220ba
user:        John W. Eaton <jwe@octave.org>
date:        Thu May 19 19:42:57 2016 -0400
files:       libinterp/corefcn/defun-int.h libinterp/corefcn/defun.cc libinterp/corefcn/dynamic-ld.cc libinterp/corefcn/dynamic-ld.h libinterp/octave-value/ov-dld-fcn.cc libinterp/octave-value/ov-dld-fcn.h libinterp/octave-value/ov-java.cc libinterp/octave-value/ov-mex-fcn.cc libinterp/octave-value/ov-mex-fcn.h liboctave/util/oct-shlib.cc liboctave/util/oct-shlib.h
description:
use namespace for octave_shlib class

* oct-shlib.h, oct-shlib.cc: Put octave_shlib in octave namespace and
rename to dyamic_library.  Change all uses.


The test used was:

./bootstrap
cd build-
make distclean
../configure --disable-docs --with-blas="/usr/local/openblas-mt-gcc4.8.3/lib64/libopenblas.so" CPPFLAGS="-I/usr/local/openblas-mt-gcc4.8.3/include" CFLAGS="-O2 -march=native -L/usr/local/openblas-mt-gcc4.8.3/lib64" CXXFLAGS="-O2 -march=native -L/usr/local/openblas-mt-gcc4.8.3/lib64" FFLAGS="-O2 -march=native -L/usr/local/openblas-mt-gcc4.8.3/lib64" LDFLAGS=-Wl,-rpath,/usr/local/openblas-mt-gcc4.8.3/lib64 --prefix=/usr/local/openblas-mt-gcc4.8.3
make -j 6

./run-octave
# first make sure struct is not installed
pkg uninstall struct
pkg install -forge -verbose struct
# when "bad", the process ends with this error:
/home/ederag/octave-pkg/4.1.0+/struct-1.0.13/x86_64-pc-linux-gnu-api-v50+/cell2fields.oct: failed to load: /home/ederag/octave-pkg/4.1.0+/struct-1.0.13/x86_64-pc-linux-gnu-api-v50+/cell2fields.oct: undefined symbol: _ZN19octave_dld_function6createEPF17octave_value_listRKS0_iERK12octave_shlibRKSsS9_
error: called from
    install at line 242 column 5
    pkg at line 397 column 9


The package building process (seen with -verbose) went fine though. (logs attached)

The tip (cs 22076:d9643bc3792a) is bad too.

On Linux OpenSUSE 13.2 64bit.


(file #37769, file #37770)

ederag <ederag>
Fri 08 Jul 2016 01:32:35 PM UTC, comment #3: 

Carnë's suggestion of reinstalling the packages resolves the issue.

Eric Barnhill <ericbarnhill>
Fri 08 Jul 2016 01:23:39 PM UTC, comment #2: 

Did you reinstall the packages for your new version of Octave? It may have the same version number but that number means nothing when you're building from development sources.

Carnë Draug <carandraug>
Group Member
Fri 08 Jul 2016 11:43:51 AM UTC, comment #1: 

Almost the same error with control, struct, optim packages (maybe more).
The error occurs between changesets 21744:e1be0b36fbed and 21795:973c16f1c9fc.
(bisection process running, will post when done)

ederag <ederag>
Fri 08 Jul 2016 10:22:54 AM UTC, original submission:  

There is some sort of new incompatibility between 4.1.0 and the image package. I particularly alert you to the fact that it appears to load the second time, but then claims all methods are unimplemented!

Using Octave 4.0.0 from the Ubuntu repos is fine:

--

>> pkg load image
>> entropy

error: entropy: not enough input arguments
error: called from
    entropy at line 40 column 5
--

However I just built Octave from Savannah today and get:

--

>> pkg load image

error: _which_: /home/ericbarnhill/octave/image-2.4.1/x86_64-pc-linux-gnu-api-v50+/bwconncomp.oct: failed to load: /home/ericbarnhill/octave/image-2.4.1/x86_64-pc-linux-gnu-api-v50+/bwconncomp.oct: undefined symbol: ZN19octave_dld_function6createEPF17octave_value_listRKS0_iERK12octave_shlibRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESF
error: called from
    which at line 34 column 5
    /home/ericbarnhill/octave/image-2.4.1/x86_64-pc-linux-gnu-api-v50+/PKG_ADD at line 2 column 1
    load_packages_and_dependencies at line 48 column 5
    load_packages at line 47 column 3
    pkg at line 409 column 7

>> pkg load image
>> entropy

warning: the 'entropy' function belongs to the image package from Octave Forge
but has not yet been implemented.

Please read <http://www.octave.org/missing.html> to learn how you can
contribute missing functionality.
warning: called from
    _unimplemented_ at line 523 column 5
error: 'entropy' undefined near line 1 column 1

>>

Anonymous

 

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

Attach Files:
   
   
Comment:
   

Attached Files
file #37769:  bad.log added by ederag (6KiB - text/plain)
file #37770:  good.log added by ederag (6KiB - text/plain)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by ericbarnhill (Posted a comment)
  • -email is unavailable- added by ederag (Posted a comment)
  • -email is unavailable- added by None (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
    2016-07-08 mtmiller StatusNone Invalid / Not an Octave Bug
        Open/ClosedOpen Closed
    2016-07-08 ederag Attached File- Added bad.log, #37769
        Attached File- Added good.log, #37770

    Back to the top

    Powered by Savane 3.13-4448.
    Corresponding source code