Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

too many symbols visible #21

Open
nathanlynch opened this issue Mar 9, 2022 · 0 comments
Open

too many symbols visible #21

nathanlynch opened this issue Mar 9, 2022 · 0 comments

Comments

@nathanlynch
Copy link
Member

Several symbols that are not intended to be in the exported API are exposed.

$ nm -g .libs/librtas.so | grep -v '\b[wU] '
0000000000009150 B dbg_lvl                     <<<
0000000000005660 T interface_exists            <<<
00000000000022d0 T read_entire_file            <<<
0000000000002af0 T rtas_activate_firmware
0000000000002b90 T rtas_cfg_connector
0000000000002da0 T rtas_delay_timeout
0000000000002df0 T rtas_display_char
0000000000002eb0 T rtas_display_msg
0000000000002fc0 T rtas_errinjct
00000000000031a0 T rtas_errinjct_close
0000000000003260 T rtas_errinjct_open
00000000000056c0 T rtas_free_rmo_buffer
0000000000003320 T rtas_get_config_addr_info2
0000000000003430 T rtas_get_dynamic_sensor
0000000000003570 T rtas_get_indices
0000000000003740 T rtas_get_power_level
0000000000005850 T rtas_get_rmo_buffer
0000000000003820 T rtas_get_sensor
0000000000003910 T rtas_get_sysparm
0000000000003a90 T rtas_get_time
0000000000003bf0 T rtas_get_vpd
0000000000003eb0 T rtas_lpar_perftools
00000000000051f0 T rtas_physical_attestation
0000000000004110 T rtas_platform_dump
00000000000043d0 T rtas_read_slot_reset
00000000000044e0 T rtas_scan_log_dump
0000000000004640 T rtas_set_debug
0000000000004680 T rtas_set_dynamic_indicator
00000000000047c0 T rtas_set_eeh_option
00000000000048b0 T rtas_set_indicator
0000000000004990 T rtas_set_power_level
0000000000004a80 T rtas_set_poweron_time
0000000000004bb0 T rtas_set_sysparm
0000000000004cc0 T rtas_set_time
0000000000004df0 T rtas_suspend_me
0000000000002400 T rtas_token                  <<<
0000000000004e90 T rtas_update_nodes
0000000000005040 T rtas_update_properties
0000000000002a90 T sanity_check                <<<

We don't want clients to use the ones marked with <<<.
Possibilities for fixing this:

  • Put all librtas code in one translation unit, allowing as to mark these static
  • Using the "visibility" function attribute
  • Export map

librtasevent seems to have a lot of questionable externally visible symbols as well but I haven't looked closely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant