| # Linker script for libgccjit.so |
| # Copyright (C) 2013-2022 Free Software Foundation, Inc. |
| # Contributed by David Malcolm <dmalcolm@redhat.com>. |
| # |
| # This file is part of GCC. |
| # |
| # GCC is free software; you can redistribute it and/or modify it |
| # under the terms of the GNU General Public License as published by |
| # the Free Software Foundation; either version 3, or (at your option) |
| # any later version. |
| # |
| # GCC is distributed in the hope that it will be useful, but |
| # WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| # General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with GCC; see the file COPYING3. If not see |
| # <http://www.gnu.org/licenses/>. */ |
| |
| # The initial release of the library. |
| LIBGCCJIT_ABI_0 |
| { |
| global: |
| # Keep this list sorted alphabetically: |
| gcc_jit_block_add_assignment; |
| gcc_jit_block_add_assignment_op; |
| gcc_jit_block_add_comment; |
| gcc_jit_block_add_eval; |
| gcc_jit_block_as_object; |
| gcc_jit_block_end_with_conditional; |
| gcc_jit_block_end_with_jump; |
| gcc_jit_block_end_with_return; |
| gcc_jit_block_end_with_void_return; |
| gcc_jit_block_get_function; |
| gcc_jit_context_acquire; |
| gcc_jit_context_compile; |
| gcc_jit_context_compile_to_file; |
| gcc_jit_context_dump_to_file; |
| gcc_jit_context_dump_reproducer_to_file; |
| gcc_jit_context_enable_dump; |
| gcc_jit_context_get_builtin_function; |
| gcc_jit_context_get_first_error; |
| gcc_jit_context_get_last_error; |
| gcc_jit_context_get_type; |
| gcc_jit_context_get_int_type; |
| gcc_jit_context_new_array_access; |
| gcc_jit_context_new_array_type; |
| gcc_jit_context_new_binary_op; |
| gcc_jit_context_new_call; |
| gcc_jit_context_new_call_through_ptr; |
| gcc_jit_context_new_cast; |
| gcc_jit_context_new_child_context; |
| gcc_jit_context_new_comparison; |
| gcc_jit_context_new_field; |
| gcc_jit_context_new_function; |
| gcc_jit_context_new_function_ptr_type; |
| gcc_jit_context_new_global; |
| gcc_jit_context_new_location; |
| gcc_jit_context_new_opaque_struct; |
| gcc_jit_context_new_param; |
| gcc_jit_context_new_rvalue_from_double; |
| gcc_jit_context_new_rvalue_from_int; |
| gcc_jit_context_new_rvalue_from_long; |
| gcc_jit_context_new_rvalue_from_ptr; |
| gcc_jit_context_new_string_literal; |
| gcc_jit_context_new_struct_type; |
| gcc_jit_context_new_unary_op; |
| gcc_jit_context_new_union_type; |
| gcc_jit_context_null; |
| gcc_jit_context_one; |
| gcc_jit_context_release; |
| gcc_jit_context_set_bool_option; |
| gcc_jit_context_set_int_option; |
| gcc_jit_context_set_logfile; |
| gcc_jit_context_set_str_option; |
| gcc_jit_context_zero; |
| gcc_jit_field_as_object; |
| gcc_jit_function_as_object; |
| gcc_jit_function_dump_to_dot; |
| gcc_jit_function_get_param; |
| gcc_jit_function_new_block; |
| gcc_jit_function_new_local; |
| gcc_jit_location_as_object; |
| gcc_jit_lvalue_as_object; |
| gcc_jit_lvalue_as_rvalue; |
| gcc_jit_lvalue_access_field; |
| gcc_jit_lvalue_get_address; |
| gcc_jit_object_get_context; |
| gcc_jit_object_get_debug_string; |
| gcc_jit_param_as_lvalue; |
| gcc_jit_param_as_object; |
| gcc_jit_param_as_rvalue; |
| gcc_jit_result_get_code; |
| gcc_jit_result_get_global; |
| gcc_jit_result_release; |
| gcc_jit_rvalue_access_field; |
| gcc_jit_rvalue_as_object; |
| gcc_jit_rvalue_dereference; |
| gcc_jit_rvalue_dereference_field; |
| gcc_jit_rvalue_get_type; |
| gcc_jit_struct_as_type; |
| gcc_jit_struct_set_fields; |
| gcc_jit_type_as_object; |
| gcc_jit_type_get_const; |
| gcc_jit_type_get_pointer; |
| gcc_jit_type_get_volatile; |
| |
| local: *; |
| }; |
| |
| # Add support for adding arbitrary command-line options (PR jit/66628). |
| LIBGCCJIT_ABI_1 { |
| global: |
| gcc_jit_context_add_command_line_option; |
| } LIBGCCJIT_ABI_0; |
| |
| # Add support for disabling the check for unreachable blocks (PR jit/66546). |
| LIBGCCJIT_ABI_2 { |
| global: |
| gcc_jit_context_set_bool_allow_unreachable_blocks; |
| } LIBGCCJIT_ABI_1; |
| |
| # Add support for switch statements. |
| LIBGCCJIT_ABI_3 { |
| global: |
| gcc_jit_block_end_with_switch; |
| gcc_jit_case_as_object; |
| gcc_jit_context_new_case; |
| } LIBGCCJIT_ABI_2; |
| |
| # Add timing API. |
| LIBGCCJIT_ABI_4 { |
| global: |
| gcc_jit_context_get_timer; |
| gcc_jit_context_set_timer; |
| gcc_jit_timer_new; |
| gcc_jit_timer_release; |
| gcc_jit_timer_push; |
| gcc_jit_timer_pop; |
| gcc_jit_timer_print; |
| }; |
| |
| LIBGCCJIT_ABI_5 { |
| global: |
| gcc_jit_context_set_bool_use_external_driver; |
| } LIBGCCJIT_ABI_4; |
| |
| LIBGCCJIT_ABI_6 { |
| global: |
| gcc_jit_rvalue_set_bool_require_tail_call; |
| } LIBGCCJIT_ABI_5; |
| |
| LIBGCCJIT_ABI_7 { |
| global: |
| gcc_jit_type_get_aligned; |
| } LIBGCCJIT_ABI_6; |
| |
| LIBGCCJIT_ABI_8 { |
| global: |
| gcc_jit_type_get_vector; |
| } LIBGCCJIT_ABI_7; |
| |
| LIBGCCJIT_ABI_9 { |
| global: |
| gcc_jit_function_get_address; |
| } LIBGCCJIT_ABI_8; |
| |
| LIBGCCJIT_ABI_10 { |
| global: |
| gcc_jit_context_new_rvalue_from_vector; |
| } LIBGCCJIT_ABI_9; |
| |
| LIBGCCJIT_ABI_11 { |
| global: |
| gcc_jit_context_add_driver_option; |
| } LIBGCCJIT_ABI_10; |
| |
| LIBGCCJIT_ABI_12 { |
| global: |
| gcc_jit_context_new_bitfield; |
| } LIBGCCJIT_ABI_11; |
| |
| LIBGCCJIT_ABI_13 { |
| global: |
| gcc_jit_version_major; |
| gcc_jit_version_minor; |
| gcc_jit_version_patchlevel; |
| } LIBGCCJIT_ABI_12; |
| |
| LIBGCCJIT_ABI_14 { |
| global: |
| gcc_jit_global_set_initializer; |
| } LIBGCCJIT_ABI_13; |
| |
| LIBGCCJIT_ABI_15 { |
| global: |
| gcc_jit_block_add_extended_asm; |
| gcc_jit_block_end_with_extended_asm_goto; |
| gcc_jit_extended_asm_as_object; |
| gcc_jit_extended_asm_set_volatile_flag; |
| gcc_jit_extended_asm_set_inline_flag; |
| gcc_jit_extended_asm_add_output_operand; |
| gcc_jit_extended_asm_add_input_operand; |
| gcc_jit_extended_asm_add_clobber; |
| gcc_jit_context_add_top_level_asm; |
| } LIBGCCJIT_ABI_14; |
| |
| LIBGCCJIT_ABI_16 { |
| global: |
| gcc_jit_function_get_return_type; |
| gcc_jit_function_get_param_count; |
| gcc_jit_function_type_get_return_type; |
| gcc_jit_function_type_get_param_count; |
| gcc_jit_function_type_get_param_type; |
| gcc_jit_type_unqualified; |
| gcc_jit_type_dyncast_array; |
| gcc_jit_type_is_bool; |
| gcc_jit_type_dyncast_function_ptr_type; |
| gcc_jit_type_is_integral; |
| gcc_jit_type_is_pointer; |
| gcc_jit_type_dyncast_vector; |
| gcc_jit_vector_type_get_element_type; |
| gcc_jit_vector_type_get_num_units; |
| gcc_jit_struct_get_field; |
| gcc_jit_type_is_struct; |
| gcc_jit_struct_get_field_count; |
| } LIBGCCJIT_ABI_15; |
| |
| LIBGCCJIT_ABI_17 { |
| global: |
| gcc_jit_lvalue_set_tls_model; |
| } LIBGCCJIT_ABI_16; |
| |
| LIBGCCJIT_ABI_18 { |
| global: |
| gcc_jit_lvalue_set_link_section; |
| } LIBGCCJIT_ABI_17; |
| |
| LIBGCCJIT_ABI_19 { |
| global: |
| gcc_jit_context_new_array_constructor; |
| gcc_jit_context_new_struct_constructor; |
| gcc_jit_context_new_union_constructor; |
| gcc_jit_global_set_initializer_rvalue; |
| } LIBGCCJIT_ABI_18; |
| |
| LIBGCCJIT_ABI_20 { |
| global: |
| gcc_jit_compatible_types; |
| gcc_jit_type_get_size; |
| } LIBGCCJIT_ABI_19; |
| |
| LIBGCCJIT_ABI_21 { |
| global: |
| gcc_jit_context_new_bitcast; |
| } LIBGCCJIT_ABI_20; |
| |
| LIBGCCJIT_ABI_22 { |
| global: |
| gcc_jit_lvalue_set_register_name; |
| } LIBGCCJIT_ABI_21; |
| |
| LIBGCCJIT_ABI_23 { |
| global: |
| gcc_jit_context_set_bool_print_errors_to_stderr; |
| } LIBGCCJIT_ABI_22; |
| |
| LIBGCCJIT_ABI_24 { |
| global: |
| gcc_jit_lvalue_set_alignment; |
| gcc_jit_lvalue_get_alignment; |
| } LIBGCCJIT_ABI_23; |