1# Linker script for libgccjit.so 2# Copyright (C) 2013-2022 Free Software Foundation, Inc. 3# Contributed by David Malcolm <dmalcolm@redhat.com>. 4# 5# This file is part of GCC. 6# 7# GCC is free software; you can redistribute it and/or modify it 8# under the terms of the GNU General Public License as published by 9# the Free Software Foundation; either version 3, or (at your option) 10# any later version. 11# 12# GCC is distributed in the hope that it will be useful, but 13# WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15# General Public License for more details. 16# 17# You should have received a copy of the GNU General Public License 18# along with GCC; see the file COPYING3. If not see 19# <http://www.gnu.org/licenses/>. */ 20 21# The initial release of the library. 22LIBGCCJIT_ABI_0 23{ 24 global: 25 # Keep this list sorted alphabetically: 26 gcc_jit_block_add_assignment; 27 gcc_jit_block_add_assignment_op; 28 gcc_jit_block_add_comment; 29 gcc_jit_block_add_eval; 30 gcc_jit_block_as_object; 31 gcc_jit_block_end_with_conditional; 32 gcc_jit_block_end_with_jump; 33 gcc_jit_block_end_with_return; 34 gcc_jit_block_end_with_void_return; 35 gcc_jit_block_get_function; 36 gcc_jit_context_acquire; 37 gcc_jit_context_compile; 38 gcc_jit_context_compile_to_file; 39 gcc_jit_context_dump_to_file; 40 gcc_jit_context_dump_reproducer_to_file; 41 gcc_jit_context_enable_dump; 42 gcc_jit_context_get_builtin_function; 43 gcc_jit_context_get_first_error; 44 gcc_jit_context_get_last_error; 45 gcc_jit_context_get_type; 46 gcc_jit_context_get_int_type; 47 gcc_jit_context_new_array_access; 48 gcc_jit_context_new_array_type; 49 gcc_jit_context_new_binary_op; 50 gcc_jit_context_new_call; 51 gcc_jit_context_new_call_through_ptr; 52 gcc_jit_context_new_cast; 53 gcc_jit_context_new_child_context; 54 gcc_jit_context_new_comparison; 55 gcc_jit_context_new_field; 56 gcc_jit_context_new_function; 57 gcc_jit_context_new_function_ptr_type; 58 gcc_jit_context_new_global; 59 gcc_jit_context_new_location; 60 gcc_jit_context_new_opaque_struct; 61 gcc_jit_context_new_param; 62 gcc_jit_context_new_rvalue_from_double; 63 gcc_jit_context_new_rvalue_from_int; 64 gcc_jit_context_new_rvalue_from_long; 65 gcc_jit_context_new_rvalue_from_ptr; 66 gcc_jit_context_new_string_literal; 67 gcc_jit_context_new_struct_type; 68 gcc_jit_context_new_unary_op; 69 gcc_jit_context_new_union_type; 70 gcc_jit_context_null; 71 gcc_jit_context_one; 72 gcc_jit_context_release; 73 gcc_jit_context_set_bool_option; 74 gcc_jit_context_set_int_option; 75 gcc_jit_context_set_logfile; 76 gcc_jit_context_set_str_option; 77 gcc_jit_context_zero; 78 gcc_jit_field_as_object; 79 gcc_jit_function_as_object; 80 gcc_jit_function_dump_to_dot; 81 gcc_jit_function_get_param; 82 gcc_jit_function_new_block; 83 gcc_jit_function_new_local; 84 gcc_jit_location_as_object; 85 gcc_jit_lvalue_as_object; 86 gcc_jit_lvalue_as_rvalue; 87 gcc_jit_lvalue_access_field; 88 gcc_jit_lvalue_get_address; 89 gcc_jit_object_get_context; 90 gcc_jit_object_get_debug_string; 91 gcc_jit_param_as_lvalue; 92 gcc_jit_param_as_object; 93 gcc_jit_param_as_rvalue; 94 gcc_jit_result_get_code; 95 gcc_jit_result_get_global; 96 gcc_jit_result_release; 97 gcc_jit_rvalue_access_field; 98 gcc_jit_rvalue_as_object; 99 gcc_jit_rvalue_dereference; 100 gcc_jit_rvalue_dereference_field; 101 gcc_jit_rvalue_get_type; 102 gcc_jit_struct_as_type; 103 gcc_jit_struct_set_fields; 104 gcc_jit_type_as_object; 105 gcc_jit_type_get_const; 106 gcc_jit_type_get_pointer; 107 gcc_jit_type_get_volatile; 108 109 local: *; 110}; 111 112# Add support for adding arbitrary command-line options (PR jit/66628). 113LIBGCCJIT_ABI_1 { 114 global: 115 gcc_jit_context_add_command_line_option; 116} LIBGCCJIT_ABI_0; 117 118# Add support for disabling the check for unreachable blocks (PR jit/66546). 119LIBGCCJIT_ABI_2 { 120 global: 121 gcc_jit_context_set_bool_allow_unreachable_blocks; 122} LIBGCCJIT_ABI_1; 123 124# Add support for switch statements. 125LIBGCCJIT_ABI_3 { 126 global: 127 gcc_jit_block_end_with_switch; 128 gcc_jit_case_as_object; 129 gcc_jit_context_new_case; 130} LIBGCCJIT_ABI_2; 131 132# Add timing API. 133LIBGCCJIT_ABI_4 { 134 global: 135 gcc_jit_context_get_timer; 136 gcc_jit_context_set_timer; 137 gcc_jit_timer_new; 138 gcc_jit_timer_release; 139 gcc_jit_timer_push; 140 gcc_jit_timer_pop; 141 gcc_jit_timer_print; 142}; 143 144LIBGCCJIT_ABI_5 { 145 global: 146 gcc_jit_context_set_bool_use_external_driver; 147} LIBGCCJIT_ABI_4; 148 149LIBGCCJIT_ABI_6 { 150 global: 151 gcc_jit_rvalue_set_bool_require_tail_call; 152} LIBGCCJIT_ABI_5; 153 154LIBGCCJIT_ABI_7 { 155 global: 156 gcc_jit_type_get_aligned; 157} LIBGCCJIT_ABI_6; 158 159LIBGCCJIT_ABI_8 { 160 global: 161 gcc_jit_type_get_vector; 162} LIBGCCJIT_ABI_7; 163 164LIBGCCJIT_ABI_9 { 165 global: 166 gcc_jit_function_get_address; 167} LIBGCCJIT_ABI_8; 168 169LIBGCCJIT_ABI_10 { 170 global: 171 gcc_jit_context_new_rvalue_from_vector; 172} LIBGCCJIT_ABI_9; 173 174LIBGCCJIT_ABI_11 { 175 global: 176 gcc_jit_context_add_driver_option; 177} LIBGCCJIT_ABI_10; 178 179LIBGCCJIT_ABI_12 { 180 global: 181 gcc_jit_context_new_bitfield; 182} LIBGCCJIT_ABI_11; 183 184LIBGCCJIT_ABI_13 { 185 global: 186 gcc_jit_version_major; 187 gcc_jit_version_minor; 188 gcc_jit_version_patchlevel; 189} LIBGCCJIT_ABI_12; 190 191LIBGCCJIT_ABI_14 { 192 global: 193 gcc_jit_global_set_initializer; 194} LIBGCCJIT_ABI_13; 195 196LIBGCCJIT_ABI_15 { 197 global: 198 gcc_jit_block_add_extended_asm; 199 gcc_jit_block_end_with_extended_asm_goto; 200 gcc_jit_extended_asm_as_object; 201 gcc_jit_extended_asm_set_volatile_flag; 202 gcc_jit_extended_asm_set_inline_flag; 203 gcc_jit_extended_asm_add_output_operand; 204 gcc_jit_extended_asm_add_input_operand; 205 gcc_jit_extended_asm_add_clobber; 206 gcc_jit_context_add_top_level_asm; 207} LIBGCCJIT_ABI_14; 208 209LIBGCCJIT_ABI_16 { 210 global: 211 gcc_jit_function_get_return_type; 212 gcc_jit_function_get_param_count; 213 gcc_jit_function_type_get_return_type; 214 gcc_jit_function_type_get_param_count; 215 gcc_jit_function_type_get_param_type; 216 gcc_jit_type_unqualified; 217 gcc_jit_type_dyncast_array; 218 gcc_jit_type_is_bool; 219 gcc_jit_type_dyncast_function_ptr_type; 220 gcc_jit_type_is_integral; 221 gcc_jit_type_is_pointer; 222 gcc_jit_type_dyncast_vector; 223 gcc_jit_vector_type_get_element_type; 224 gcc_jit_vector_type_get_num_units; 225 gcc_jit_struct_get_field; 226 gcc_jit_type_is_struct; 227 gcc_jit_struct_get_field_count; 228} LIBGCCJIT_ABI_15; 229 230LIBGCCJIT_ABI_17 { 231 global: 232 gcc_jit_lvalue_set_tls_model; 233} LIBGCCJIT_ABI_16; 234 235LIBGCCJIT_ABI_18 { 236 global: 237 gcc_jit_lvalue_set_link_section; 238} LIBGCCJIT_ABI_17; 239 240LIBGCCJIT_ABI_19 { 241 global: 242 gcc_jit_context_new_array_constructor; 243 gcc_jit_context_new_struct_constructor; 244 gcc_jit_context_new_union_constructor; 245 gcc_jit_global_set_initializer_rvalue; 246} LIBGCCJIT_ABI_18; 247 248LIBGCCJIT_ABI_20 { 249 global: 250 gcc_jit_compatible_types; 251 gcc_jit_type_get_size; 252} LIBGCCJIT_ABI_19; 253 254LIBGCCJIT_ABI_21 { 255 global: 256 gcc_jit_context_new_bitcast; 257} LIBGCCJIT_ABI_20; 258 259LIBGCCJIT_ABI_22 { 260 global: 261 gcc_jit_lvalue_set_register_name; 262} LIBGCCJIT_ABI_21; 263 264LIBGCCJIT_ABI_23 { 265 global: 266 gcc_jit_context_set_bool_print_errors_to_stderr; 267} LIBGCCJIT_ABI_22; 268 269LIBGCCJIT_ABI_24 { 270 global: 271 gcc_jit_lvalue_set_alignment; 272 gcc_jit_lvalue_get_alignment; 273} LIBGCCJIT_ABI_23; 274