Home | History | Annotate | Line # | Download | only in jit
      1 # Linker script for libgccjit.so
      2 #   Copyright (C) 2013-2022 Free Software Foundation, Inc.
      3 #   Contributed by David Malcolm <dmalcolm (a] 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.
     22 LIBGCCJIT_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).
    113 LIBGCCJIT_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).
    119 LIBGCCJIT_ABI_2 {
    120   global:
    121     gcc_jit_context_set_bool_allow_unreachable_blocks;
    122 } LIBGCCJIT_ABI_1;
    123 
    124 # Add support for switch statements.
    125 LIBGCCJIT_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.
    133 LIBGCCJIT_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 
    144 LIBGCCJIT_ABI_5 {
    145   global:
    146     gcc_jit_context_set_bool_use_external_driver;
    147 } LIBGCCJIT_ABI_4;
    148 
    149 LIBGCCJIT_ABI_6 {
    150   global:
    151     gcc_jit_rvalue_set_bool_require_tail_call;
    152 } LIBGCCJIT_ABI_5;
    153 
    154 LIBGCCJIT_ABI_7 {
    155   global:
    156     gcc_jit_type_get_aligned;
    157 } LIBGCCJIT_ABI_6;
    158 
    159 LIBGCCJIT_ABI_8 {
    160   global:
    161     gcc_jit_type_get_vector;
    162 } LIBGCCJIT_ABI_7;
    163 
    164 LIBGCCJIT_ABI_9 {
    165   global:
    166     gcc_jit_function_get_address;
    167 } LIBGCCJIT_ABI_8;
    168 
    169 LIBGCCJIT_ABI_10 {
    170   global:
    171     gcc_jit_context_new_rvalue_from_vector;
    172 } LIBGCCJIT_ABI_9;
    173 
    174 LIBGCCJIT_ABI_11 {
    175   global:
    176     gcc_jit_context_add_driver_option;
    177 } LIBGCCJIT_ABI_10;
    178 
    179 LIBGCCJIT_ABI_12 {
    180   global:
    181     gcc_jit_context_new_bitfield;
    182 } LIBGCCJIT_ABI_11;
    183 
    184 LIBGCCJIT_ABI_13 {
    185   global:
    186     gcc_jit_version_major;
    187     gcc_jit_version_minor;
    188     gcc_jit_version_patchlevel;
    189 } LIBGCCJIT_ABI_12;
    190 
    191 LIBGCCJIT_ABI_14 {
    192   global:
    193     gcc_jit_global_set_initializer;
    194 } LIBGCCJIT_ABI_13;
    195 
    196 LIBGCCJIT_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 
    209 LIBGCCJIT_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 
    230 LIBGCCJIT_ABI_17 {
    231   global:
    232     gcc_jit_lvalue_set_tls_model;
    233 } LIBGCCJIT_ABI_16;
    234 
    235 LIBGCCJIT_ABI_18 {
    236   global:
    237     gcc_jit_lvalue_set_link_section;
    238 } LIBGCCJIT_ABI_17;
    239 
    240 LIBGCCJIT_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 
    248 LIBGCCJIT_ABI_20 {
    249   global:
    250     gcc_jit_compatible_types;
    251     gcc_jit_type_get_size;
    252 } LIBGCCJIT_ABI_19;
    253 
    254 LIBGCCJIT_ABI_21 {
    255   global:
    256     gcc_jit_context_new_bitcast;
    257 } LIBGCCJIT_ABI_20;
    258 
    259 LIBGCCJIT_ABI_22 {
    260   global:
    261     gcc_jit_lvalue_set_register_name;
    262 } LIBGCCJIT_ABI_21;
    263 
    264 LIBGCCJIT_ABI_23 {
    265   global:
    266     gcc_jit_context_set_bool_print_errors_to_stderr;
    267 } LIBGCCJIT_ABI_22;
    268 
    269 LIBGCCJIT_ABI_24 {
    270   global:
    271     gcc_jit_lvalue_set_alignment;
    272     gcc_jit_lvalue_get_alignment;
    273 } LIBGCCJIT_ABI_23;
    274