[bug #68169] Linking standalone executables fails with missing readline symbols
Markus Mützel <[email protected]>
| Newsgroups | gmane.comp.gnu.octave.bugs |
|---|---|
| Message-ID | <[email protected]> |
Please use the bug tracker to post updates to a bug report. The mailing list is intended as a read-only notification stream. Info posted to this mailing list address won't appear in the tracker database where it is most useful.
URL:
<https://savannah.gnu.org/bugs/?68169>
Summary: Linking standalone executables fails with missing
readline symbols
Group: GNU Octave
Submitter: mmuetzel
Submitted: Mon 23 Mar 2026 02:39:48 PM CET
Category: Interpreter
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: None
Status: None
Assigned to: None
Originator Name:
Originator Email:
Open/Closed: Open
Discussion Lock: Unlocked
Release: dev
Operating System: GNU/Linux
Fixed Release: None
Planned Release: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Mon 23 Mar 2026 02:39:48 PM CET By: Markus Mützel <mmuetzel>
Trying to build standalone executables started to fail recently.
E.g., the CI on GitHub tries to build the following:
cd examples/code
mkoctfile --link-stand-alone embedded.cc -o embedded
LD_LIBRARY_PATH="/usr/local/lib/octave/$(octave --eval "disp(version())")"
\
./embedded
That fails with the following missing symbol errors on Linux (Ubuntu) using
GCC:
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_insert_text'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_copy_text'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_filename_quoting_function'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `read_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_newline'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_end'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_completion_word_break_hook'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_reset_after_signal'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_replace_line'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_filename_quoting_desired'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_re_read_init_file'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `history_set_pos'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `history_is_stifled'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_basic_quote_characters'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `using_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_kill_full_line'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `unstifle_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `clear_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_char_is_quoted_p'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `history_length'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_startup_hook'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_prefer_env_winsize'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_add_defun'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `append_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `history_list'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `where_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_instream'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_do_undo'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_get_screen_size'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_history_search_backward'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_event_hook'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_erase_empty_line'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_redisplay_function'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `write_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_read_init_file'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_filename_completion_desired'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_free_undo_list'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `previous_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_deprep_term_function'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_cleanup_after_signal'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_done'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_point'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_redisplay'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `stifle_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `history_base'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_pre_input_hook'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_line_buffer'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `remove_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_resize_terminal'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_outstream'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_history_search_forward'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_free_line_state'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_set_screen_size'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_completer_word_break_characters'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_filename_completion_function'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `readline'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_completion_matches'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_initialize'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `read_history_range'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_attempted_completion_function'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `add_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `max_input_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_readline_name'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_completer_quote_characters'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `history_get'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_terminal_name'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `replace_history_entry'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `history_truncate_file'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `current_history'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_completion_append_character'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_filename_quote_characters'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_basic_word_break_characters'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_clear_screen'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_variable_bind'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_filename_dequoting_function'
/usr/bin/ld: /usr/local/lib/octave/12.0.0/liboctinterp.so: undefined reference
to `rl_undo_list'
collect2: error: ld returned 1 exit status
Afaict, all of these are symbols that should be provided by the readline
library.
It looks like it is a regression from the refactoring in hg id 09959276eb64.
CC'ing Rik.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?68169>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
(application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQQk97aszIMMAvLLwm6qLAuaBUf3TgUCacFCpwAKCRCqLAuaBUf3 Tp6ZAP9AJZjBMIna59yHX/0nT7evGwcdyd9kjiuSiyCcUCKy3wEApC/9ljR7+F9V LzHNF84fzE5mqJA67wtU9+HfFco6YgY= =hUyd -----END PGP SIGNATURE-----