Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#45210 closed defect (fixed)

Octave: unexpected termination after hitting ctrl-c (Octave v3.8.2, OSX10.9.5)

Reported by: mike@… Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version: 2.3.1
Keywords: Cc: Zippyzip, jsalort (Julien Salort), roberthuston@…, me@…, trolin421, skymoo (Adam Mercer), olmec@…, ethanluoyc@…, starcpw@…, egon.geerardyn@…, Schamschula (Marius Schamschula), pixilla (Bradley Giesbrecht), santiag77e@…, NicosPavlov, tim.lahey@…, bhadder@…, AP1010
Port: octave

Description

I just installed Octave 3.8.2 on OSX 10.9.5 succesfully. However, now that it is installed, Octave unexpectedly terminates every time I hit control-c. This is the error I get:

libc++abi.dylib: terminating with uncaught exception of type octave_interrupt_exception

I'm hoping this is easily fixed, but it means that my command history and variables are deleted every time. Not the end of the world in most cases, but since I don't exactly write perfect code, it will be pretty inconvenient most of the time.

Attachments (10)

octave-3.8.2-clang-libcxx.patch (3.1 KB) - added by Schamschula (Marius Schamschula) 6 years ago.
Portfile-octave.diff (1.4 KB) - added by Schamschula (Marius Schamschula) 6 years ago.
Portfile-octave.2.diff (1.3 KB) - added by Schamschula (Marius Schamschula) 6 years ago.
Portfile-octave.3.diff (1.4 KB) - added by Schamschula (Marius Schamschula) 6 years ago.
octave-clang-libc++.diff (4.9 KB) - added by michaelld (Michael Dickens) 6 years ago.
debug-install.log.txt (4.4 MB) - added by roberthuston@… 6 years ago.
Debug install log for using octave-clang-libc++.diff​ patch
debug-install-2.log.txt (4.7 MB) - added by roberthuston@… 6 years ago.
Debug install log for using octave-3.8.2-clang-libcxx.patch and Portfile-octave.3.diff patches
debug-install-3.log.txt (4.8 MB) - added by roberthuston@… 6 years ago.
Debug install log using "new" patches, but with "configure.compiler=clang"
main.log (236.1 KB) - added by trolin421 6 years ago.
Octave configure logfile
main.2.log (245.4 KB) - added by trolin421 6 years ago.
Octave configure logfile - default compiler

Change History (109)

comment:1 Changed 6 years ago by mf2k (Frank Schima)

Owner: changed from macports-tickets@… to michaelld@…
Port: octave added; Octave removed

In the future, please use WikiFormatting and Cc the port maintainers (port info --maintainers octave).

comment:2 Changed 6 years ago by seanfarley (Sean Farley)

I can reproduce this as well. It seems like an Octave bug. Do you think you could point the Octave devs to this ticket and get their input?

comment:3 Changed 6 years ago by Zippyzip

Cc: cekoassa@… added

Cc Me!

comment:4 Changed 6 years ago by jsalort (Julien Salort)

Cc: lists@… added

Cc Me!

comment:5 in reply to:  description Changed 6 years ago by jsalort (Julien Salort)

Replying to mike@…:

libc++abi.dylib: terminating with uncaught exception of type octave_interrupt_exception

Same thing here. In addition, I have the same error, each time I exit Octave. I don't need to hit control-c, i.e.:

% octave -q
warning: function /opt/local/share/octave/packages/specfun-1.1.0/ellipke.m shadows a core library function
warning: function /opt/local/share/octave/packages/specfun-1.1.0/erfcinv.m shadows a built-in function
warning: function /opt/local/share/octave/packages/specfun-1.1.0/expint.m shadows a core library function
warning: function /opt/local/lib/octave/packages/specfun-1.1.0/x86_64-apple-darwin14.0.0-api-v49+/ellipj.oct shadows a built-in function
octave:1> exit
libc++abi.dylib: terminating with uncaught exception of type octave_interrupt_exception
panic: Abort trap: 6 -- stopping myself...
Abort trap: 6

comment:6 Changed 6 years ago by roberthuston@…

I can confirm that this also occurs running on Mac OS X 10.10 (Yosemite) using Xcode 6.1 and its associated command-line tools. After upgrading to Yosemite, I did a fresh MacPorts install, and installing octave was the first major port I selected. After installing octave (octave @3.8.2_1+atlas+gcc48+gui), the libc++abi.dylib crash still occurs when I exit octave.

comment:7 Changed 6 years ago by roberthuston@…

Cc: roberthuston@… added

Cc Me!

comment:8 Changed 6 years ago by me@…

Cc: me@… added

Cc Me!

comment:9 Changed 6 years ago by jpap00@…

Cc: jpap00@… added

Cc Me!

comment:10 Changed 6 years ago by jpap00@…

Cc: jpap00@… removed

Cc Me!

comment:11 Changed 6 years ago by trolin421

Cc: tom_olin@… added

Cc Me!

comment:12 Changed 6 years ago by skymoo (Adam Mercer)

Cc: ram@… added

Cc Me!

comment:13 Changed 6 years ago by olmec@…

Cc: olmec@… added

Cc Me!

comment:14 Changed 6 years ago by ethanluoyc@…

Cc: ethanluoyc@… added

Cc Me!

comment:15 Changed 6 years ago by starcpw@…

Cc: starcpw@… added

Cc Me!

comment:16 Changed 6 years ago by egon.geerardyn@…

Cc: egon.geerardyn@… added

Cc Me!

comment:17 Changed 6 years ago by Schamschula (Marius Schamschula)

Apparently the folks @ Fink have found the problem(s):

  1. A patch for Apple clang 3.6 which is part of Xcode 6.1 (Affecting both Mavericks and Yosemite)
  2. A reinplace script for configure to deal with Puma vs. Yosemite.

The clang path and a Portfile patch are attached.

I have successfully built octave 3.8.2 on both Mavericks and Yosemite. I no longer get the Abort trap: 6 error.

Last edited 6 years ago by Schamschula (Marius Schamschula) (previous) (diff)

Changed 6 years ago by Schamschula (Marius Schamschula)

comment:18 Changed 6 years ago by Schamschula (Marius Schamschula)

Cc: mschamschula@… added

Cc Me!

Changed 6 years ago by Schamschula (Marius Schamschula)

