Parcellfun fails in parallel package in octave 7.1.0 at run-time

Thank you for writing us about your problem with using :octave: GNU Octave. To help us help you, please answer the following questions, if applicable.

Problem description

  • Parcellfun in parallel fails at run-time, also gives warning at install time

  • How can I replicate the Octave problem?

Upon installing parallel in octave using

> pkg install -forge parallel 
configure: WARNING: TLS disabled since gnutls/gnutls.h not found or not compilable

configure: WARNING: No working fork(), no uname(), or no error.h found. On such platforms, notably Windows and macOS, the remote Octave server will not be built. The functions for accessing a remote Octave server are not affected by this and may still be built, as well as the functions for local parallel execution.

gnulib-wrappers.c:431:1: warning: non-void function does not return a value [-Wreturn-type]

}

^

1 warning generated.

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctinterp.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctave.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctinterp.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctave.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctinterp.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctave.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctinterp.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctave.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctinterp.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctave.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctinterp.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctave.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/bin/octave-7.1.0) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctave.dylib) was built for newer macOS version (12.0) than being linked (11.3)

ld: warning: dylib (/opt/homebrew/Cellar/octave/7.1.0_1/lib/octave/7.1.0/liboctinterp.dylib) was built for newer macOS version (12.0) than being linked (11.3)

For information about changes from previous versions of the parallel package, run 'news parallel'

octave:9> pkg load parallel
octave:10> fun = @(x) x^2;

vector_x = 1:10;

vector_y = pararrayfun(nproc, fun, vector_x)
error: /Users/sunilshah/octave-arm6/parallel-4.0.1/aarch64-apple-darwin21.3.0-api-v57/__parcellfun_interface__.oct: failed to load
Incompatible version or missing dependency?
dlopen(/Users/sunilshah/octave-arm6/parallel-4.0.1/aarch64-apple-darwin21.3.0-api-v57/__parcellfun_interface__.oct, 0x000A): symbol not found in flat namespace '_num_processors'
error: called from
   parcellfun at line 117 column 9
   pararrayfun at line 85 column 28




  • I there any code that causes the error? Please give [a good example]

See above. missing symbol /__parcellfun_interface__.oct, 0x000A): symbol not found in flat namespace '_num_processors'

warnings for incompatible library hav been in earlier versions but did not cause run-time errors.

(How to create a Minimal, Reproducible Example - Help Center - Stack Overflow).

  • What did I expect to happen and what did happen?
    This example above is standard example on octave wiki for using parallel package. This used to run fine in previous version of homebrew octave (6.4.0),

My system

  • OS: Mac OS 12.3.1 running on M1 native mode terminal
  • Octave version: 7.1.0 (homebrew 7.1.0_3)
  • parallel package 4.0.1
  • Installation method: brew install octave

I have the same problem, but simply on trying to install parallel. I tried this in several versions of octave installations. Under flatpak I get:
pkg install -forge parallel
error: /home/rcohen/.var/app/org.octave.Octave/data/octave/api-v57/packages/parallel-4.0.1/x86_64-pc-linux-gnu-api-v57/parcellfun_interface.oct: failed to load
Incompatible version or missing dependency?
/home/rcohen/.var/app/org.octave.Octave/data/octave/api-v57/packages/parallel-4.0.1/x86_64-pc-linux-gnu-api-v57/parcellfun_interface.oct: undefined symbol: num_processors
error: called from
doc_cache_create>create_cache at line 116 column 20
gen_doc_cache_in_dir>@ at line 150 column 16
doc_cache_create>gen_doc_cache_in_dir at line 151 column 9
doc_cache_create at line 62 column 12
install>generate_lookfor_cache at line 840 column 5
install at line 241 column 7
pkg at line 603 column 9

This is on a Centos 7 system with everything up to date.

Sincerely,

Ron

The patch in GNU Octave - Bugs: bug #62349, [octave forge] (parallel)... [Savannah] allows me to install parallel.

Ron

Hi Ron,

Where can I find the released archive with the patch mentioned in the bug report #62349?

Applying @morgawr's patch on the released archive fixed the issue for me.


hg clone http://hg.code.sf.net/p/octave/parallel octave-parallel

Does not seem to have it.

You can download the released archive here, and the patch can be downloaded from the bug report. Then more or less following the steps described in comment #2 of this report should let you install the parallel package on linux.

Note that this is just a workaround and a proper solution will involve fixing the configure script generation upstream.

Thanks @Pantxo

It worked on my M1 in native mode. Mac OS 12.4.