blob: cc22b2b414e55d9da90c4010292bb70de3601e0b [file] [log] [blame]
# 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;