aboutsummaryrefslogtreecommitdiff
path: root/libgcc/libgcc2.h
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2023-08-05 14:31:06 +0200
committerIain Sandoe <iain@sandoe.co.uk>2023-10-22 14:01:47 +0100
commit8abddb187b33480d8827f44ec655f45734a1749d (patch)
tree418fa9ecdf84f5e83d34fa7f58d4887f5a67d621 /libgcc/libgcc2.h
parentcbf6da166ea7993e166dcb121fc7b9ef4ec87c89 (diff)
downloadgcc-8abddb187b33480d8827f44ec655f45734a1749d.zip
gcc-8abddb187b33480d8827f44ec655f45734a1749d.tar.gz
gcc-8abddb187b33480d8827f44ec655f45734a1749d.tar.bz2
libgcc: support heap-based trampolines
Add support for heap-based trampolines on x86_64-linux, aarch64-linux, and x86_64-darwin. Implement the __builtin_nested_func_ptr_created and __builtin_nested_func_ptr_deleted functions for these targets. Co-Authored-By: Maxim Blinov <maxim.blinov@embecosm.com> Co-Authored-By: Iain Sandoe <iain@sandoe.co.uk> Co-Authored-By: Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> libgcc/ChangeLog: * libgcc2.h (__builtin_nested_func_ptr_created): Declare. (__builtin_nested_func_ptr_deleted): Declare. * libgcc-std.ver.in: Add the new symbols. * config/aarch64/heap-trampoline.c: Implement heap-based trampolines for aarch64. * config/aarch64/t-heap-trampoline: Add rule to build config/aarch64/heap-trampoline.c * config/i386/heap-trampoline.c: Implement heap-based trampolines for x86_64. * config/i386/t-heap-trampoline: Add rule to build config/i386/heap-trampoline.cc * config.host: Handle --enable-heap-trampolines on x86_64-*-linux*, aarch64-*-linux*, x86_64-*-darwin*.
Diffstat (limited to 'libgcc/libgcc2.h')
-rw-r--r--libgcc/libgcc2.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/libgcc/libgcc2.h b/libgcc/libgcc2.h
index 06e26ca..7e6696d 100644
--- a/libgcc/libgcc2.h
+++ b/libgcc/libgcc2.h
@@ -29,6 +29,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#pragma GCC visibility push(default)
#endif
+extern void __builtin_nested_func_ptr_created (void *, void *, void **);
+extern void __builtin_nested_func_ptr_deleted (void);
+
extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
extern void __clear_cache (void *, void *);
extern void __eprintf (const char *, const char *, unsigned int, const char *)