Attachment: Portfile-octave.diff added

comment:19 Changed 6 years ago by Schamschula (Marius Schamschula)

Updated Portfile-octave.diff to install libcxx-fix.h, which is needed to correctly build octave packages.

Last edited 6 years ago by Schamschula (Marius Schamschula) (previous) (diff)

comment:20 in reply to:  17 ; Changed 6 years ago by larryv (Lawrence Velázquez)

Link?

comment:21 in reply to:  20 ; Changed 6 years ago by Schamschula (Marius Schamschula)

Replying to larryv@…:

Link?

libcxx-fix.h is part of the octave-3.8.2-clang-libcxx.patch. The updated Portfile just copies it into destroot.

comment:22 in reply to:  21 ; Changed 6 years ago by larryv (Lawrence Velázquez)

I meant to a problem report or mailing list post of some sort. Does Fink have an issue tracker?

comment:23 Changed 6 years ago by larryv (Lawrence Velázquez)

I’ve fixed the MACOSX_DEPLOYMENT_TARGET issue in r128817, but I’m hesitant to apply the libc++ fix. I'll let Michael handle that one.

comment:24 in reply to:  22 Changed 6 years ago by Schamschula (Marius Schamschula)

Replying to larryv@…:

I meant to a problem report or mailing list post of some sort. Does Fink have an issue tracker?

http://fink.cvs.sourceforge.net/viewvc/fink/dists/10.7/stable/main/finkinfo/sci/octave-3.8.2-clang-libcxx.patch?view=log

comment:25 Changed 6 years ago by roberthuston@…

I did a "port selfupdate" and then detected the octave 3.8.2_2 upgrade that should have contained the above patches. The upgrade built without problems, but I still get the "libc++abi.dylib: terminating with uncaught exception of type octave_interrupt_exception" crash when I exit octave. All I did was start octave and then exit. Do I need to force a rebuild of libcxx as well?

comment:26 Changed 6 years ago by Schamschula (Marius Schamschula)

I don't think these changes have been committed. At this point you need to manually apply the patches.

comment:27 Changed 6 years ago by roberthuston@…

OK. Thank you.

comment:28 in reply to:  25 Changed 6 years ago by larryv (Lawrence Velázquez)

Replying to roberthuston@…:

I did a "port selfupdate" and then detected the octave 3.8.2_2 upgrade that should have contained the above patches.

I did not apply the libc++ fix in @3.8.2_2. I’d prefer to let someone more familiar with Octave vet that one.

comment:29 Changed 6 years ago by olmec@…

I'm missing something basic, I get errors when applying the patch:

patch -p0 < ~/Downloads/Portfile-octave.diff
patching file Portfile
Reversed (or previously applied) patch detected!  Assume -R? [n] y
Hunk #2 FAILED at 114.
Hunk #3 FAILED at 127.
Hunk #4 FAILED at 266.
3 out of 4 hunks FAILED -- saving rejects to file Portfile.rej

What am I missing?

Best, --M.

comment:30 in reply to:  29 Changed 6 years ago by Schamschula (Marius Schamschula)

Replying to olmec@…:

I'm missing something basic, I get errors when applying the patch:

patch -p0 < ~/Downloads/Portfile-octave.diff
patching file Portfile
Reversed (or previously applied) patch detected!  Assume -R? [n] y
Hunk #2 FAILED at 114.
Hunk #3 FAILED at 127.
Hunk #4 FAILED at 266.
3 out of 4 hunks FAILED -- saving rejects to file Portfile.rej

What am I missing?

Best, --M.

Larry V. added a fix for the broken libtool (r128817), which replaced a part of my changes and thus broke the patch file. An updated patch file has been uploaded.

comment:31 Changed 6 years ago by pixilla (Bradley Giesbrecht)

Cc: pixilla@… added

Cc Me!

Changed 6 years ago by Schamschula (Marius Schamschula)

Attachment: Portfile-octave.2.diff added

comment:32 Changed 6 years ago by Schamschula (Marius Schamschula)

Redid fix for compiler issue after Larry's libtool change.

comment:33 Changed 6 years ago by michaelld (Michael Dickens)

It looks to me like the libc++ patch works for -all- clang versions that require it (both Apple and MacPorts). I see a minimum libc++ version that requires it (1101) ... does anyone know the same value for when this issue was fixed ("WXYZ")? I'd prefer to change that "#if" line patched into "liboctave/operators/mx-inlines.cc" to:

#if defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION >= 1101) && (_LIBCPP_VERSION < WXYZ)

to maximally use libc++ when it works. I'm still on 10.8, so the best I could do was verify that building using macports clang 3.5 worked (it did, using this patch).

comment:34 Changed 6 years ago by trolin421

In the post-destroot section of the latest patched Portfile, libcxx-fix.h is installed only for the gui variant. It should be installed regardless of that variant.

Changed 6 years ago by Schamschula (Marius Schamschula)

Attachment: Portfile-octave.3.diff added

comment:35 Changed 6 years ago by Schamschula (Marius Schamschula)

Updated patch so libcxx-fix.h is included for all variants.

comment:36 Changed 6 years ago by olmec@…

Hi,

Mac OS 10.10.1 here, patch applied. Started with a clean slate

port uninstall all

Then

sudo port -v install octave +gui +gcc49

atlas fails, so built that on its own (clang)

Then try

sudo port -v install octave +gui +gcc49

again, which works.

But in octave I get the same sauce:

octave:1> a = 1
a =  1
octave:2> ^Clibc++abi.dylib: terminating with uncaught exception of type octave_interrupt_exception
panic: Abort trap: 6 -- stopping myself...
attempting to save variables to 'octave-workspace'...
save to 'octave-workspace' complete
Abort trap: 6

I have repeated the same exercise without the +gcc49 flag too... and the result is no different.

comment:37 Changed 6 years ago by roberthuston@…

