From 5f662ea93f1229f2cd9df67a27cc850bc856c75b Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 3 Mar 2024 09:45:27 +0100 Subject: riscv32: add basic support for NPTL --- .../unix/sysv/linux/riscv32/sysdep-cancel.h | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/riscv32/sysdep-cancel.h (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux/riscv32/sysdep-cancel.h') diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/riscv32/sysdep-cancel.h b/libpthread/nptl/sysdeps/unix/sysv/linux/riscv32/sysdep-cancel.h new file mode 100644 index 000000000..f7e70514a --- /dev/null +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/riscv32/sysdep-cancel.h @@ -0,0 +1,38 @@ +/* Copyright (C) 2014 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + . */ + +#include +#include +#ifndef __ASSEMBLER__ +# include +#endif + +#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt + +# define SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) + +#else + +# define SINGLE_THREAD_P 1 +# define NO_CANCELLATION 1 + +#endif + +#define RTLD_SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) -- cgit v1.2.3