Re: Octave 6.0.90 test release available on alpha.gnu.org

Markus Mützel <[email protected]>
Newsgroups gmane.comp.gnu.octave.maintainers
Message-ID <trinity-1ab7fd73-c2a0-4f3f-ad8a-8ac93843630c-1600092805951@3c-app-gmx-bap10>
AM 01. September 2020 um 10:54 Uhr schrieb "Carlo De Falco":
> > Il giorno 27 ago 2020, alle ore 15:38, John W. Eaton <[email protected]> ha scritto:
> >
> > The following files are now available for testing from alpha.gnu.org in the directory gnu/octave
> >
> >  -rw-r--r--   32508461 Aug 26 19:54 octave-6.0.90.tar.gz
> >  -rw-r--r--   21424489 Aug 26 19:54 octave-6.0.90.tar.lz
> >  -rw-r--r--   25050816 Aug 26 19:55 octave-6.0.90.tar.xz
> >
> >  -rw-r--r--  352766877 Aug 27 13:21 octave-6.0.90-w64-installer.exe
> >  -rw-r--r--  341029732 Aug 27 13:25 octave-6.0.90-w64.7z
> >  -rw-r--r--  586445094 Aug 27 13:31 octave-6.0.90-w64.zip
> >
> > Please report any new issues using the release tag 6.0.90 in the bug tracker.
> >
> > jwe
> >
>
>
> On macos 10.14.6 using clang++ with macports dependencies
> and disabling qt and GUI I see the following error when running "make check" :
>
> ------------------------------------------------
> /Applications/Xcode.app/Contents/Developer/usr/bin/make  check-local
> preserving existing HG-ID file
>   MKMEXFILE      test/mex/bug_54096.mex
> ld: warning: directory not found for option '-L/opt/octave/6.0.90/lib/octave/6.0.90'
> ld: warning: directory not found for option '-L/opt/octave/6.0.90/lib'
> ld: file not found: /opt/octave/6.0.90/bin/octave-6.0.90
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>   MKMEXFILE      test/mex/bug_51725.mex
> ld: warning: directory not found for option '-L/opt/octave/6.0.90/lib/octave/6.0.90'
> ld: warning: directory not found for option '-L/opt/octave/6.0.90/lib'
> ld: file not found: /opt/octave/6.0.90/bin/octave-6.0.90
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> ------------------------------------------------
>
> prefix is set to "/opt/octave/6.0.90" so I see why mex is looking for those files,
> but I have not yet run "make install" so it is correct that they do not exist.
>

Two libraries (-loctinterp and -loctave) are linked in on Mac (and Windows) by "mkoctfile".
Before installing Octave, these two libraries are in $(top_builddir)/libinterp/.libs and $(top_builddir)/liboctave/.libs, respectively.

Would it be possible to link to the libraries at these locations?

If yes, one way to fix this could be to change the code for "mkoctfile":
https://hg.savannah.gnu.org/hgweb/octave/file/5d4b400e4b66/src/mkoctfile.in.cc#l231

Is there a way "mkoctfile" can know whether it executes from the build tree or after installation?

Alternatively (and probably easier and less messy), we could probably add the necessary -L flags in the make rule:
https://hg.savannah.gnu.org/hgweb/octave/file/5d4b400e4b66/test/mex/module.mk

I don't know if that would mess things up for other platform or if we can pass the -L flags in the make rule unconditionally on all platforms.

@Carlo: Do the tests with .mex files pass if you set LDFLAGS accordingly?
I'm not sure how things work on MacOS. But maybe you could run something like this in the build directory:
make LDFLAGS="-L$(pwd)/libinterp/.libs -L$(pwd)/liboctave/.libs" check

Markus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.