You still need both patch files to make Octave work, especially the octave-3.8.2-clang-libcxx.patch file. Currently, the Portfile-octave.3.diff file patches you from a rev3 Portfile to a rev4 Portfile. Here's what I did to get my installation working.

  1. If not already done, install Octave using regular MacPorts syntax (the gcc49 is default, but I specified it anyway) so that it brings in all its dependencies:
    sudo port install octave +gcc49 +gui
    
  1. Uninstall the current Octave version (use -f to preserve any installed packages):
    sudo port -f uninstall octave
    
  1. Download "octave-3.8.2-clang-libcxx.patch" and "Portfile-octave.3.diff"
  1. Open Terminal and create a "macports_bandaids" directory for patching the octave portfile, and then cd to that directory
    mkdir macports_bandaids
    cd macports_bandaids
    
  1. Copy the Octave portfile directory to an "octave-3.8.2_4" directory:
    sudo cp -R /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/math/octave octave-3.8.2_4
    
  1. Copy Portfile-octave.3.diff to the octave-3.8.2_4 directory
    sudo cp ~/Downloads/Portfile-octave.3.diff octave-3.8.2_4
    
  1. Copy octave-3.8.2-clang-libcxx.patch file to the octave-bandaid/octave-3.8.2_4/files directory
    sudo cp ~/Downloads/octave-3.8.2-clang-libcxx.patch octave-3.8.2_4/files
    
  1. Navigate into the octave-3.8.2_4 directory
    cd octave-3.8.2_4
    
  1. Patch the portfile:
    sudo patch < Portfile-octave.3.diff
    
  1. Reinstall Octave from your patched installation directory, selecting same desired variants as before:
    sudo port -f install +gcc49 +gui
    

At this point, Octave should run correctly and not crash when quitting or encountering Ctrl-C.

comment:38 in reply to:  35 Changed 6 years ago by trolin421

Replying to mschamschula@…:

Updated patch so libcxx-fix.h is included for all variants.

One other change: The permissions on that file should be 644.

comment:39 Changed 6 years ago by seanfarley (Sean Farley)

Michael, is there any reason not to include these patches (until the next version of Octave is released)?

comment:40 Changed 6 years ago by michaelld (Michael Dickens)

I have no issue so long as the changes are general purpose.

Do they work for you, Sean?

Let me test Thursday morning (US/ET), as best I can.

comment:41 in reply to:  40 Changed 6 years ago by seanfarley (Sean Farley)

Replying to michaelld@…:

I have no issue so long as the changes are general purpose.

Do they work for you, Sean?

Let me test Thursday morning (US/ET), as best I can.

