From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 0F0FF3858D28 for ; Wed, 24 Jan 2024 18:31:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0F0FF3858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0F0FF3858D28 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706121099; cv=none; b=dFMKRbYCXkb6D/UW2EC/wX7ALd6Yt6ofqoh5FormTBN+0ecGFGiaf8NAzi6htePEYEc8c4r5TuoECSH9+/aTb+GB3Lo9PS2wTIiyW8eDmrR+empLD9NqhCUUinLQGmXNmAOMDz6+TIP09M5COL878Twut7hxAcC7QPDsoG9OM1g= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706121099; c=relaxed/simple; bh=kitrLoi5HmXoUhYr/lqq6RYighwHH7OFQ9mfTPw8+8w=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=i7TbZsw2ZRqYJZcbX5iG7BMpLNlZSnh07w0RsmhjUBrs/ug3JgLH9ZyzPnvleNXOP+5OEsOZVzekzXxy8HoRBb2rQZZ8i4iTeHGphbGRbWsTqz0RurTbQcrO/ojM8Tc+t0OMu1p0zDHcOuhKolCdS/1SYcO6Vl7AJZBXMENKtTk= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1706121096; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VpuUkQfmp4zmj297bDHwJRzKJpA+AuzXKzHHLxhoPms=; b=JLCvPpFd8VcS2CYcVq94fHB49UBO05+GaADGZTWxieuzVq12xP/M28tV/SQhHNBeaQnz4e 8IC4WmL6F+xSqK/cy63k7/mUauG8uXsUpc6J4Mpeyhbonw8kGGnk44GZ8jNC0c7g5y3u12 HfkA8m8tgH/NDh+jED9XQwoGE0PhYmE= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-252-SmuDbOdKNKugjl-zftr_PQ-1; Wed, 24 Jan 2024 13:31:35 -0500 X-MC-Unique: SmuDbOdKNKugjl-zftr_PQ-1 Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7832a94b051so765277785a.2 for ; Wed, 24 Jan 2024 10:31:35 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706121094; x=1706725894; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=VpuUkQfmp4zmj297bDHwJRzKJpA+AuzXKzHHLxhoPms=; b=lJG106kJY3IwByV3HfLNKWl2SnT5I53HNIM2t0rScPZTcFVoDEd5VGunkRJFMU2mgD FzERmhG5Z8dp6gz7HfqcjG3KMfGXoKIQbNpns78cG6GN7oOSUat+CgGpjpfWW9XirZMF /wZje/R0GIqjE59keJe5zhokNXi/k3/I8dm02xbcovm+e/Ad5+vuE8GfBSQAtwHZB73B Qmzbn7ha7pLX+wi3EKtd5NAiuHiqI719AL8mLjjh5bII7qQWLT21ti0Uv839J+y0Djyx L1vzQk4YoheGUBa/Q7CRk5PhjTuTF5DyIioMpFfYIjYJKOVtPT/rxdTGN7Cr69qZUO+i Tp0w== X-Gm-Message-State: AOJu0YyD3inXt6EChzA/T3906Z5gzkjIjBxIAaBByp7fZDkDYMrHzW8v sg3XN9BMyEY7vhxy/1LKuQircWmTq7eeqhm2bqM07OmW1IlHenItlfpNQeT5jqF0AmmxdAleVNy T6BtV4gbDthMs79ZIaqYojttJpwKVN6YsgubvfFBC+bfrLC26g75M4iPIrE9UWh0= X-Received: by 2002:ae9:ee09:0:b0:783:7c19:828a with SMTP id i9-20020ae9ee09000000b007837c19828amr9441634qkg.115.1706121094519; Wed, 24 Jan 2024 10:31:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IFvhwqz0BPRGoMqFL3XLUqq8wPdyXorhai1Roeucv1XHQFLJZ0jZrl63yuqSYEqjk40+NTjDw== X-Received: by 2002:ae9:ee09:0:b0:783:7c19:828a with SMTP id i9-20020ae9ee09000000b007837c19828amr9441626qkg.115.1706121094094; Wed, 24 Jan 2024 10:31:34 -0800 (PST) Received: from t14s.localdomain (c-76-28-97-5.hsd1.ma.comcast.net. [76.28.97.5]) by smtp.gmail.com with ESMTPSA id d5-20020a05620a166500b007831f65d030sm4293346qko.36.2024.01.24.10.31.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 10:31:33 -0800 (PST) Message-ID: <7cea35c64c6eeb5fe7dcd09f01e9a6728479493f.camel@redhat.com> Subject: Re: [PATCH] jit, Darwin: Implement library exports list. From: David Malcolm To: iain@sandoe.co.uk, gcc-patches@gcc.gnu.org Date: Wed, 24 Jan 2024 13:31:32 -0500 In-Reply-To: <20240116111025.14659-1-iain@sandoe.co.uk> References: <20240116111025.14659-1-iain@sandoe.co.uk> User-Agent: Evolution 3.44.4 (3.44.4-2.fc36) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Tue, 2024-01-16 at 11:10 +0000, Iain Sandoe wrote: > Tested on x86_64, i686 Darwin and x86_64 Linux, > OK for trunk? when ? > thanks, > Iain Hi Iain, thanks for the patch. I'll have to defer to your Darwin expertise here; given that you've tested it on the above configurations I'll assume it's correct, but... >=20 > --- 8< --- >=20 > Currently, we have no exports list for libgccjit, which means that > all symbols are exported, including those from libstdc++ which is > linked statically into the lib.=C2=A0 This causes failures when the > shared libstdc++ is used but some c++ symbols are satisfied from > libgccjit. >=20 > This implements an export file for Darwin (which is currently > manually created by cross-checking libgccjit.map). ...I'm a little nervous about this; Antoyo has a number of out-of-tree patches we're working towards merging, and almost all of these touch libgccjit.map. > =C2=A0 Ideally we'd > script this, at some point.=C2=A0=C2=A0 Yes. How about a Python 3 script (inside "contrib", or in "gcc/jit") that would do that. Then whenever a patch touches libgccjit.map we'd run that script to regenerate libgccjit.exp in the source tree. I can have a go at writing it, if you think that's the best way to go. I take it .exp is the standard extension for these exports file in the Darwin world. If so, it's a shame (but unavoidable) that it clashes with the existing uses of .exp in our source tree for our expect/Tcl/DejaGnu sources. I think the patch as-is is OK for trunk now, assuming that you've tested it as above. Dave > Update libtool current and age to > reflect the current ABI version (we are not bumping the SO name > at this stage). >=20 > This fixes a number of new failures in jit testing. >=20 > gcc/jit/ChangeLog: >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* Make-lang.in: Implement= exports list, and use a shared > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0libgcc. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* libgccjit.exp: New file= . >=20 > Signed-off-by: Iain Sandoe > --- > =C2=A0gcc/jit/Make-lang.in=C2=A0 |=C2=A0 38 ++++--- > =C2=A0gcc/jit/libgccjit.exp | 229 > ++++++++++++++++++++++++++++++++++++++++++ > =C2=A02 files changed, 251 insertions(+), 16 deletions(-) > =C2=A0create mode 100644 gcc/jit/libgccjit.exp >=20 > diff --git a/gcc/jit/Make-lang.in b/gcc/jit/Make-lang.in > index b1f0ce73e12..52dc2c24908 100644 > --- a/gcc/jit/Make-lang.in > +++ b/gcc/jit/Make-lang.in > @@ -55,7 +55,10 @@ else > =C2=A0 > =C2=A0ifneq (,$(findstring darwin,$(host))) > =C2=A0 > -LIBGCCJIT_AGE =3D 1 > +LIBGCCJIT_CURRENT =3D 26 > +LIBGCCJIT_REVISION =3D 0 > +LIBGCCJIT_AGE =3D 26 > +LIBGCCJIT_COMPAT =3D 0 > =C2=A0LIBGCCJIT_BASENAME =3D libgccjit > =C2=A0 > =C2=A0LIBGCCJIT_SONAME =3D \ > @@ -63,15 +66,15 @@ LIBGCCJIT_SONAME =3D \ > =C2=A0LIBGCCJIT_FILENAME =3D > $(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib > =C2=A0LIBGCCJIT_LINKER_NAME =3D $(LIBGCCJIT_BASENAME).dylib > =C2=A0 > -# Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and > -# LD_SONAME_OPTION depending if configure found them, using $(if) > -# We have to define a COMMA here, otherwise the commas in the "true" > -# result are treated as separators by the $(if). > -COMMA :=3D , > +# Darwin does not have a version script option. Exported symbols are > controlled > +#=C2=A0by the following, and library versioning is done using libtool. > =C2=A0LIBGCCJIT_VERSION_SCRIPT_OPTION =3D \ > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0$(if $(LD_VERSION_SCRIPT_OPTIO= N),\ > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 - > Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit. > map) > +=C2=A0 -Wl,-exported_symbols_list,$(srcdir)/jit/libgccjit.exp > =C2=A0 > +# Conditionalize the use of=C2=A0 LD_SONAME_OPTION on configure finding > it, using > +#=C2=A0$(if).=C2=A0 We have to define a COMMA here, otherwise the commas= in > the "true" > +# result are treated as separators by the $(if). > +COMMA :=3D , > =C2=A0LIBGCCJIT_SONAME_OPTION =3D \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0$(if $(LD_SONAME_OPTION),= \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = - > Wl$(COMMA)$(LD_SONAME_OPTION)$(COMMA)$(LIBGCCJIT_SONAME)) > @@ -143,15 +146,18 @@ ifneq (,$(findstring mingw,$(target))) > =C2=A0# Create import library > =C2=A0LIBGCCJIT_EXTRA_OPTS =3D -Wl,--out-implib,$(LIBGCCJIT_IMPORT_LIB) > =C2=A0else > - > =C2=A0ifneq (,$(findstring darwin,$(host))) > -# TODO : Construct a Darwin-style symbol export file. > -LIBGCCJIT_EXTRA_OPTS =3D -Wl,- > compatibility_version,$(LIBGCCJIT_VERSION_NUM) \ > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-Wl,- > current_version,$(LIBGCCJIT_VERSION_NUM).$(LIBGCCJIT_MINOR_NUM).$(LIB > GCCJIT_AGE) \ > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0$(LIBGCCJIT_VERSION_SCRIPT_OPT= ION) \ > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0$(LIBGCCJIT_SONAME_OPTION) > +LIBGCCJIT_VERS =3D > $(LIBGCCJIT_CURRENT).$(LIBGCCJIT_REVISION).$(LIBGCCJIT_AGE) > +LIBGCCJIT_EXTRA_OPTS =3D -Wl,-current_version,$(LIBGCCJIT_VERS) \ > + -Wl,-compatibility_version,$(LIBGCCJIT_COMPAT) \ > +=C2=A0 $(LIBGCCJIT_VERSION_SCRIPT_OPTION) $(LIBGCCJIT_SONAME_OPTION) > +# Use the default (shared) libgcc. > +JIT_LDFLAGS =3D $(filter-out -static-libgcc, $(LDFLAGS)) > +ifeq (,$(findstring darwin8,$(host))) > +JIT_LDFLAGS +=3D -Wl,-rpath,@loader_path > +endif > =C2=A0else > - > +JIT_LDFLAGS =3D $(LDFLAGS) > =C2=A0LIBGCCJIT_EXTRA_OPTS =3D $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0$(LIBGCCJIT_SONAME_OPTION= ) > =C2=A0endif > @@ -170,7 +176,7 @@ $(LIBGCCJIT_FILENAME): $(jit_OBJS) \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0$(LIBDEPS) $(srcdir)/jit/= libgccjit.map \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0$(EXTRA_GCC_OBJS_EXCLUSIV= E) $(jit.prev) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0@$(call LINK_PROGRESS,$(I= NDEX.jit),start) > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0+$(LLINKER) $(ALL_LINKERFLAGS)= $(LDFLAGS) -o $@ -shared \ > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0+$(LLINKER) $(ALL_LINKERFLAGS)= $(JIT_LDFLAGS) -o $@ -shared \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = $(jit_OBJS) libbackend.a libcommon-target.a libcommon.a > \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = $(CPPLIB) $(LIBDECNUMBER) $(EXTRA_GCC_LIBS) $(LIBS) > $(BACKENDLIBS) \ > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = $(EXTRA_GCC_OBJS_EXCLUSIVE) \ > diff --git a/gcc/jit/libgccjit.exp b/gcc/jit/libgccjit.exp > new file mode 100644 > index 00000000000..0829503a53e > --- /dev/null > +++ b/gcc/jit/libgccjit.exp > @@ -0,0 +1,229 @@ > +# Linker export list for Darwin libgccjit.dylib > + > +#=C2=A0=C2=A0 Contributed by Iain Sandoe . > +# > +# 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.=C2=A0 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.=C2=A0 If not see > +# .=C2=A0 */ > + > +# The initial release of the library. > +# 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 > + > +# Add support for adding arbitrary command-line options (PR > jit/66628). > +# LIBGCCJIT_ABI_1 > +_gcc_jit_context_add_command_line_option > + > +# Add support for disabling the check for unreachable blocks (PR > jit/66546). > +# LIBGCCJIT_ABI_2 > +_gcc_jit_context_set_bool_allow_unreachable_blocks > + > +# Add support for switch statements. > +# LIBGCCJIT_ABI_3 > +_gcc_jit_block_end_with_switch > +_gcc_jit_case_as_object > +_gcc_jit_context_new_case > + > +# Add timing API. > +#LIBGCCJIT_ABI_4 > +_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 > +_gcc_jit_context_set_bool_use_external_driver > + > +# LIBGCCJIT_ABI_6 > +_gcc_jit_rvalue_set_bool_require_tail_call > + > +# LIBGCCJIT_ABI_7 > +_gcc_jit_type_get_aligned > + > +# LIBGCCJIT_ABI_8 > +_gcc_jit_type_get_vector > + > +# LIBGCCJIT_ABI_9 > +_gcc_jit_function_get_address > + > +# LIBGCCJIT_ABI_10 > +_gcc_jit_context_new_rvalue_from_vector > + > +# LIBGCCJIT_ABI_11 > +_gcc_jit_context_add_driver_option > + > +# LIBGCCJIT_ABI_12 > +_gcc_jit_context_new_bitfield > + > +# LIBGCCJIT_ABI_13 > +_gcc_jit_version_major > +_gcc_jit_version_minor > +_gcc_jit_version_patchlevel > + > +# LIBGCCJIT_ABI_14 > +_gcc_jit_global_set_initializer > + > +# LIBGCCJIT_ABI_15 > +_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_16 > +_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_17 > +_gcc_jit_lvalue_set_tls_model > + > +# LIBGCCJIT_ABI_18 > +_gcc_jit_lvalue_set_link_section > + > +#LIBGCCJIT_ABI_19 > +_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_20 > +_gcc_jit_compatible_types > +_gcc_jit_type_get_size > + > +# LIBGCCJIT_ABI_21 > +_gcc_jit_context_new_bitcast > + > +# LIBGCCJIT_ABI_22 > +_gcc_jit_lvalue_set_register_name > + > +# LIBGCCJIT_ABI_23 > +_gcc_jit_context_set_bool_print_errors_to_stderr > + > +# LIBGCCJIT_ABI_24 > +_gcc_jit_lvalue_set_alignment > +_gcc_jit_lvalue_get_alignment > + > +# LIBGCCJIT_ABI_25 > +_gcc_jit_type_get_restrict > + > +# LIBGCCJIT_ABI_26=20 > +_gcc_jit_function_add_attribute > +_gcc_jit_function_add_string_attribute > +_gcc_jit_lvalue_add_string_attribute > +_gcc_jit_function_add_integer_array_attribute > +