1# Linker script for libgccjit.so 2# Copyright (C) 2013-2019 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;