I was just curious :-) My plan to test this today was unfortunately derailed :-(

comment:42 Changed 6 years ago by olmec@…

Folk,

Can confirm that the steps in comment 37 (https://trac.macports.org/ticket/45210#comment:37) work perfectly on OSX 10.10.1.

Best,

M.

comment:43 Changed 6 years ago by michaelld (Michael Dickens)

I just tested on 10.8 latest, using MacPorts Clang 3.5 (after modifying the Portfile to allow this along with the patch). Works nicely.

My primary concern is (again), that there's no end to which version of Clang this fix targets. Clearly the issue is valid for (_LIBCPP_VERSION >= 1101), but what's the ending version? Anybody know?

I'll build using MacPorts Clang 3.6 and without this patch to see if that works. If so, I'll use that version as the end unless someone else knows better.

comment:44 Changed 6 years ago by michaelld (Michael Dickens)

MacPorts Clang 3.6 seems to work for me without this patch (on 10.8). Can anybody confirm? You'll need to comment out the blacklist of this compiler in the Portfile before building.

comment:45 Changed 6 years ago by michaelld (Michael Dickens)

Oh !@#$. I just checked the build logs & because I'm on 10.8 MacPorts uses "-stdlib=libstdc++". I'd need to recompile everything to get libc++. So, none of my prior testing is really valid; sigh. I'll try building with libc++ and see what happens.

comment:46 Changed 6 years ago by michaelld (Michael Dickens)

From what I can gather, MacPorts Clang 3.6 returns "_LIBCPP_VERSION == 1101". So, not much use there for an endpoint.

Update: I guess that's because when using --stdlib=libc++ the compiler uses port:libcxx ... so, the same _LIBCPP_VERSION no matter which compiler. Hmmmm...

Last edited 6 years ago by michaelld (Michael Dickens) (previous) (diff)

comment:47 Changed 6 years ago by seanfarley (Sean Farley)

Thanks for testing this Michael :-) Any new progress?

Changed 6 years ago by michaelld (Michael Dickens)

Attachment: octave-clang-libc++.diff added

comment:48 Changed 6 years ago by michaelld (Michael Dickens)

I just attached a combined patch (adds the libc++ patchfile as well as modifies the Portfile; from port dir octave directory) with my latest version. I think the patch should be used when configure.cxx_stdlib == "libc++" only (or, just used all the time since it internally keys off of the LIBCXX version if defined), regardless of OS version. Since libc++ is used with Clang only, I think this works. Can others verify? If you download the patch (say to ~/Downloads/), then do (after cleaning up the octave directory, if/as necessary, back to svn HEAD state):

cd `port dir octave`
patch -p0 < ~/Downloads/octave-clang-libc++.diff

Then, reinstall (or, try to install) octave and test to see if it exits cleanly. These changes will do nothing when using libstdc++ (the default for 10.8 and earlier), but should work when using libc++ (default on 10.9 and later).

comment:49 Changed 6 years ago by santiag77e@…

Cc: santiag77e@… added

Cc Me!

comment:50 Changed 6 years ago by NicosPavlov

Cc: nicos@… added

Cc Me!

comment:51 in reply to:  48 Changed 6 years ago by roberthuston@…

I still get the "crash at exit" after building with this latest "octave-clang-libc++.diff" patch and then running Octave. Reinstalling from the previous "octave-3.8.2-clang-libcxx.patch" and "Portfile-octave.3.diff" files is the only way I can get my Octave installation to work. I'm running on Mac OS X 10.10.1, using Xcode 6.1.1 and its associated command line tools.

Replying to michaelld@…:

I just attached a combined patch (adds the libc++ patchfile as well as modifies the Portfile; from port dir octave directory) with my latest version. I think the patch should be used when configure.cxx_stdlib == "libc++" only (or, just used all the time since it internally keys off of the LIBCXX version if defined), regardless of OS version. Since libc++ is used with Clang only, I think this works. Can others verify? If you download the patch (say to ~/Downloads/), then do (after cleaning up the octave directory, if/as necessary, back to svn HEAD state):

cd `port dir octave`
patch -p0 < ~/Downloads/octave-clang-libc++.diff

Then, reinstall (or, try to install) octave and test to see if it exits cleanly. These changes will do nothing when using libstdc++ (the default for 10.8 and earlier), but should work when using libc++ (default on 10.9 and later).

comment:52 Changed 6 years ago by michaelld (Michael Dickens)

@roberthuston: Can you attach the debug install log for this particular build? The only change I made was to apply the patch only when using libc++, instead of across the board for 10.9 and newer. If you're running 10.10, then by default you're using libc++ and the patch should be applied. If this patch does not always solve the crashing issue, the we need to start looking elsewhere for this particular issue -- not to say that this patch isn't good to have in place, just that it's not (always) solving this particular issue. A debug install log would help clarify my wondering.

Changed 6 years ago by roberthuston@…

Attachment: debug-install.log.txt added

Debug install log for using octave-clang-libc++.diff​ patch

comment:53 Changed 6 years ago by roberthuston@…

@michaelld: I attached my debug install log (debug-install.log.txt) for you.

comment:54 Changed 6 years ago by michaelld (Michael Dickens)

Thanks. Short answer is: yes, the patch was applied, and stdlib=libc++ is specified:

  C compiler:                  /opt/local/bin/clang-mp-3.4   -Wall -W -Wshadow -Wformat -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wcast-align -Wcast-qual -pipe -Os -arch x86_64 -D_THREAD_SAFE -pthread
  C++ compiler:                /opt/local/bin/clang++-mp-3.4   -Wall -W -Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -pipe -Os -arch x86_64 -stdlib=libc++ -D_THREAD_SAFE -pthread
  Fortran compiler:            /opt/local/bin/gfortran-mp-4.9 -pipe -Os
  Fortran libraries:            -L/opt/local/lib -L/opt/local/lib/gcc49/gcc/x86_64-apple-darwin14/4.9.2 -L/opt/local/lib/gcc49/gcc/x86_64-apple-darwin14/4.9.2/../../.. -lgfortran -lquadmath -lm

Any chance you can revert back to the 'previous "octave-3.8.2-clang-libcxx.patch" and "Portfile-octave.3.diff"' version and provide the debug install log for that (and, verify that it terminates correctly, too)?

Changed 6 years ago by roberthuston@…

Attachment: debug-install-2.log.txt added

Debug install log for using octave-3.8.2-clang-libcxx.patch and Portfile-octave.3.diff patches

comment:55 in reply to:  54 Changed 6 years ago by roberthuston@…

@michaelld: Gladly. See the "debug-install-2.log.txt" attachment. And no crash at program exit nor at Ctrl-C script terminations.

Replying to michaelld@…:

Any chance you can revert back to the 'previous "octave-3.8.2-clang-libcxx.patch" and "Portfile-octave.3.diff"' version and provide the debug install log for that (and, verify that it terminates correctly, too)?

Last edited 6 years ago by roberthuston@… (previous) (diff)

comment:56 Changed 6 years ago by michaelld (Michael Dickens)

Great; thanks! It looks like the "working" version uses "CC='/usr/bin/clang'", while the version with issues uses "CC='/opt/local/bin/clang-mp-3.4'". Both use fortran == "'/opt/local/bin/gfortran-mp-4.9'" and both are applying the same patches; the setting of CC and CXX is the only real difference I could see between the two builds. So, can you rebuild (again) using the "new" patches, but use "sudo port install octave [...] configure.compiler=clang" to try to force 'port' to use Apple's clang (where "[...]" are the variants you wish to install with)? I don't know why MacPorts' clang might cause this issue; we can blacklist it if/as necessary if others can verify that it is a problem.

Changed 6 years ago by roberthuston@…

Attachment: debug-install-3.log.txt added

Debug install log using "new" patches, but with "configure.compiler=clang"

comment:57 in reply to:  56 Changed 6 years ago by roberthuston@…

@michaelld: Rebuilding with new patches and "configure.compiler=clang" appears to produce a good build for me. I don't get any crashes at program exit or Ctrl-C, and my existing scripts appear to run correctly. I've posted the resulting debug install log (debug-install-3.log.txt) for your reference in case you need it.

Replying to michaelld@…:

So, can you rebuild (again) using the "new" patches, but use "sudo port install octave [...] configure.compiler=clang" to try to force 'port' to use Apple's clang (where "[...]" are the variants you wish to install with)?

comment:58 Changed 6 years ago by michaelld (Michael Dickens)

Thanks for the feedback; seems like we need a better system for determining which compiler to use. But, that's a separate issue from this ticket's; so, I went ahead and checked in these changes -- including a rev-bump to get changes in place for everyone. Added in r132228, r132229, and r132230.

comment:59 Changed 6 years ago by michaelld (Michael Dickens)

Resolution: fixed
Status: newclosed

comment:60 in reply to:  58 ; Changed 6 years ago by jsalort (Julien Salort)

Replying to michaelld@…:

Thanks for the feedback; seems like we need a better system for determining which compiler to use. But, that's a separate issue from this ticket's; so, I went ahead and checked in these changes -- including a rev-bump to get changes in place for everyone. Added in r132228, r132229, and r132230.

Am I assuming right that now:

sudo port selfupdate
sudo port upgrade outdated

should then fix the issue ?

I have done so and upgraded to octave-3.8.2_4 but I still have the issue. And it also complains about fltk, which it didn't do before:

% port installed octave
octave @3.8.2_4+atlas+gcc49+gui (active)
% port version
Version: 2.3.3
% octave -q
error: graphics_toolkit: fltk toolkit is not available
error: called from:
error:   /opt/local/share/octave/3.8.2/m/plot/util/graphics_toolkit.m at line 70, column 5
error:   /opt/local/share/octave/site/m/startup/octaverc at line 5, column 1
octave:1> exit
libc++abi.dylib: terminating with uncaught exception of type octave_interrupt_exception
panic: Abort trap: 6 -- stopping myself...
attempting to save variables to 'octave-workspace'...
save to 'octave-workspace' complete
Abort trap: 6

I am running Yosemite. Is there something more I have to do ?

comment:61 in reply to:  60 ; Changed 6 years ago by roberthuston@…

I still encountered the crash problem after updating. I meant to reply to this thread but got sidetracked. I also encountered the "fltk" issue too.

Doing

sudo port selfupdate
sudo port upgrade outdated

still produced a buggy octave build for me. I had to use

sudo port -f install octave +gui configure.compiler=clang

to make it behave. Also, the /opt/local/share/octave/site/m/startup/octaverc file has

graphics_toolkit("fltk");

as the last line. It should be

graphics_toolkit("gnuplot");

(At least it was in all previous installations.) Just edit octaverc to fix this.

If you want fltk, then install fltk-devel prior to reinstalling octave and then add "+fltk" as a variant

sudo port install fltk-devel
sudo port -f install octave +fltk +gui configure.compiler=clang

Use fltk-devel since octave doesn't work correctly with the regular fltk. (Note: The "+fltk" variant isn't listed in octave's "port info" output, but it still seems to work.)

Replying to lists@…:

Replying to michaelld@…:

Thanks for the feedback; seems like we need a better system for determining which compiler to use. But, that's a separate issue from this ticket's; so, I went ahead and checked in these changes -- including a rev-bump to get changes in place for everyone. Added in r132228, r132229, and r132230.

Am I assuming right that now:

sudo port selfupdate
sudo port upgrade outdated

should then fix the issue ?

I have done so and upgraded to octave-3.8.2_4 but I still have the issue. And it also complains about fltk, which it didn't do before:

% port installed octave
octave @3.8.2_4+atlas+gcc49+gui (active)
% port version
Version: 2.3.3
% octave -q
error: graphics_toolkit: fltk toolkit is not available
error: called from:
error:   /opt/local/share/octave/3.8.2/m/plot/util/graphics_toolkit.m at line 70, column 5
error:   /opt/local/share/octave/site/m/startup/octaverc at line 5, column 1
octave:1> exit
libc++abi.dylib: terminating with uncaught exception of type octave_interrupt_exception
panic: Abort trap: 6 -- stopping myself...
attempting to save variables to 'octave-workspace'...
save to 'octave-workspace' complete
Abort trap: 6

I am running Yosemite. Is there something more I have to do ?

Last edited 6 years ago by roberthuston@… (previous) (diff)

comment:62 in reply to:  61 Changed 6 years ago by vjorlikowski

Replying to roberthuston@…:

If you want fltk, then install fltk-devel prior to reinstalling octave and then add "+fltk" as a variant

sudo port install fltk-devel
sudo port -f install octave +fltk +gui configure.compiler=clang

Use fltk-devel since octave doesn't work correctly with the regular fltk. (Note: The "+fltk" variant isn't listed in octave's "port info" output, but it still seems to work.)

I can validate that this gets things working for me, as well. I installed things with:

port -f install octave +accelerate +fltk +gui configure.compiler=clang

esp. given that the issues with Accelerate in octave and arpack seem to have been resolved in 10.9 and above.

Last edited 6 years ago by vjorlikowski (previous) (diff)

comment:63 Changed 6 years ago by vjorlikowski

Resolution: fixed
Status: closedreopened

comment:64 Changed 6 years ago by vjorlikowski

To clarify:

Without "configure.compiler=clang" I also see this behavior:

octave:1> exit
libc++abi.dylib: terminating with uncaught exception of type octave_interrupt_exception
panic: Abort trap: 6 -- stopping myself...
attempting to save variables to 'octave-workspace'...
save to 'octave-workspace' complete
Abort trap: 6

And, without fltk-devel, I also see the following warning:

error: graphics_toolkit: fltk toolkit is not available
error: called from:
error:   /opt/local/share/octave/3.8.2/m/plot/util/graphics_toolkit.m at line 70, column 5
error:   /opt/local/share/octave/site/m/startup/octaverc at line 5, column 1

comment:65 Changed 6 years ago by michaelld (Michael Dickens)

I just pushed r133004, which should fix the GUI selection issues mentioned above. This revision makes no changes with respect to this ticket. I encourage everyone to do:

sudo port selfupdate

and then play around with updating (which installs with +glgui by default) and installing with -glgui (which disables the FLTK-based GUI).

comment:66 Changed 6 years ago by michaelld (Michael Dickens)

For folks listening on this ticket, can you please return the output of the following:

uname -a
mkoctfile -p CXX
otool -L /opt/local/bin/octave
otool -L /opt/local/lib/octave/*/liboctave.dylib
octave --eval "1"

and we'll see what if this leads to any conclusive pattern.

comment:67 in reply to:  66 Changed 6 years ago by trolin421

Replying to michaelld@…:

work@alum:~ 501 uname -a
Darwin alum.local 14.1.0 Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64 x86_64
work@alum:~ 502 mkoctfile -p CXX
/usr/bin/clang++
work@alum:~ 503 otool -L /opt/local/bin/octave
/opt/local/bin/octave:
	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0)
work@alum:~ 504 otool -L /opt/local/lib/octave/*/liboctave.dylib
/opt/local/lib/octave/3.8.2/liboctave.dylib:
	/opt/local/lib/octave/3.8.2/liboctave.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
	/opt/local/lib/libcholmod.3.0.0.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libumfpack.5.7.0.dylib (compatibility version 5.0.0, current version 0.0.0)
	/opt/local/lib/libSuiteSparse.4.2.1.dylib (compatibility version 4.0.0, current version 4.2.1)
	/opt/local/lib/libamd.2.4.0.dylib (compatibility version 2.0.0, current version 2.4.0)
	/opt/local/lib/libcamd.2.4.0.dylib (compatibility version 2.0.0, current version 2.4.0)
	/opt/local/lib/libcolamd.2.9.0.dylib (compatibility version 2.0.0, current version 2.9.0)
	/opt/local/lib/libccolamd.2.9.0.dylib (compatibility version 2.0.0, current version 2.9.0)
	/opt/local/lib/libcxsparse.3.1.3.dylib (compatibility version 3.0.0, current version 3.1.3)
	/opt/local/lib/libarpack.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libqrupdate.1.dylib (compatibility version 0.0.0, current version 0.0.0)
	/opt/local/lib/libfftw3_threads.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/usr/local/lib/libfftw3.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/usr/local/lib/libfftw3f_threads.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/usr/local/lib/libfftw3f.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/opt/local/lib/libreadline.6.dylib (compatibility version 6.0.0, current version 6.3.0)
	/opt/local/lib/libncurses.5.dylib (compatibility version 5.0.0, current version 5.0.0)
	/opt/local/lib/libpcre.1.dylib (compatibility version 4.0.0, current version 4.4.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
	/opt/local/lib/libgcc/libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
	/opt/local/lib/libgcc/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
work@alum:~ 505 octave --eval "1"
GNU Octave, version 3.8.2
Copyright (C) 2014 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-darwin14.0.0".

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

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

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

ans =  1
work@alum:~ 506 

comment:68 Changed 6 years ago by michaelld (Michael Dickens)

@tom_olin: I take it that your current octave install is working, yes?

comment:69 in reply to:  68 Changed 6 years ago by trolin421

Replying to michaelld@…: Yes.

comment:70 Changed 6 years ago by trolin421

I just updated to the latest and the original problem has returned.

The following ports are currently installed:
  octave @3.8.2_5+atlas+gcc49 (active)
  octave @3.8.2_5+atlas+gcc49+glgui

Both variants fail. Here's an example:

>> dbstop f
ans =  2
>> f
stopped in /Users/tom/f.m at line 2
2: end
debug> dbquit
libc++abi.dylib: terminating with uncaught exception of type octave_interrupt_exception
panic: Abort trap: 6 -- stopping myself...

Process Inferior Octave abort trap: 6

comment:71 Changed 6 years ago by michaelld (Michael Dickens)

@tom_olin: Can you post the results of the command lines from comment 66 above again, with the updated octave? Maybe that will show something useful. I'm guessing this issue has to do with whether Apple's clang is used as the compiler or not; I don't have a 10.10 install for testing, unfortunately.

comment:72 in reply to:  71 Changed 6 years ago by trolin421

Replying to michaelld@…:

@tom_olin: Can you post the results of the command lines from comment 66 above again, with the updated octave? Maybe that will show something useful. I'm guessing this issue has to do with whether Apple's clang is used as the compiler or not; I don't have a 10.10 install for testing, unfortunately.

work@alum:~ 513 uname -a
Darwin alum.local 14.1.0 Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64 x86_64
work@alum:~ 514 mkoctfile -p CXX
/opt/local/bin/clang++-mp-3.4
work@alum:~ 515 otool -L /opt/local/bin/octave
/opt/local/bin/octave:
	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0)
work@alum:~ 516 otool -L /opt/local/lib/octave/*/liboctave.dylib
/opt/local/lib/octave/3.8.2/liboctave.dylib:
	/opt/local/lib/octave/3.8.2/liboctave.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
	/opt/local/lib/libcholmod.3.0.0.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libumfpack.5.7.0.dylib (compatibility version 5.0.0, current version 0.0.0)
	/opt/local/lib/libSuiteSparse.4.2.1.dylib (compatibility version 4.0.0, current version 4.2.1)
	/opt/local/lib/libamd.2.4.0.dylib (compatibility version 2.0.0, current version 2.4.0)
	/opt/local/lib/libcamd.2.4.0.dylib (compatibility version 2.0.0, current version 2.4.0)
	/opt/local/lib/libcolamd.2.9.0.dylib (compatibility version 2.0.0, current version 2.9.0)
	/opt/local/lib/libccolamd.2.9.0.dylib (compatibility version 2.0.0, current version 2.9.0)
	/opt/local/lib/libcxsparse.3.1.3.dylib (compatibility version 3.0.0, current version 3.1.3)
	/opt/local/lib/libarpack.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libqrupdate.1.dylib (compatibility version 0.0.0, current version 0.0.0)
	/opt/local/lib/libfftw3_threads.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/usr/local/lib/libfftw3.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/usr/local/lib/libfftw3f_threads.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/usr/local/lib/libfftw3f.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/opt/local/lib/libreadline.6.dylib (compatibility version 6.0.0, current version 6.3.0)
	/opt/local/lib/libncurses.5.dylib (compatibility version 5.0.0, current version 5.0.0)
	/opt/local/lib/libpcre.1.dylib (compatibility version 4.0.0, current version 4.4.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
	/opt/local/lib/libgcc/libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
	/opt/local/lib/libgcc/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
work@alum:~ 517 octave --eval "1"
GNU Octave, version 3.8.2
Copyright (C) 2014 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-darwin14.1.0".

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

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

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

ans =  1
work@alum:~ 518 

comment:73 Changed 6 years ago by michaelld (Michael Dickens)

OK; thanks. So I think the issue here is that "macports-clang-3.4" was used for building, while Apple clang's libc++ was used for the runtime C++ library. This was sort of the same issue as using "macports-gcc-4.9" and linking with the (older) Apple gcc libstdc++. Either will cause issues.

Can you try reinstalling (uninstall first) including "configure.compiler=clang" on the command line? I think that will take care of the issue, but I don't yet know why it's not being selected automatically.

comment:74 in reply to:  73 Changed 6 years ago by trolin421

Replying to michaelld@…:

OK; thanks. So I think the issue here is that "macports-clang-3.4" was used for building, while Apple clang's libc++ was used for the runtime C++ library. This was sort of the same issue as using "macports-gcc-4.9" and linking with the (older) Apple gcc libstdc++. Either will cause issues.

Can you try reinstalling (uninstall first) including "configure.compiler=clang" on the command line? I think that will take care of the issue, but I don't yet know why it's not being selected automatically.

That works.

comment:75 Changed 6 years ago by michaelld (Michael Dickens)

OK; great. I think we have the cause. Now, how to fix it ....

comment:76 Changed 6 years ago by michaelld (Michael Dickens)

Can you post the configure (or build, or install) log for this way of installing octave? I'm hoping it contains the "logic" used by 'port' to determine which compiler to use.

Changed 6 years ago by trolin421

Attachment: main.log added

Octave configure logfile

comment:77 in reply to:  76 Changed 6 years ago by trolin421

Replying to michaelld@…:

Can you post the configure (or build, or install) log for this way of installing octave? I'm hoping it contains the "logic" used by 'port' to determine which compiler to use.

I attached my logfile.

comment:78 Changed 6 years ago by michaelld (Michael Dickens)

Interesting. Can you do:

sudo port clean octave
sudo port configure octave

(with no specific configure.compiler to use) and attach that log file?

Changed 6 years ago by trolin421

Attachment: main.2.log added

Octave configure logfile - default compiler

comment:79 in reply to:  78 Changed 6 years ago by trolin421

Replying to michaelld@…:

Interesting. Can you do:

sudo port clean octave
sudo port configure octave

(with no specific configure.compiler to use) and attach that log file?

Attached.

comment:80 Changed 6 years ago by michaelld (Michael Dickens)

Interesting. Thanks! Nothing more for now; I've got some thinking and testing to do.

comment:81 Changed 6 years ago by michaelld (Michael Dickens)

I just pushed r133114, which -might- fix this issue for some folks, by allowing the default use of Apple clang 6.0+ when building octave. Please do:

sudo port -f uninstall `port installed octave | sed -e 1d -e "s@(active)@@"`
sudo port clean octave
sudo port selfupdate
sudo port -s install octave

and then execute "octave" and do something, then exit to see if it works. Either way, please post the results of comment:66 as well as if the new octave works.

Last edited 6 years ago by michaelld (Michael Dickens) (previous) (diff)

comment:82 Changed 6 years ago by tim.lahey@…

Cc: tim.lahey@… added

Cc Me!

comment:83 Changed 6 years ago by bhadder@…

Cc: bhadder@… added

Cc Me!

comment:84 Changed 6 years ago by AP1010

Cc: arthur@… added

Cc Me!

comment:85 Changed 6 years ago by AP1010

Cc: arthur@… removed

Cc Me!

comment:86 Changed 6 years ago by AP1010

Cc: arthur@… added

Cc Me!

comment:87 in reply to:  81 Changed 6 years ago by Zippyzip

Replying to michaelld@…:

I just pushed r133114, which -might- fix this issue for some folks, and then execute "octave" and do something, then exit to see if it works. Either way, please post the results of comment:66 as well as if the new octave works.

Appears to work for me, after clean install Crtl-C and Ctrl-D work fine.

Macbook:~> uname -a
Darwin Administrators-MacBook-Pro.local 14.1.0 Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64 x86_64 i386 MacBookPro7,1 Darwin
Macbook:~> mkoctfile -p CXX
/usr/bin/clang++
Macbook:~> otool -L /opt/local/bin/octave
/opt/local/bin/octave:
        /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
        /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0)
Macbook:~> otool -L /opt/local/lib/octave/*/liboctave.dylib
/opt/local/lib/octave/3.8.2/liboctave.dylib:
        /opt/local/lib/octave/3.8.2/liboctave.2.dylib (compatibility version 3.0.0, current version 3.0.0)
        /opt/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
        /opt/local/lib/libcholmod.3.0.0.dylib (compatibility version 3.0.0, current version 3.0.0)
        /opt/local/lib/libumfpack.5.7.0.dylib (compatibility version 5.0.0, current version 0.0.0)
        /opt/local/lib/libSuiteSparse.4.2.1.dylib (compatibility version 4.0.0, current version 4.2.1)
        /opt/local/lib/libamd.2.4.0.dylib (compatibility version 2.0.0, current version 2.4.0)
        /opt/local/lib/libcamd.2.4.0.dylib (compatibility version 2.0.0, current version 2.4.0)
        /opt/local/lib/libcolamd.2.9.0.dylib (compatibility version 2.0.0, current version 2.9.0)
        /opt/local/lib/libccolamd.2.9.0.dylib (compatibility version 2.0.0, current version 2.9.0)
        /opt/local/lib/libcxsparse.3.1.3.dylib (compatibility version 3.0.0, current version 3.1.3)
        /opt/local/lib/libarpack.2.dylib (compatibility version 3.0.0, current version 3.0.0)
        /opt/local/lib/libqrupdate.1.dylib (compatibility version 0.0.0, current version 0.0.0)
        /opt/local/lib/libfftw3_threads.3.dylib (compatibility version 8.0.0, current version 8.4.0)
        /opt/local/lib/libfftw3.3.dylib (compatibility version 8.0.0, current version 8.4.0)
        /opt/local/lib/libfftw3f_threads.3.dylib (compatibility version 8.0.0, current version 8.4.0)
        /opt/local/lib/libfftw3f.3.dylib (compatibility version 8.0.0, current version 8.4.0)
        /opt/local/lib/libreadline.6.dylib (compatibility version 6.0.0, current version 6.3.0)
        /opt/local/lib/libncurses.5.dylib (compatibility version 5.0.0, current version 5.0.0)
        /opt/local/lib/libpcre.1.dylib (compatibility version 4.0.0, current version 4.4.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
        /opt/local/lib/libgcc/libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        /opt/local/lib/libgcc/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
Macbook:~> octave --eval "1"
GNU Octave, version 3.8.2
Copyright (C) 2014 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-darwin14.1.0".

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

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

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

ans =  1

comment:88 Changed 6 years ago by michaelld (Michael Dickens)

@cekoassa: Great; thanks for the feedback!

Anybody else want to chime in, success or failure?

comment:89 Changed 6 years ago by trolin421

Funny you should ask. I just uninstalled Octave, and now I can't build libcaca (used by gnuplot), so I'm presently Octaveless. Will follow up when I get past this roadblock.

comment:90 in reply to:  88 Changed 6 years ago by AP1010

Replying to michaelld@…:

@cekoassa: Great; thanks for the feedback!

Anybody else want to chime in, success or failure?

Success! Uninstalled & rebuilt octave. Now it exits cleanly.

comment:91 in reply to:  88 ; Changed 6 years ago by roberthuston@…

Replying to michaelld@…:

@cekoassa: Great; thanks for the feedback!

Anybody else want to chime in, success or failure?

Doing a "port upgrade" now, but waiting for "llvm-3.5 @3.5.1_3+assertions" to build (I was a couple of weeks out of date and there were a lot of things that got pulled down from my "port self update"). Will keep you posted.

comment:92 Changed 6 years ago by trolin421

It's working here. However, you need to re-apply my comment 38.

work@alum:tmp 539 uname -a
Darwin alum.local 14.1.0 Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64 x86_64
work@alum:tmp 540 mkoctfile -p CXX
/usr/bin/clang++
work@alum:tmp 541 otool -L /opt/local/bin/octave
/opt/local/bin/octave:
	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0)
work@alum:tmp 542 otool -L /opt/local/lib/octave/*/liboctave.dylib
/opt/local/lib/octave/3.8.2/liboctave.dylib:
	/opt/local/lib/octave/3.8.2/liboctave.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
	/opt/local/lib/libcholmod.3.0.0.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libumfpack.5.7.0.dylib (compatibility version 5.0.0, current version 0.0.0)
	/opt/local/lib/libSuiteSparse.4.2.1.dylib (compatibility version 4.0.0, current version 4.2.1)
	/opt/local/lib/libamd.2.4.0.dylib (compatibility version 2.0.0, current version 2.4.0)
	/opt/local/lib/libcamd.2.4.0.dylib (compatibility version 2.0.0, current version 2.4.0)
	/opt/local/lib/libcolamd.2.9.0.dylib (compatibility version 2.0.0, current version 2.9.0)
	/opt/local/lib/libccolamd.2.9.0.dylib (compatibility version 2.0.0, current version 2.9.0)
	/opt/local/lib/libcxsparse.3.1.3.dylib (compatibility version 3.0.0, current version 3.1.3)
	/opt/local/lib/libarpack.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/local/lib/libqrupdate.1.dylib (compatibility version 0.0.0, current version 0.0.0)
	/opt/local/lib/libfftw3_threads.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/usr/local/lib/libfftw3.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/usr/local/lib/libfftw3f_threads.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/usr/local/lib/libfftw3f.3.dylib (compatibility version 8.0.0, current version 8.4.0)
	/opt/local/lib/libreadline.6.dylib (compatibility version 6.0.0, current version 6.3.0)
	/opt/local/lib/libncurses.5.dylib (compatibility version 5.0.0, current version 5.0.0)
	/opt/local/lib/libpcre.1.dylib (compatibility version 4.0.0, current version 4.4.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
	/opt/local/lib/libgcc/libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
	/opt/local/lib/libgcc/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
work@alum:tmp 543 octave --eval "1"
GNU Octave, version 3.8.2
Copyright (C) 2014 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-darwin14.1.0".

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

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

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

ans =  1
work@alum:tmp 544

comment:93 in reply to:  91 Changed 6 years ago by roberthuston@…

Yay! The "port upgrade octave" was successful for me! However, it defaulted to using "fltk" instead of "gnuplot", probably because I did the -fltk option the last time I did the install with the fltk-devel port. Even though the "fltk-devel" port got updated as part of my dependency tree, plotting with fltk is a mess right now and throws all kinds of errors, but gnuplot still works as always. I'll try uninstalling the fltk stuff and then reinstalling octave without it. Nevertheless, I think you've got a good octave portfile now.

Replying to roberthuston@…:

Replying to michaelld@…:

@cekoassa: Great; thanks for the feedback!

Anybody else want to chime in, success or failure?

Doing a "port upgrade" now, but waiting for "llvm-3.5 @3.5.1_3+assertions" to build (I was a couple of weeks out of date and there were a lot of things that got pulled down from my "port self update"). Will keep you posted.

comment:94 Changed 6 years ago by michaelld (Michael Dickens)

@tom_olin: Great! I assume you mean that destroot file needs to be 644, yes? Somehow I missed your comment & thus the Portfile install uses 640. Easy fix; done in r133261.

comment:95 Changed 6 years ago by michaelld (Michael Dickens)

@roberthuston: Great (overall). +glgui is the default now; if you do not want to use fltk (-devel), you can install with -glgui, or you sudo edit the file "${prefix}/share/octave/site/m/startup/octaverc" and change the "graphics_toolkit" to be "gnuplot" instead of "fltk"). You might be able to create a ~/.octaverc file with "graphics_toolkit("gnuplot")" that overrides the "startup/octaverc" one ... I've never tried, but I'd guess it's an option.

comment:96 Changed 6 years ago by michaelld (Michael Dickens)

Resolution: fixed
Status: reopenedclosed

I'm closing this ticket as "fixed". I think the root issue has something to do with mixing the wrong libc++ and compiler, but I've no idea why. Using configure.compiler=clang is the way to go here, and removing the compiler block along with adding the libcxx fix seems to have done the trick. Thanks everyone for your patience and reporting back!

comment:97 in reply to:  95 Changed 6 years ago by roberthuston@…

Yes, changing the octaverc file is what I did.

When I plotted with "fltk" I kept getting a stream of errors like the following:

octave-cli-3.8.2[34931] <Error>: CGContextFillRects: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

octave-cli-3.8.2[34931] <Error>: CGContextMoveToPoint: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

octave-cli-3.8.2[34931] <Error>: CGContextAddLineToPoint: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

octave-cli-3.8.2[34931] <Error>: CGContextDrawPath: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

...

I just did a reinstall and octave pulled down "fltk @1.3.3_0" but it behaves just like "fltk-devel @1.3.x-r10574_0" so I'll stay with gnuplot for now.

Replying to michaelld@…:

@roberthuston: Great (overall). +glgui is the default now; if you do not want to use fltk (-devel), you can install with -glgui, or you sudo edit the file "${prefix}/share/octave/site/m/startup/octaverc" and change the "graphics_toolkit" to be "gnuplot" instead of "fltk"). You might be able to create a ~/.octaverc file with "graphics_toolkit("gnuplot")" that overrides the "startup/octaverc" one ... I've never tried, but I'd guess it's an option.

comment:98 Changed 6 years ago by michaelld (Michael Dickens)

I see those errors too when using FLTK, but plotting still works. I see them on 10.8 and 10.10, though the latter's are more serious sounding (as you quote). I'm guessing this is an FLTK issue, but I really have no idea. I don't remember this coming up as an issue until of recent. I'm glad we can always revert back to gnuplot -- 5.0.0 is out, and will be fixed shortly to work with AquaTerm correctly, btw.

comment:99 in reply to:  98 Changed 6 years ago by roberthuston@…

OK, thank you.

BTW, having your own ~/.octaverc works just fine, so I no longer have to keep changing ${prefix}/share/octave/site/m/startup/octaverc every time octave gets updated. I should probably pull in the ${prefix}/share/octave/site/m/startup/octaverc file and then override the settings with gnuplot, but the mechanism works just fine.

Replying to michaelld@…:

I see those errors too when using FLTK, but plotting still works. I see them on 10.8 and 10.10, though the latter's are more serious sounding (as you quote). I'm guessing this is an FLTK issue, but I really have no idea. I don't remember this coming up as an issue until of recent. I'm glad we can always revert back to gnuplot -- 5.0.0 is out, and will be fixed shortly to work with AquaTerm correctly, btw.

Note: See TracTickets for help on using tickets.