On 04/15/2016 01:47 PM, Yury Gribov wrote: > On 04/15/2016 02:57 PM, Pedro Alves wrote: >> On 04/15/2016 12:39 PM, Yury Gribov wrote: >> >>> I've attached the script I've came up with (it properly works around >>> copy relocations and thus detects imported external variables). On my >>> system (with older gdb which only has _rl_echoing_p, >>> _rl_qsort_string_compare and _rl_print_completions_horizontally) it >> >> Can you attach rl_orig.lst and rl_new.lst (and preferably a version of >> the script that doesn't try to regenerate those), so that others can >> easily run this on their systems without having to patch readline? > > Right, attached. > > I've also fixed an issue in script and added fixed patch which > additionally visualizes _rl_horizontal_scroll_mode (required by trunk gdb).
I ran this now and got: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Symbols which may be used and are missing in new libreadline: rl_complete_with_tilde_expansion _rl_mark_modified_lines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I wasn't expecting to ever see a "rl_" symbol here? What was the logic used to decide whether a symbol should be exported? Here's the diff between your rl_orig.lst rl_new.lst files. There are more "rl_" files being hidden, e.g.: rl_blink_matching_paren rl_byte_oriented rl_display_fixed. There are other symbols here that look like should probably be public. For example, history_offset is used by readline's examples: readline/src/examples/hist_purgecmd.c:44:extern int history_offset; readline/src/examples/hist_purgecmd.c:142: history_offset--; /* moving backwards in history list */ readline/src/examples/hist_erasedups.c:41:extern int history_offset; readline/src/examples/hist_erasedups.c:114: history_offset--; /* moving backwards in history list */ so I'd assume that that's a public symbol and that those examples no longer link after your patch? Here's the diff between your rl_orig.lst and rl_new.lst files, showing which symbols would be hidden: --- rl_orig.lst 2016-04-18 10:58:51.314617490 +0100 +++ rl_new.lst 2016-04-18 10:58:51.302617526 +0100 @@ -1,27 +1,18 @@ add_history add_history_time -alloc_history_entry -alphabetic append_history __bss_start clear_history -completion_matches -copy_history_entry -crlf current_history -ding _edata emacs_ctlx_keymap emacs_meta_keymap emacs_standard_keymap _end -filename_completion_function _fini free_history_entry -free_undo_list funmap -funmap_program_specific_entry_start get_history_event history_arg_extract history_base @@ -37,7 +28,6 @@ history_length history_list history_max_entries history_no_expand_chars -history_offset history_quotes_inhibit_expansion history_search history_search_delimiter_chars @@ -53,44 +43,23 @@ history_word_delimiters history_write_timestamps _init max_input_history -maybe_replace_line -maybe_save_line -maybe_unsave_line Name next_history previous_history read_history read_history_range readline -readline_internal_char -readline_internal_setup -readline_internal_teardown remove_history -replace_history_data replace_history_entry rl_abort -_rl_abort_internal rl_add_defun rl_add_funmap_entry -_rl_add_macro_char rl_add_undo -_rl_adjust_point -_rl_allow_pathname_alphabetic_chars rl_alphabetic rl_already_prompted -_rl_any_typein -_rl_arg_callback -_rl_argcxt -_rl_arg_dispatch -_rl_arg_getchar -_rl_arg_init -_rl_arg_overflow -rl_arg_sign rl_arrow_keys rl_attempted_completion_function rl_attempted_completion_over -_rl_audit_tty -_rl_backspace rl_backward rl_backward_byte rl_backward_char @@ -104,7 +73,6 @@ rl_basic_word_break_characters rl_beginning_of_history rl_begin_undo_group rl_beg_of_line -_rl_bell_preference rl_binding_keymap rl_bind_key rl_bind_key_if_unbound @@ -114,15 +82,6 @@ rl_bind_keyseq rl_bind_keyseq_if_unbound rl_bind_keyseq_if_unbound_in_map rl_bind_keyseq_in_map -_rl_bind_stty_chars -rl_blink_matching_paren -_rl_block_sigint -_rl_block_sigwinch -rl_byte_oriented -_rl_callback_data -_rl_callback_data_alloc -_rl_callback_data_dispose -_rl_callback_func rl_callback_handler_install rl_callback_handler_remove rl_callback_read_char @@ -130,40 +89,23 @@ rl_call_last_kbd_macro rl_capitalize_word rl_catch_signals rl_catch_sigwinch -_rl_caught_signal rl_change_environment rl_character_len rl_char_is_quoted_p rl_char_search -_rl_char_search_internal -_rl_char_value rl_cleanup_after_signal -_rl_clean_up_for_exit rl_clear_history rl_clear_message rl_clear_pending_input -_rl_clear_screen rl_clear_screen rl_clear_signals -_rl_clear_to_eol -_rl_colored_stats -_rl_color_ext_list -_rl_color_indicator -_rl_comment_begin -_rl_compare_chars rl_complete rl_complete_internal _rl_complete_mark_directories _rl_complete_mark_symlink_dirs rl_completer_quote_characters rl_completer_word_break_characters -_rl_complete_show_all -_rl_complete_show_unmodified -rl_complete_with_tilde_expansion rl_completion_append_character -_rl_completion_case_fold -_rl_completion_case_map -_rl_completion_columns rl_completion_display_matches_hook rl_completion_entry_function rl_completion_found_quote @@ -178,17 +120,12 @@ rl_completion_suppress_append rl_completion_suppress_quote rl_completion_type rl_completion_word_break_hook -_rl_control_keypad -_rl_convert_meta_chars_to_ascii rl_copy_backward_word rl_copy_forward_word rl_copy_keymap rl_copy_region_to_kill rl_copy_text -_rl_copy_undo_entry -_rl_copy_undo_list rl_crlf -_rl_current_display_line rl_delete rl_delete_horizontal_space rl_delete_or_show_completions @@ -196,24 +133,14 @@ rl_delete_text rl_deprep_term_function rl_deprep_terminal rl_digit_argument -_rl_digit_p -_rl_digit_value rl_ding rl_directory_completion_hook rl_directory_rewrite_hook -_rl_disable_meta_key -_rl_disable_tty_signals rl_discard_argument rl_discard_keymap -_rl_dispatch -_rl_dispatch_callback rl_dispatching -_rl_dispatching_keymap -_rl_dispatch_subseq -rl_display_fixed rl_display_match_list rl_display_prompt -_rl_doing_an_undo rl_do_lowercase_version rl_done rl_do_undo @@ -221,33 +148,23 @@ rl_downcase_word rl_dump_functions rl_dump_macros rl_dump_variables -_rl_echo_control_chars -_rl_echoctl _rl_echoing_p rl_echo_signal_char rl_editing_mode rl_emacs_editing_mode -_rl_enable_keypad -_rl_enable_meta -_rl_enable_meta_key -_rl_enable_paren_matching rl_end rl_end_kbd_macro rl_end_of_history rl_end_of_line rl_end_undo_group -_rl_eof_char -_rl_erase_at_end_of_line rl_erase_empty_line _rl_erase_entire_line -_rl_errmsg rl_event_hook rl_exchange_point_and_mark rl_execute_next rl_executing_key rl_executing_keymap rl_executing_keyseq -_rl_executing_keyseq_size rl_executing_macro rl_expand_prompt rl_explicit_arg @@ -260,25 +177,15 @@ rl_filename_quoting_desired rl_filename_quoting_function rl_filename_rewrite_hook rl_filename_stat_hook -_rl_find_completion_word -_rl_find_next_mbchar -_rl_find_prev_mbchar -_rl_fix_last_undo_of_type -_rl_fix_point rl_forced_update_display rl_forward rl_forward_byte rl_forward_char -_rl_forward_char_internal rl_forward_search_history rl_forward_word rl_free -_rl_free_history_entry rl_free_keymap rl_free_line_state -_rl_free_match_list -_rl_free_saved_history_line -_rl_free_undo_list rl_free_undo_list rl_function_dumper rl_function_of_keyseq @@ -286,19 +193,15 @@ rl_funmap_names rl_generic_bind rl_getc rl_getc_function -_rl_get_char_len rl_get_keymap rl_get_keymap_by_name rl_get_keymap_name rl_get_keymap_name_from_edit_mode rl_get_next_history rl_get_previous_history -_rl_get_screen_size rl_get_screen_size rl_get_termcap rl_gnu_readline_p -_rl_history_preserve_point -_rl_history_saved_point rl_history_search_backward rl_history_search_forward rl_history_substr_search_backward @@ -307,238 +210,115 @@ _rl_horizontal_scroll_mode rl_ignore_completion_duplicates rl_ignore_some_completions_function rl_inhibit_completion -_rl_init_eightbit rl_initialize rl_initialize_funmap -_rl_init_line_state -_rl_init_terminal_io -_rl_input_available rl_input_available_hook -_rl_input_queued rl_insert -_rl_insert_char rl_insert_close rl_insert_comment rl_insert_completions rl_insert_mode rl_insert_text -_rl_insert_typein -_rl_in_stream rl_instream -_rl_internal_char_cleanup -_rl_interrupt_immediately -_rl_intr_char rl_invoking_keyseqs rl_invoking_keyseqs_in_map -_rl_iscxt -_rl_isearch_callback -_rl_isearch_dispatch -_rl_isearch_terminators -_rl_is_mbchar_matched -_rl_keymap -_rl_keyseq_chain_dispose -_rl_keyseq_cxt_alloc -_rl_keyseq_cxt_dispose -_rl_keyseq_timeout rl_key_sequence_length rl_kill_full_line -_rl_kill_kbd_macro rl_kill_line rl_kill_region rl_kill_text rl_kill_word -_rl_kscxt -_rl_last_command_was_kill -_rl_last_c_pos rl_last_func -_rl_last_v_pos rl_library_version rl_line_buffer -rl_line_buffer_len -rl_linefunc rl_list_funmap_names -_rl_lowercase_p rl_macro_bind rl_macro_dumper rl_make_bare_keymap rl_make_keymap -_rl_make_prompt_for_search rl_mark -_rl_mark_modified_lines -_rl_match_hidden_files rl_maybe_replace_line rl_maybe_save_line rl_maybe_unsave_line rl_menu_complete -_rl_menu_complete_prefix_first -rl_menu_completion_entry_function rl_message -_rl_meta_flag rl_modifying -_rl_move_cursor_relative -_rl_move_vert rl_named_function rl_newline -_rl_next_macro_key rl_noninc_forward_search rl_noninc_forward_search_again rl_noninc_reverse_search rl_noninc_reverse_search_again -_rl_nscxt -_rl_nsearch_callback -_rl_null_function rl_num_chars_to_read rl_numeric_arg rl_old_menu_complete rl_on_new_line rl_on_new_line_with_prompt -_rl_output_character_function -_rl_output_meta_chars -_rl_output_some_chars -_rl_out_stream rl_outstream -_rl_overwrite_char rl_overwrite_mode -_rl_overwrite_rubout -_rl_page_completions rl_parse_and_bind -_rl_parse_colors -_rl_parsing_conditionalized_out rl_pending_input rl_point -_rl_pop_executing_macro rl_possible_completions -_rl_possible_control_prefixes -_rl_possible_meta_prefixes rl_prefer_env_winsize rl_pre_input_hook -_rl_prep_non_filename_text rl_prep_term_function rl_prep_terminal -_rl_prev_macro_key -_rl_print_color_indicator _rl_print_completions_horizontally rl_print_last_kbd_macro rl_prompt -_rl_pure_alphabetic -_rl_pushed_input_available -_rl_push_executing_macro rl_push_macro_input -_rl_put_indicator _rl_qsort_string_compare -_rl_quit_char rl_quoted_insert rl_read_init_file rl_read_key rl_readline_name rl_readline_state rl_readline_version -_rl_read_mbchar -_rl_read_mbstring rl_redisplay -_rl_redisplay_after_sigwinch rl_redisplay_function rl_refresh_line -_rl_release_sigint -_rl_release_sigwinch -rl_replace_from_history rl_replace_line -_rl_replace_text rl_re_read_init_file rl_reset_after_signal -_rl_reset_argument -_rl_reset_completion_state rl_reset_line_state -_rl_reset_prompt rl_reset_screen_size rl_reset_terminal rl_resize_terminal rl_restart_output rl_restore_prompt rl_restore_state -_rl_restore_tty_signals rl_reverse_search_history -_rl_revert_all_at_newline -_rl_revert_all_lines rl_revert_line rl_rubout -_rl_rubout_char rl_rubout_or_delete -_rl_saved_line_for_history rl_save_prompt rl_save_state -_rl_savestring -_rl_screenchars -_rl_screenheight -_rl_screenwidth -_rl_scxt_alloc -_rl_scxt_dispose -_rl_search_getchar -_rl_set_cursor -_rl_set_insert_mode rl_set_key rl_set_keyboard_input_timeout rl_set_keymap rl_set_keymap_from_edit_mode rl_set_mark -_rl_set_mark_at_pos -_rl_set_normal_color rl_set_paren_blink_timeout rl_set_prompt -rl_set_retained_kills -_rl_set_screen_size rl_set_screen_size rl_set_signals -_rl_set_the_line rl_show_char -_rl_show_mode_in_prompt -_rl_sigcleanarg -_rl_sigcleanup rl_signal_event_hook -_rl_signal_handler -_rl_sigwinch_resize_terminal -_rl_skip_completed_text rl_skip_csi_sequence rl_sort_completion_matches rl_special_prefixes rl_start_kbd_macro rl_startup_hook -_rl_start_using_history rl_stop_output -_rl_strindex -_rl_strip_prompt rl_stuff_char -_rl_suppress_redisplay -_rl_susp_char rl_tab_insert -_rl_term_autowrap -_rl_term_backspace -_rl_term_clreol -_rl_term_clrpag -_rl_term_cr -_rl_term_dc -_rl_term_DC -_rl_term_ei -_rl_term_forward_char -_rl_term_goto -_rl_term_ic -_rl_term_IC -_rl_term_im -_rl_terminal_can_insert rl_terminal_name -_rl_term_ip -_rl_term_pc -_rl_term_up rl_tilde_expand -_rl_to_lower -_rl_top_level -_rl_to_upper rl_translate_keyseq rl_transpose_chars rl_transpose_words -_rl_ttymsg rl_tty_set_default_bindings -rltty_set_default_bindings rl_tty_status rl_tty_unset_default_bindings rl_unbind_command_in_map @@ -546,20 +326,14 @@ rl_unbind_function_in_map rl_unbind_key rl_unbind_key_in_map rl_undo_command -_rl_undo_group_level rl_undo_list -_rl_unget_char rl_universal_argument rl_unix_filename_rubout rl_unix_line_discard rl_unix_word_rubout rl_untranslate_keyseq -_rl_untranslate_macro_value rl_upcase_word -_rl_update_final -_rl_uppercase_p rl_username_completion_function -_rl_utf8locale rl_variable_bind rl_variable_dumper rl_variable_value @@ -580,8 +354,6 @@ rl_vi_complete rl_vi_delete rl_vi_delete_to rl_vi_domove -_rl_vi_domove_callback -_rl_vi_done_inserting rl_vi_editing_mode rl_vi_end_word rl_vi_eof_maybe @@ -592,14 +364,11 @@ rl_vi_first_print rl_vi_fword rl_vi_fWord rl_vi_goto_mark -_rl_vi_initialize_line rl_vi_insert_beg rl_vi_insertion_mode rl_vi_insert_mode -_rl_vi_last_command rl_vi_match rl_vi_movement_mode -_rl_vimvcxt rl_vi_next_word rl_vi_overstrike rl_vi_overstrike_delete @@ -607,34 +376,20 @@ rl_vi_prev_word rl_vi_put rl_vi_redo rl_vi_replace -_rl_vi_reset_last rl_vi_rubout -_rl_vis_botlin rl_vi_search rl_vi_search_again -_rl_vi_set_last rl_vi_set_mark -rl_visible_prompt_length -rl_visible_stats rl_vi_start_inserting rl_vi_subst -_rl_vi_textmod_command rl_vi_tilde_expand rl_vi_undo rl_vi_yank_arg rl_vi_yank_to -_rl_walphabetic -_rl_want_redisplay -_rl_with_macro_input rl_yank rl_yank_last_arg rl_yank_nth_arg rl_yank_pop -sh_get_env_value -sh_get_home_dir -sh_set_lines_and_columns -sh_single_quote -sh_unset_nodelay_mode stifle_history tilde_additional_prefixes tilde_additional_suffixes @@ -643,12 +398,8 @@ tilde_expand_word tilde_expansion_failure_hook tilde_expansion_preexpansion_hook unstifle_history -username_completion_function using_history vi_insertion_keymap vi_movement_keymap where_history write_history -xfree -xmalloc -xrealloc _______________________________________________ Bug-readline mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-readline
