bugGNU Octave - Bugs: bug #66772, Build fail: "symbol not found...

 
 

bug #66772: Build fail: "symbol not found in flat namespace '_rl_basic_quote_characters'" for 10.x on macOS

Submitter:  Andrew Janke <apjanke>
Submitted:  Mon 10 Feb 2025 04:37:04 AM UTC
   
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Invalid / Not an Octave Bug Assigned to:  None
Originator Name:  Open/Closed:  * Closed
Release:  * stable Release: 
Operating System:  * Mac OS Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Mon 17 Feb 2025 11:59:27 AM UTC, comment #7: 


> IIUC, the issues discussed in this report don't require any changes to Octave's build rules.


Yep. I think this is actually just problems in my macOS build environment. Not something that is Octave's fault or something it can or should fix.

> It looks like something corrupted `pkg-config` installation. `brew reinstall pkgconfig` fixed that for me (you'd need to rebuild).


Yep, that worked for me too. No idea why. And I thought that wasn't "supposed to" happen.

Yeah, close this out as "not an Octave problem; it's the build environment".

And thanks to @dasergatskov for providing some clarity and knowing-whats-actually-going-on-here. "Reinstall your pkgconfig" is not something that would have occurred to me here.

Andrew Janke <apjanke>
Mon 17 Feb 2025 10:34:19 AM UTC, comment #6: 

IIUC, the issues discussed in this report don't require any changes to Octave's build rules.

In that case, closing the report as "Invalid / Not an Octave Bug".
It can be re-opened if there is indeed something that should be changed in Octave.

Markus Mützel <mmuetzel>
Group administrator
Tue 11 Feb 2025 03:22:33 PM UTC, comment #5: 

I have seen that too. It looks like something corrupted `pkg-config` installation. `brew reinstall pkgconfig` fixed that for me
(you'd need to rebuild). See
https://octave.discourse.group/t/bind-invalid-command-blink-matching-paren/6170/4
and the bug report in there.

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Tue 11 Feb 2025 02:41:46 PM UTC, comment #4: 

One oddity: Now that I've got a working build, I'm seeing this error message ("bind: Invalid command `blink-matching-paren'") upon octave startup, which I don't recall seeing before, and looks readline related.


[homebrew-octave-app] $ octave-stable -q
bind: Invalid command `blink-matching-paren'.
octave:1> ver
----------------------------------------------------------------------
GNU Octave Version: 10.0.1 (hg id: f33f691e0427 + Octave.app patches)


I see what looks like readline-related Octave source that might be calling that:


[octave] $ grep -rin blink-matching-paren *
liboctave/util/oct-rl-edit.c:78:  rl_variable_bind ("blink-matching-paren", val ? "1" : "0");


Does that sound related to this DLL linkage? Or should I open a separate ticket for that?

Andrew Janke <apjanke>
Tue 11 Feb 2025 02:40:46 PM UTC, comment #3: 

I hit it myself when I started building octave on MacOS.

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Tue 11 Feb 2025 02:38:04 PM UTC, comment #2: 

comment #1:

> I think it means that you are using readline.h header from homebrew's readline, but linking to the MacOS's equivalent (that is not compatible).
> Add "-I/opt/homebrew/opt/readline/include" to CPPFLAGS and "-L/opt/homebrew/opt/readline/lib" to LDFLAGS.


That worked! Got me a working build. Thanks!

Updated my formulae with it: https://github.com/octave-app/homebrew-octave-app/commit/efd47533f0fbb0252f672ffaa4c2204a0501ea11

The Homebrew formula approach I used to detect the readline path portably is this. (Saw some other core Homebrew formulae doing this too, so maybe not a unique problem.)

      ENV.prepend "CPPFLAGS", "-I#{Formula["readline"].opt_include}"
      ENV.prepend "LDFLAGS", "-L#{Formula["readline"].opt_lib}"


This seems to me like a problem with my build environment & process, not a problem with Octave itself? So can probably close this ticket without any changes to Octave.

Out of curiosity, how did you figure this out so quickly, with so little detail in the error message to go on?

Andrew Janke <apjanke>
Mon 10 Feb 2025 04:48:14 AM UTC, comment #1: 

I think it means that you are using readline.h header from homebrew's readline, but linking to the MacOS's equivalent
(that is not compatible).
Add "-I/opt/homebrew/opt/readline/include" to CPPFLAGS and 
"-L/opt/homebrew/opt/readline/lib" to LDFLAGS.

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Mon 10 Feb 2025 04:37:04 AM UTC, original submission:  

I'm getting build failures on stable and devel on macOS since stable was updated for the 10.1 release. It's complaining about "symbol not found in flat namespace '_rl_basic_quote_characters'". Looks maybe like it's happening in the doco-building phase?

Fails on macOS 15, on Intel and As (Apple silicon). Builds okay on macOS 14 on both Intel and As. Octave 9.4 builds okay on these same computers. The devel branch has same failure behavior as stable.

Error from the end of the build log output, for a non-parallel build:


rm -f scripts/@ftp/PKG_ADD-t scripts/@ftp/PKG_ADD && /bin/sh ./scripts/mk-pkg-add.sh . scripts/@ftp/ascii.m scripts/@ftp/binary.m scripts/@ftp/cd.m scripts/@ftp/close.m scripts/@ftp/delete.m scripts/@ftp/dir.m scripts/@ftp/disp.m scripts/@ftp/ftp.m scripts/@ftp/loadobj.m scripts/@ftp/mget.m scripts/@ftp/mkdir.m scripts/@ftp/mput.m scripts/@ftp/rename.m scripts/@ftp/rmdir.m scripts/@ftp/saveobj.m --  > scripts/@ftp/PKG_ADD-t && mv scripts/@ftp/PKG_ADD-t scripts/@ftp/PKG_ADD
rm -f libinterp/dldfcn/PKG_ADD-t && \
        /bin/sh ./build-aux/mk-pkg-add.sh "." libinterp/dldfcn/__delaunayn__.cc libinterp/dldfcn/__fltk_uigetfile__.cc libinterp/dldfcn/__glpk__.cc libinterp/dldfcn/__init_fltk__.cc libinterp/dldfcn/__init_gnuplot__.cc libinterp/dldfcn/__ode15__.cc libinterp/dldfcn/__voronoi__.cc libinterp/dldfcn/audiodevinfo.cc libinterp/dldfcn/audioread.cc libinterp/dldfcn/convhulln.cc libinterp/dldfcn/fftw.cc libinterp/dldfcn/gzip.cc > libinterp/dldfcn/PKG_ADD-t && \
        mv libinterp/dldfcn/PKG_ADD-t libinterp/dldfcn/PKG_ADD
/bin/sh run-octave -disable-asan --norc --quiet --no-history --path /private/tmp/octave-stable-20250208-24340-dqggwr/doc/interpreter/ --eval "geometryimages ('doc/interpreter/', 'voronoi', 'txt');"
dyld[65582]: symbol not found in flat namespace '_rl_basic_quote_characters'
make[2]: *** [doc/interpreter/voronoi.txt] Abort trap: 6
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


Full build logs (from Homebrew-based builds) attached.

GH ticket for this problem in the Octave.app project: https://github.com/octave-app/octave-app/issues/303

Environment


I'm building on local Macs, using the octave-stable and octave-devel Homebrew formulae from the Octave.app custom Homebrew tap (https://github.com/octave-app/homebrew-octave-app). Build command is `brew install --HEAD octave-stable` (or `octave-devel`). Using Intel and As Macs running macOS 15 as the main OS, and macOS 14 in VMs, under VMware on Intel and UTM on As.

To reproduce, with Homebrew installed, run `brew tap octave-app/octave-app; brew install --HEAD octave-stable`.

Same Xcode and CLT version installed on my macOS 15 and 14 machines. Don't know what'd be different between the OSes.

`brew config` from macOS 15 As (host eilonwy), where it fails:


HOMEBREW_VERSION: 4.4.20-126-ge1a7553
ORIGIN: https://github.com/Homebrew/brew
HEAD: e1a7553a56e02abeabd0ef461bcdc4ae383184d8
Last commit: 6 hours ago
Branch: master
Core tap JSON: 09 Feb 03:14 UTC
Core cask tap JSON: 09 Feb 03:14 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_EDITOR: code
HOMEBREW_MAKE_JOBS: 10
HOMEBREW_NO_AUTO_UPDATE: set
HOMEBREW_NO_ENV_HINTS: set
HOMEBREW_NO_INSTALL_CLEANUP: set
HOMEBREW_SORBET_RUNTIME: set
Homebrew Ruby: 3.3.7 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.7/bin/ruby
CPU: deca-core 64-bit arm_firestorm_icestorm
Clang: 16.0.0 build 1600
Git: 2.48.1 => /opt/homebrew/bin/git
Curl: 8.7.1 => /usr/bin/curl
macOS: 15.3-arm64
CLT: 16.2.0.0.1.1733547573
Xcode: 16.2
Rosetta 2: false


`brew config` from macOS 14 As (host guppy14), where build succeeds:


HOMEBREW_VERSION: 4.4.20-126-ge1a7553
ORIGIN: https://github.com/Homebrew/brew
HEAD: e1a7553a56e02abeabd0ef461bcdc4ae383184d8
Last commit: 6 hours ago
Branch: master
Core tap JSON: 09 Feb 03:14 UTC
Core cask tap JSON: 09 Feb 03:14 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_EDITOR: code
HOMEBREW_MAKE_JOBS: 10
HOMEBREW_NO_AUTO_UPDATE: set
HOMEBREW_NO_ENV_HINTS: set
HOMEBREW_NO_INSTALL_CLEANUP: set
HOMEBREW_SORBET_RUNTIME: set
Homebrew Ruby: 3.3.7 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.7/bin/ruby
CPU: deca-core 64-bit arm_firestorm_icestorm
Clang: 16.0.0 build 1600
Git: 2.48.1 => /opt/homebrew/bin/git
Curl: 8.7.1 => /usr/bin/curl
macOS: 15.3-arm64
CLT: 16.2.0.0.1.1733547573
Xcode: 16.2
Rosetta 2: false


Andrew Janke <apjanke>

 

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

Attach Files:
   
   
Comment:
   

Attached Files

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by dasergatskov (Posted a comment)
  • -email is unavailable- added by apjanke (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 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2025-02-17 mmuetzel StatusNone Invalid / Not an Octave Bug
        Open/ClosedOpen Closed
    2025-02-10 apjanke Attached File- Added octave-fail-quote-sym_2025-02-09.zip, #56873

    Back to the top

    Powered by Savane 3.15-e6e5.
    Corresponding source code