From patchwork Sat Apr 29 20:18:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 68556 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A509C3856DD6 for ; Sat, 29 Apr 2023 20:19:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A509C3856DD6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682799574; bh=/dxZ68gbCPrNW3wFspFPWzqQaflJxyWMV0bEh6r3JqM=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=CJiWrHO0i9Svh67oyj4upejWvO/j9iihYKpDQTJFoQc9oJMJtvwSWlESlBnTsoMq4 SW4V619PSvbuhCCq+P4BNQbTo8VaMaaHtIcJkulQwEqQ9RmQqOe9tu1+wTujg++BEu 9fEMKlgN8OnCDZ02ddPHEAhLFJREyaJygjnA9eXo= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by sourceware.org (Postfix) with ESMTPS id 4CCE93858C54 for ; Sat, 29 Apr 2023 20:18:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4CCE93858C54 Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-4eff055d4d3so1461189e87.3 for ; Sat, 29 Apr 2023 13:18:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682799505; x=1685391505; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/dxZ68gbCPrNW3wFspFPWzqQaflJxyWMV0bEh6r3JqM=; b=VLY3Wuy2XNh4k6aWPEiIMK3kQac6jVS1IiN3OVSVIRH0mYYFlUbwPF+1AXjxn4OCWg MhHAbeN2OOP6Rv6lGsk4LEMVPHFDbgr/LauzZVCk4mD8pQvwSE1wTZjkGMT8txHdr3Pd 9vjEgSlUxzuwPyEX0fKE2Y+3rQ2qFDQ5RrLgCkd2FfcIAFZGA20ktT6Szkzr3jRcXkRq RVCqFfJ74hYk5fPp3h0QKw3VuBEbKSHEzLfeyCg5xZxqtCkT5VODBVt5YbRTeaKXo+zl aeB05UgI3EaWxqvts4qzMZDrLnAPC0mA/ZTXQPXbcr5FLkFSh+xo1eKxqw48yv1NlFGr or4w== X-Gm-Message-State: AC+VfDxLXjtH3ESc7Ow5sPxzTNGsX3+Hug9bpJFQewtBRx4YVwg70Dv3 RPvTax18QjfODitFxmDhT44n8AYo9E0j1w== X-Google-Smtp-Source: ACHHUZ4U0MJqhYnSoUysMqEhTaKQPAm0MsTsLIHGNJTARwB7VGBcjzC3qZsQlkTXXTym9JswDG3GPg== X-Received: by 2002:a05:6512:408:b0:4dc:4fe2:2aad with SMTP id u8-20020a056512040800b004dc4fe22aadmr2547017lfk.41.1682799505550; Sat, 29 Apr 2023 13:18:25 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:a7ac:6f45:1787:abcc]) by smtp.gmail.com with ESMTPSA id h25-20020ac250d9000000b004eb09820adbsm3905451lfm.105.2023.04.29.13.18.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Apr 2023 13:18:25 -0700 (PDT) To: libc-alpha@sourceware.org Cc: bug-hurd@gnu.org, Samuel Thibault Subject: [PATCH v3 1/6] hurd: Implement sigreturn for x86_64 Date: Sat, 29 Apr 2023 23:18:17 +0300 Message-Id: <20230429201822.2605207-2-bugaevc@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230429201822.2605207-1-bugaevc@gmail.com> References: <20230429201822.2605207-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_NUMSUBJECT, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Sergey Bugaev via Libc-alpha From: Sergey Bugaev Reply-To: Sergey Bugaev Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Signed-off-by: Sergey Bugaev --- This incorporates back the fix made to the i386 version: we do need to call _hurd_self_sigstate () once after all. sysdeps/mach/hurd/x86_64/sigreturn.c | 162 +++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 sysdeps/mach/hurd/x86_64/sigreturn.c diff --git a/sysdeps/mach/hurd/x86_64/sigreturn.c b/sysdeps/mach/hurd/x86_64/sigreturn.c new file mode 100644 index 00000000..82247e3c --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/sigreturn.c @@ -0,0 +1,162 @@ +/* Copyright (C) 1991-2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + 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 +#include +#include + +/* This is run on the thread stack after restoring it, to be able to + unlock SS off sigstack. */ +void +__sigreturn2 (struct hurd_sigstate *ss, uintptr_t *usp, + struct sigcontext *scp) +{ + mach_port_t reply_port; + _hurd_sigstate_unlock (ss); + + /* Destroy the MiG reply port used by the signal handler, and restore the + reply port in use by the thread when interrupted. + + We cannot use the original reply port for our RPCs that we do here, since + we could unexpectedly receive/consume a reply message meant for the user + (in particular, msg_sig_post_reply), and also since we would deallocate + the port if *our* RPC fails, which we don't want to do since the user + still has the old name. And so, temporarily set MACH_PORT_DEAD as our + reply name, and make sure destroying the port is the very last RPC we + do. */ + reply_port = THREAD_GETMEM (THREAD_SELF, reply_port); + THREAD_SETMEM (THREAD_SELF, reply_port, MACH_PORT_DEAD); + if (__glibc_likely (MACH_PORT_VALID (reply_port))) + (void) __mach_port_mod_refs (__mach_task_self (), reply_port, + MACH_PORT_RIGHT_RECEIVE, -1); + THREAD_SETMEM (THREAD_SELF, reply_port, scp->sc_reply_port); + + asm volatile ( + /* Point the stack to the register dump. */ + "movq %0, %%rsp\n" + /* Pop off the registers. */ + "popq %%r8\n" + "popq %%r9\n" + "popq %%r10\n" + "popq %%r11\n" + "popq %%r12\n" + "popq %%r13\n" + "popq %%r14\n" + "popq %%r15\n" + "popq %%rdi\n" + "popq %%rsi\n" + "popq %%rbp\n" + "popq %%rbx\n" + "popq %%rdx\n" + "popq %%rcx\n" + "popq %%rax\n" + "popfq\n" + /* Restore %rip and %rsp with a single instruction. */ + "retq $128" : + : "rm" (usp)); + __builtin_unreachable (); +} + +int +__sigreturn (struct sigcontext *scp) +{ + struct hurd_sigstate *ss; + struct hurd_userlink *link = (void *) &scp[1]; + + if (__glibc_unlikely (scp == NULL || (scp->sc_mask & _SIG_CANT_MASK))) + { + errno = EINVAL; + return -1; + } + + ss = _hurd_self_sigstate (); + _hurd_sigstate_lock (ss); + + /* Remove the link on the `active resources' chain added by + _hurd_setup_sighandler. Its purpose was to make sure + that we got called; now we have, it is done. */ + _hurd_userlink_unlink (link); + + /* Restore the set of blocked signals, and the intr_port slot. */ + ss->blocked = scp->sc_mask; + ss->intr_port = scp->sc_intr_port; + + /* Check for pending signals that were blocked by the old set. */ + if (_hurd_sigstate_pending (ss) & ~ss->blocked) + { + /* There are pending signals that just became unblocked. Wake up the + signal thread to deliver them. But first, squirrel away SCP where + the signal thread will notice it if it runs another handler, and + arrange to have us called over again in the new reality. */ + ss->context = scp; + _hurd_sigstate_unlock (ss); + __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ()); + /* If a pending signal was handled, sig_post never returned. + If it did return, the pending signal didn't run a handler; + proceed as usual. */ + _hurd_sigstate_lock (ss); + ss->context = NULL; + } + + if (scp->sc_onstack) + ss->sigaltstack.ss_flags &= ~SS_ONSTACK; + + if (scp->sc_fpused) + /* Restore the FPU state. Mach conveniently stores the state + in the format the i387 `frstor' instruction uses to restore it. */ + asm volatile ("frstor %0" : : "m" (scp->sc_fpsave)); + + { + /* There are convenient instructions to pop state off the stack, so we + copy the registers onto the user's stack, switch there, pop and + return. */ + + uintptr_t *usp = (uintptr_t *) scp->sc_ursp - 128; + + *--usp = scp->sc_rip; + *--usp = scp->sc_rfl; + *--usp = scp->sc_rax; + *--usp = scp->sc_rcx; + *--usp = scp->sc_rdx; + *--usp = scp->sc_rbx; + *--usp = scp->sc_rbp; + *--usp = scp->sc_rsi; + *--usp = scp->sc_rdi; + *--usp = scp->sc_r15; + *--usp = scp->sc_r14; + *--usp = scp->sc_r13; + *--usp = scp->sc_r12; + *--usp = scp->sc_r11; + *--usp = scp->sc_r10; + *--usp = scp->sc_r9; + *--usp = scp->sc_r8; + + /* Switch to the user's stack that we have just prepared, and call + __sigreturn2. Clobber "memory" to make sure GCC flushes the stack + setup to actual memory. We align the stack as per the ABI, but pass + the original usp to __sigreturn2 as an argument. */ + asm volatile ("movq %1, %%rsp\n" + "andq $-16, %%rsp\n" + "call __sigreturn2" : + : "D" (ss), "S" (usp), "d" (scp) + : "memory"); + __builtin_unreachable (); + } +} + +weak_alias (__sigreturn, sigreturn) From patchwork Sat Apr 29 20:18:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 68558 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6A513385771F for ; Sat, 29 Apr 2023 20:20:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6A513385771F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682799619; bh=5FXbg/7As/ZS6BTn4fsP4gzO9NJUFj/zyczwrjW2woQ=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=ea5TrEmwsjQ1w8MBlopmAeFTs5+5IMY7UjshCWh7IceadQd1V6hIKZTK9O3mpZp7v Kf6t4VWZTtuG8Am01C/hJ5DGhWASgNnZgsW6PleVP2NCXxOXOfqXAtMjRcxf9kl+V/ V6K+O4qKfST+fI3E0zESAq98tIOa7AKdi7iVcbyY= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by sourceware.org (Postfix) with ESMTPS id 9F2D7385840C for ; Sat, 29 Apr 2023 20:18:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9F2D7385840C Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-4effb818c37so1379834e87.3 for ; Sat, 29 Apr 2023 13:18:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682799508; x=1685391508; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5FXbg/7As/ZS6BTn4fsP4gzO9NJUFj/zyczwrjW2woQ=; b=h8C9MzErtCjXg5yG4S2AnKJO9Hx93qqzpV8zjZxKVuKeRXtUaVhfqHTTmdb15lK4ls z2ah0jBJCMYnBjfTVX+2I4p+t8ap8ibpkM91Y3JVO4N/p6d87f1sbJ6XG9CL2B3xFVlc k/AljBFqLiwoSQeExDrOUd3zIc3ZOVK0r2KwyPc2TbGUqelr5Mkbuy+VUP6qyr0FpOuG QCTQtqqhB2YL/O9XxoV906kUkaeS7386ok+Eq+5izwPt+qSjBJMbOP74LJ68cyKWIUy+ 9zTwLFsLHa0v59Hk1+aoPVYbGuxYARzPYSMEnrX9LMj+n0llKQCFE2VcrCsWJNE75JEc vmeQ== X-Gm-Message-State: AC+VfDxzd2g3S83mWHd9UXgMlz5npOjx5R83v2oD53oC8Ks6PbNKCPTV tDbSWwmd7Hy3c6fs1l923m5Fg0Sq3vwJzQ== X-Google-Smtp-Source: ACHHUZ4flfwb5scTJkydia59CDQwv/jYukIO0nOewzHGbBpvTvSdlnfxvoZEtMdhgYvNpj6puyEShA== X-Received: by 2002:ac2:5d6c:0:b0:4ea:f8f0:545f with SMTP id h12-20020ac25d6c000000b004eaf8f0545fmr2791040lft.52.1682799506743; Sat, 29 Apr 2023 13:18:26 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:a7ac:6f45:1787:abcc]) by smtp.gmail.com with ESMTPSA id h25-20020ac250d9000000b004eb09820adbsm3905451lfm.105.2023.04.29.13.18.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Apr 2023 13:18:26 -0700 (PDT) To: libc-alpha@sourceware.org Cc: bug-hurd@gnu.org, Samuel Thibault Subject: [PATCH v3 2/6] hurd: Implement longjmp for x86_64 Date: Sat, 29 Apr 2023 23:18:18 +0300 Message-Id: <20230429201822.2605207-3-bugaevc@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230429201822.2605207-1-bugaevc@gmail.com> References: <20230429201822.2605207-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_NUMSUBJECT, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Sergey Bugaev via Libc-alpha From: Sergey Bugaev Reply-To: Sergey Bugaev Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Checked on x86_64-gnu. Signed-off-by: Sergey Bugaev --- I have checked that setjmp/longjmp actually works sucessfully, with both __longjmp and ____longjmp_chk. I have not been able to check w/ sigaltstack because we don't yet have the proc server and signals. Changes since v1: - drop the separate non-PIC version, we can always use %rip-relative access on x86_64, and that's what the compiler generates anyway even with -fno-pic; - use "cmpb $0, __libc_tls_initialized(%rip)" over "movb __libc_tls_initialized(%rip), %r10b; testb %r10b, %r10b" -- the former is what the compiler generates, so better be consistent. sysdeps/mach/hurd/x86_64/____longjmp_chk.S | 118 +++++++++++++++++++++ sysdeps/mach/hurd/x86_64/__longjmp.S | 96 +++++++++++++++++ 2 files changed, 214 insertions(+) create mode 100644 sysdeps/mach/hurd/x86_64/____longjmp_chk.S create mode 100644 sysdeps/mach/hurd/x86_64/__longjmp.S diff --git a/sysdeps/mach/hurd/x86_64/____longjmp_chk.S b/sysdeps/mach/hurd/x86_64/____longjmp_chk.S new file mode 100644 index 00000000..935b8575 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/____longjmp_chk.S @@ -0,0 +1,118 @@ +/* Checked longjmp support. x86_64 Hurd version. + Copyright (C) 2001-2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + 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 +#include +#include +#include +#include +#include + +#define SS_ONSTACK 1 + +/* Don't restore shadow stack register if shadow stack isn't enabled. */ +#if !SHSTK_ENABLED +# undef SHADOW_STACK_POINTER_OFFSET +#endif + + .section .rodata.str1.1,"aMS",@progbits,1 + .type longjmp_msg,@object +longjmp_msg: + .string "longjmp causes uninitialized stack frame" + .size longjmp_msg, .-longjmp_msg + + +# define CALL_FAIL sub $8, %RSP_LP; \ + cfi_remember_state; \ + cfi_def_cfa_offset(16); \ + lea longjmp_msg(%rip), %RDI_LP; \ + call HIDDEN_JUMPTARGET(__fortify_fail); \ + nop; \ + cfi_restore_state + +/* Jump to the position specified by ENV, causing the + setjmp call there to return VAL, or 1 if VAL is 0. + void __longjmp (__jmp_buf env, int val). */ + .text +ENTRY(____longjmp_chk) + /* Restore registers. */ + mov (JB_RSP*8)(%rdi), %R8_LP + mov (JB_RBP*8)(%rdi),%R9_LP + mov (JB_PC*8)(%rdi), %RDX_LP +#ifdef PTR_DEMANGLE + PTR_DEMANGLE (%R8_LP) + PTR_DEMANGLE (%R9_LP) + PTR_DEMANGLE (%RDX_LP) +#endif + +#if !defined (SHARED) || IS_IN (rtld) + cmpb $0, __libc_tls_initialized(%rip) + jz .Lok /* TLS not initialized yet */ +#endif + + movq %fs:SIGSTATE_OFFSET, %R10_LP + testq %R10_LP, %R10_LP + jz .Lok /* sigstate not initialized yet */ + + testl $SS_ONSTACK, (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_FLAGS__OFFSET)(%R10_LP) + jnz .Lonstack + + /* We were on the main stack. Jumping to a higher-address + frame is always allowed, otherwise it's not allowed. */ + cmp %R8_LP, %RSP_LP + jbe .Lok + +.Lfail: CALL_FAIL + +.Lonstack: + cmpq (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_SP__OFFSET)(%R10_LP), %R8_LP + jb .Loks /* Jumping below the altstack, switch */ + + movq (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_SP__OFFSET)(%R10_LP), %R11_LP + addq (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_SIZE__OFFSET)(%R10_LP), %R11_LP + cmpq %R11_LP, %R8_LP + jb .Lok /* Jumping inside the altstack, do not switch */ + + /* Jumping above the altstack, switch */ + +.Loks: + andl $~(SS_ONSTACK), (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_FLAGS__OFFSET)(%R10_LP) + +.Lok: + /* We add unwind information for the target here. */ + cfi_def_cfa(%rdi, 0) + cfi_register(%rsp,%r8) + cfi_register(%rbp,%r9) + cfi_register(%rip,%rdx) + cfi_offset(%rbx,JB_RBX*8) + cfi_offset(%r12,JB_R12*8) + cfi_offset(%r13,JB_R13*8) + cfi_offset(%r14,JB_R14*8) + cfi_offset(%r15,JB_R15*8) + movq (JB_RBX*8)(%rdi), %rbx + movq (JB_R12*8)(%rdi), %r12 + movq (JB_R13*8)(%rdi), %r13 + movq (JB_R14*8)(%rdi), %r14 + movq (JB_R15*8)(%rdi), %r15 + /* Set return value for setjmp. */ + movl %esi, %eax + mov %R8_LP, %RSP_LP + movq %r9,%rbp + jmpq *%rdx +END (____longjmp_chk) diff --git a/sysdeps/mach/hurd/x86_64/__longjmp.S b/sysdeps/mach/hurd/x86_64/__longjmp.S new file mode 100644 index 00000000..389c1d16 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/__longjmp.S @@ -0,0 +1,96 @@ +/* longjmp support. x86_64/Hurd version. + Copyright (C) 2001-2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + 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 +#include +#include +#include +#include +#include + +#define SS_ONSTACK 1 + +/* Don't restore shadow stack register if shadow stack isn't enabled. */ +#if !SHSTK_ENABLED +# undef SHADOW_STACK_POINTER_OFFSET +#endif + +/* Jump to the position specified by ENV, causing the + setjmp call there to return VAL, or 1 if VAL is 0. + void __longjmp (__jmp_buf env, int val). */ + .text +ENTRY(__longjmp) + /* Restore registers. */ + mov (JB_RSP*8)(%rdi), %R8_LP + mov (JB_RBP*8)(%rdi),%R9_LP + mov (JB_PC*8)(%rdi), %RDX_LP +#ifdef PTR_DEMANGLE + PTR_DEMANGLE (%R8_LP) + PTR_DEMANGLE (%R9_LP) + PTR_DEMANGLE (%RDX_LP) +#endif + +#if !defined (SHARED) || IS_IN (rtld) + cmpb $0, __libc_tls_initialized(%rip) + jz .Lok /* TLS not initialized yet */ +#endif + + movq %fs:SIGSTATE_OFFSET, %R10_LP + testq %R10_LP, %R10_LP + jz .Lok /* sigstate not initialized yet */ + + testl $SS_ONSTACK, (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_FLAGS__OFFSET)(%R10_LP) + jz .Lok + +.Lonstack: + cmpq (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_SP__OFFSET)(%R10_LP), %R8_LP + jb .Loks /* Jumping below the altstack, switch */ + + movq (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_SP__OFFSET)(%R10_LP), %R11_LP + addq (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_SIZE__OFFSET)(%R10_LP), %R11_LP + cmpq %R11_LP, %R8_LP + jb .Lok /* Jumping inside the altstack, do not switch */ + + /* Jumping above the altstack, switch */ + +.Loks: + andl $~(SS_ONSTACK), (HURD_SIGSTATE__SIGALTSTACK__OFFSET + SIGALTSTACK__SS_FLAGS__OFFSET)(%R10_LP) + +.Lok: + /* We add unwind information for the target here. */ + cfi_def_cfa(%rdi, 0) + cfi_register(%rsp,%r8) + cfi_register(%rbp,%r9) + cfi_register(%rip,%rdx) + cfi_offset(%rbx,JB_RBX*8) + cfi_offset(%r12,JB_R12*8) + cfi_offset(%r13,JB_R13*8) + cfi_offset(%r14,JB_R14*8) + cfi_offset(%r15,JB_R15*8) + movq (JB_RBX*8)(%rdi), %rbx + movq (JB_R12*8)(%rdi), %r12 + movq (JB_R13*8)(%rdi), %r13 + movq (JB_R14*8)(%rdi), %r14 + movq (JB_R15*8)(%rdi), %r15 + /* Set return value for setjmp. */ + movl %esi, %eax + mov %R8_LP, %RSP_LP + movq %r9,%rbp + jmpq *%rdx +END (__longjmp) From patchwork Sat Apr 29 20:18:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 68554 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EB6F13857716 for ; Sat, 29 Apr 2023 20:19:01 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EB6F13857716 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682799542; bh=tl+Qb3hhp3REer9N3xEUKijLqLT0EO8S4fPJFv0cnCc=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=T4fEmtH7L0C00QDJ9ff/jrDGP6ZC68+k1RnF+lRdQNQ+jSfotWu2ddtdjAOxHm8XR pbtsI9FOq3U7JT0XbVn0wEAIUR28AyoR0RyqyaZIGvHA+LIuT8A8tWqRIhCSdZZTIa +hQuYSbCEniQSFwV3S9EVq+3WUzZIrsHGhAnPmh0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by sourceware.org (Postfix) with ESMTPS id 5587A385842C for ; Sat, 29 Apr 2023 20:18:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5587A385842C Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-4efe8991b8aso1527529e87.0 for ; Sat, 29 Apr 2023 13:18:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682799508; x=1685391508; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tl+Qb3hhp3REer9N3xEUKijLqLT0EO8S4fPJFv0cnCc=; b=EHSBU+AGICDVK+vvtuoOytdUemigLh6eJ5drJvOT+HjXGBlSa7X6IExHJ93YiaVk1D QknstT0mYFIhe4tFecrrt+1PfLlQUKANnPzl8w2kt6xvcT8RQ+wCOaZLhnkamh6JZfg8 AFgO3MDWzKfnJORcw4+lmCDsCaWtokcByUe2gi9lY8VSvpWMIJF9K5ajRN+UCwBKG3id uBL2G8izzy2n2WE1OCJTWSbZkSiErEvCaSMfMspyifXkWb09gY3cYubvjKHjRkc2deqO euDeMaJ6DYbqF4pA31IROpp/XorUJYQTQ+ROtF/ZjanbjS0iwAsifrclV4sp5Dkd8X0u wyLA== X-Gm-Message-State: AC+VfDyS8f61luHdCfPgO9qbNpSEAcwttI1/dlqrGMGg6xpdzaTagnwn 97pGsswYC6Tn04KpL6/hhUbdc+Mnj4VVAg== X-Google-Smtp-Source: ACHHUZ7KZqDmhwWNp2c2iHyTEDLhZymKO1g1gT/biAMI/GRvjRQi8wpm0XJhWxV6qnum/nFw8edcfw== X-Received: by 2002:ac2:488e:0:b0:4e0:a426:6ddc with SMTP id x14-20020ac2488e000000b004e0a4266ddcmr2523095lfc.0.1682799507654; Sat, 29 Apr 2023 13:18:27 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:a7ac:6f45:1787:abcc]) by smtp.gmail.com with ESMTPSA id h25-20020ac250d9000000b004eb09820adbsm3905451lfm.105.2023.04.29.13.18.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Apr 2023 13:18:27 -0700 (PDT) To: libc-alpha@sourceware.org Cc: bug-hurd@gnu.org, Samuel Thibault Subject: [RFC PATCH v3 3/6] hurd: Replace reply port with a dead name on failed interruption Date: Sat, 29 Apr 2023 23:18:19 +0300 Message-Id: <20230429201822.2605207-4-bugaevc@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230429201822.2605207-1-bugaevc@gmail.com> References: <20230429201822.2605207-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Sergey Bugaev via Libc-alpha From: Sergey Bugaev Reply-To: Sergey Bugaev Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" If we're trying to interrupt an interruptible RPC, but the server fails to respond to our __interrupt_operation () call, we instead destroy the reply port we were expecting the reply to the RPC on. Instead of deallocating the name completely, replace it with a dead name, so the name won't get reused for some other right, and deallocate it in _hurd_intr_rpc_mach_msg once we return from the signal handler. Signed-off-by: Sergey Bugaev --- This is not required for x86_64, but probably a good idea anyway. I have checked that this does not fatally break things (this commit has been sitting in my tree, getting built along with the other changes, for quite some time without noticably breaking anything), but I have not run the full testsuite. Please do that on your end. hurd/hurdsig.c | 15 ++++++++++++--- hurd/intr-msg.c | 1 + sysdeps/mach/hurd/mig-reply.c | 25 +++++++------------------ 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index b3808f9e..78ea59d9 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -477,9 +477,18 @@ _hurdsig_abort_rpcs (struct hurd_sigstate *ss, int signo, int sigthread, if (reply) { /* The interrupt didn't work. - Destroy the receive right the thread is blocked on. */ - __mach_port_destroy (__mach_task_self (), *reply); - *reply = MACH_PORT_NULL; + Destroy the receive right the thread is blocked on, and + replace it with a dead name to keep the name from reuse until + the therad is done with it. To do this atomically, first + insert a send right, and then destroy the receive right, + turning the send right into a dead name. */ + err = __mach_port_insert_right (__mach_task_self (), + *reply, *reply, + MACH_MSG_TYPE_MAKE_SEND); + assert_perror (err); + err = __mach_port_mod_refs (__mach_task_self (), *reply, + MACH_PORT_RIGHT_RECEIVE, -1); + assert_perror (err); } /* The system call return value register now contains diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c index 1a086b51..716d87ab 100644 --- a/hurd/intr-msg.c +++ b/hurd/intr-msg.c @@ -305,6 +305,7 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg, { /* Make sure we have a valid reply port. The one we were using may have been destroyed by interruption. */ + __mig_dealloc_reply_port (rcv_name); m->header.msgh_local_port = rcv_name = __mig_get_reply_port (); m->header.msgh_bits = msgh_bits; option = user_option; diff --git a/sysdeps/mach/hurd/mig-reply.c b/sysdeps/mach/hurd/mig-reply.c index 3fdee80e..7ea001df 100644 --- a/sysdeps/mach/hurd/mig-reply.c +++ b/sysdeps/mach/hurd/mig-reply.c @@ -69,29 +69,18 @@ __mig_dealloc_reply_port (mach_port_t arg) mach_port_t port = get_reply_port (); set_reply_port (MACH_PORT_NULL); /* So the mod_refs RPC won't use it. */ - - /* Normally, ARG should be the same as PORT that we store. However, if a - signal has interrupted the RPC, the stored PORT has been deallocated and - reset to MACH_PORT_NULL (or possibly MACH_PORT_DEAD). In this case the - MIG routine still has the old name, which it passes to us here. We must - not deallocate (or otherwise touch) it, since it may be already allocated - to another port right. Fortunately MIG itself doesn't do anything with - the reply port on errors either, other than immediately calling this - function. - - And so: - 1. Assert that things are sane, i.e. and PORT is either invalid or same - as ARG. - 2. Only deallocate the name if our stored PORT still names it. In that - case we're sure the right has not been deallocated / the name reused. - */ - + assert (port == arg); if (!MACH_PORT_VALID (port)) return; - assert (port == arg); err = __mach_port_mod_refs (__mach_task_self (), port, MACH_PORT_RIGHT_RECEIVE, -1); + if (err == KERN_INVALID_RIGHT) + /* It could be that during signal handling, the receive right had been + replaced with a dead name. */ + err = __mach_port_mod_refs (__mach_task_self (), port, + MACH_PORT_RIGHT_DEAD_NAME, -1); + assert_perror (err); } weak_alias (__mig_dealloc_reply_port, mig_dealloc_reply_port) From patchwork Sat Apr 29 20:18:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 68555 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 41A873857016 for ; Sat, 29 Apr 2023 20:19:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 41A873857016 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682799561; bh=5mcxOlnT1DxgN9qBAdMtmYNuyDXpepwnt/zoiFEJxi4=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=mGaA5PvuqbPErVwTD1Hi5idEDOr59SKAr016ip7yiYQk/0cbJoODVZSXHtpAZ+huF bVo8dPyTy0ZP8shoF29afXVgcnVev0Yal02coCaCjYlsdX4C/ca5TtIbYb3uH6mFAK djR/jqyZyp/VbHri8oiU22QiJfnJIpKiBtJLMjjk= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) by sourceware.org (Postfix) with ESMTPS id 931273858417 for ; Sat, 29 Apr 2023 20:18:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 931273858417 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-4efe8991bafso1534914e87.0 for ; Sat, 29 Apr 2023 13:18:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682799510; x=1685391510; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5mcxOlnT1DxgN9qBAdMtmYNuyDXpepwnt/zoiFEJxi4=; b=aCsiHLTJ8R4w3g7T9DXGo2A02PFUwTo3Ep4p7suCmsF8nRn74E3vSPtUu8Drb52LTt M7iuIjEkLBKDz0yXSudllgHF0H/k1Q26/FNk7iCjyzHOCh4j9O44K3pF2wLek79Ue1fI Y5Am92plurbEI4EhzOZNmFGy2K7sQ/DrRY8FTsgboRjjX9IuIZkcnYjmg16VyRoA3wRa pgG84qqdD1hXnX5i/KefgIEPmGtpFcF5oBbgWK5nk2FmITk/Nj5WRDsBkABHJa3R87/N 9R7gj/3unD04BbvOlek4TKdThJgjd180VTbldRUFM/gxVOjDjmqufUR47VIfqqv3AHlw yRnw== X-Gm-Message-State: AC+VfDzRMNWWs/oD2f50kUAxyrxNJljrzMfaiY8o1Yu4Dtzcikldp587 HvidUpnLoAan2XDV+hF5AEk6GsgBMnFU+A== X-Google-Smtp-Source: ACHHUZ4DnZeM2fS9io/ry47iUaSYGQZsEHNeQZw+iJ5tX2PvQcqvlOu1oRjksZhJOreP+JhxV98WxA== X-Received: by 2002:ac2:5616:0:b0:4ee:d8f3:1398 with SMTP id v22-20020ac25616000000b004eed8f31398mr2335345lfd.68.1682799508896; Sat, 29 Apr 2023 13:18:28 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:a7ac:6f45:1787:abcc]) by smtp.gmail.com with ESMTPSA id h25-20020ac250d9000000b004eb09820adbsm3905451lfm.105.2023.04.29.13.18.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Apr 2023 13:18:28 -0700 (PDT) To: libc-alpha@sourceware.org Cc: bug-hurd@gnu.org, Samuel Thibault Subject: [PATCH v3 4/6] hurd: Add expected abilist files for x86_64 Date: Sat, 29 Apr 2023 23:18:20 +0300 Message-Id: <20230429201822.2605207-5-bugaevc@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230429201822.2605207-1-bugaevc@gmail.com> References: <20230429201822.2605207-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Sergey Bugaev via Libc-alpha From: Sergey Bugaev Reply-To: Sergey Bugaev Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" These were created by creating stub files, running 'make update-abi', and reviewing the results. Also, set baseline ABI to GLIBC_2.38, the (upcoming) first glibc release to first have x86_64-gnu support. Signed-off-by: Sergey Bugaev --- Changes compared to v2: - __pthread_self is now in libc.so, not libpthread.so (I'm still not sure why this move is being done, though) sysdeps/mach/hurd/x86_64/ld.abilist | 17 + .../mach/hurd/x86_64/libBrokenLocale.abilist | 1 + sysdeps/mach/hurd/x86_64/libc.abilist | 2121 +++++++++++++++++ .../hurd/x86_64/libc_malloc_debug.abilist | 26 + sysdeps/mach/hurd/x86_64/libcrypt.abilist | 2 + sysdeps/mach/hurd/x86_64/libdl.abilist | 0 sysdeps/mach/hurd/x86_64/libm.abilist | 1040 ++++++++ sysdeps/mach/hurd/x86_64/libmvec.abilist | 216 ++ sysdeps/mach/hurd/x86_64/libpthread.abilist | 175 ++ sysdeps/mach/hurd/x86_64/libresolv.abilist | 55 + sysdeps/mach/hurd/x86_64/librt.abilist | 33 + sysdeps/mach/hurd/x86_64/shlib-versions | 1 + 12 files changed, 3687 insertions(+) create mode 100644 sysdeps/mach/hurd/x86_64/ld.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libBrokenLocale.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libc.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libc_malloc_debug.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libcrypt.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libdl.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libm.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libmvec.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libpthread.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libresolv.abilist create mode 100644 sysdeps/mach/hurd/x86_64/librt.abilist create mode 100644 sysdeps/mach/hurd/x86_64/shlib-versions diff --git a/sysdeps/mach/hurd/x86_64/ld.abilist b/sysdeps/mach/hurd/x86_64/ld.abilist new file mode 100644 index 00000000..2297a5f3 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/ld.abilist @@ -0,0 +1,17 @@ +GLIBC_2.38 __close F +GLIBC_2.38 __errno_location F +GLIBC_2.38 __getpid F +GLIBC_2.38 __libc_stack_end D 0x8 +GLIBC_2.38 __mmap F +GLIBC_2.38 __open F +GLIBC_2.38 __open64 F +GLIBC_2.38 __pread64 F +GLIBC_2.38 __read F +GLIBC_2.38 __sbrk F +GLIBC_2.38 __tls_get_addr F +GLIBC_2.38 __write F +GLIBC_2.38 __writev F +GLIBC_2.38 _dl_mcount F +GLIBC_2.38 _hurd_intr_rpc_mach_msg F +GLIBC_2.38 _r_debug D 0x28 +GLIBC_2.38 abort F diff --git a/sysdeps/mach/hurd/x86_64/libBrokenLocale.abilist b/sysdeps/mach/hurd/x86_64/libBrokenLocale.abilist new file mode 100644 index 00000000..203836f5 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libBrokenLocale.abilist @@ -0,0 +1 @@ +GLIBC_2.38 __ctype_get_mb_cur_max F diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist new file mode 100644 index 00000000..cafdd8a0 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -0,0 +1,2121 @@ +GLIBC_2.38 _Exit F +GLIBC_2.38 _Fork F +GLIBC_2.38 _IO_2_1_stderr_ D 0xe0 +GLIBC_2.38 _IO_2_1_stdin_ D 0xe0 +GLIBC_2.38 _IO_2_1_stdout_ D 0xe0 +GLIBC_2.38 _IO_adjust_column F +GLIBC_2.38 _IO_adjust_wcolumn F +GLIBC_2.38 _IO_default_doallocate F +GLIBC_2.38 _IO_default_finish F +GLIBC_2.38 _IO_default_pbackfail F +GLIBC_2.38 _IO_default_uflow F +GLIBC_2.38 _IO_default_xsgetn F +GLIBC_2.38 _IO_default_xsputn F +GLIBC_2.38 _IO_do_write F +GLIBC_2.38 _IO_doallocbuf F +GLIBC_2.38 _IO_fclose F +GLIBC_2.38 _IO_fdopen F +GLIBC_2.38 _IO_feof F +GLIBC_2.38 _IO_ferror F +GLIBC_2.38 _IO_fflush F +GLIBC_2.38 _IO_fgetpos F +GLIBC_2.38 _IO_fgetpos64 F +GLIBC_2.38 _IO_fgets F +GLIBC_2.38 _IO_file_attach F +GLIBC_2.38 _IO_file_close F +GLIBC_2.38 _IO_file_close_it F +GLIBC_2.38 _IO_file_doallocate F +GLIBC_2.38 _IO_file_finish F +GLIBC_2.38 _IO_file_fopen F +GLIBC_2.38 _IO_file_init F +GLIBC_2.38 _IO_file_jumps D 0xa8 +GLIBC_2.38 _IO_file_open F +GLIBC_2.38 _IO_file_overflow F +GLIBC_2.38 _IO_file_read F +GLIBC_2.38 _IO_file_seek F +GLIBC_2.38 _IO_file_seekoff F +GLIBC_2.38 _IO_file_setbuf F +GLIBC_2.38 _IO_file_stat F +GLIBC_2.38 _IO_file_sync F +GLIBC_2.38 _IO_file_underflow F +GLIBC_2.38 _IO_file_write F +GLIBC_2.38 _IO_file_xsputn F +GLIBC_2.38 _IO_flockfile F +GLIBC_2.38 _IO_flush_all F +GLIBC_2.38 _IO_flush_all_linebuffered F +GLIBC_2.38 _IO_fopen F +GLIBC_2.38 _IO_fprintf F +GLIBC_2.38 _IO_fputs F +GLIBC_2.38 _IO_fread F +GLIBC_2.38 _IO_free_backup_area F +GLIBC_2.38 _IO_free_wbackup_area F +GLIBC_2.38 _IO_fsetpos F +GLIBC_2.38 _IO_fsetpos64 F +GLIBC_2.38 _IO_ftell F +GLIBC_2.38 _IO_ftrylockfile F +GLIBC_2.38 _IO_funlockfile F +GLIBC_2.38 _IO_fwrite F +GLIBC_2.38 _IO_getc F +GLIBC_2.38 _IO_getline F +GLIBC_2.38 _IO_getline_info F +GLIBC_2.38 _IO_gets F +GLIBC_2.38 _IO_init F +GLIBC_2.38 _IO_init_marker F +GLIBC_2.38 _IO_init_wmarker F +GLIBC_2.38 _IO_iter_begin F +GLIBC_2.38 _IO_iter_end F +GLIBC_2.38 _IO_iter_file F +GLIBC_2.38 _IO_iter_next F +GLIBC_2.38 _IO_least_wmarker F +GLIBC_2.38 _IO_link_in F +GLIBC_2.38 _IO_list_all D 0x8 +GLIBC_2.38 _IO_list_lock F +GLIBC_2.38 _IO_list_resetlock F +GLIBC_2.38 _IO_list_unlock F +GLIBC_2.38 _IO_marker_delta F +GLIBC_2.38 _IO_marker_difference F +GLIBC_2.38 _IO_padn F +GLIBC_2.38 _IO_peekc_locked F +GLIBC_2.38 _IO_popen F +GLIBC_2.38 _IO_printf F +GLIBC_2.38 _IO_proc_close F +GLIBC_2.38 _IO_proc_open F +GLIBC_2.38 _IO_putc F +GLIBC_2.38 _IO_puts F +GLIBC_2.38 _IO_remove_marker F +GLIBC_2.38 _IO_seekmark F +GLIBC_2.38 _IO_seekoff F +GLIBC_2.38 _IO_seekpos F +GLIBC_2.38 _IO_seekwmark F +GLIBC_2.38 _IO_setb F +GLIBC_2.38 _IO_setbuffer F +GLIBC_2.38 _IO_setvbuf F +GLIBC_2.38 _IO_sgetn F +GLIBC_2.38 _IO_sprintf F +GLIBC_2.38 _IO_sputbackc F +GLIBC_2.38 _IO_sputbackwc F +GLIBC_2.38 _IO_sscanf F +GLIBC_2.38 _IO_str_init_readonly F +GLIBC_2.38 _IO_str_init_static F +GLIBC_2.38 _IO_str_overflow F +GLIBC_2.38 _IO_str_pbackfail F +GLIBC_2.38 _IO_str_seekoff F +GLIBC_2.38 _IO_str_underflow F +GLIBC_2.38 _IO_sungetc F +GLIBC_2.38 _IO_sungetwc F +GLIBC_2.38 _IO_switch_to_get_mode F +GLIBC_2.38 _IO_switch_to_main_wget_area F +GLIBC_2.38 _IO_switch_to_wbackup_area F +GLIBC_2.38 _IO_switch_to_wget_mode F +GLIBC_2.38 _IO_un_link F +GLIBC_2.38 _IO_ungetc F +GLIBC_2.38 _IO_unsave_markers F +GLIBC_2.38 _IO_unsave_wmarkers F +GLIBC_2.38 _IO_vfprintf F +GLIBC_2.38 _IO_vsprintf F +GLIBC_2.38 _IO_wdefault_doallocate F +GLIBC_2.38 _IO_wdefault_finish F +GLIBC_2.38 _IO_wdefault_pbackfail F +GLIBC_2.38 _IO_wdefault_uflow F +GLIBC_2.38 _IO_wdefault_xsgetn F +GLIBC_2.38 _IO_wdefault_xsputn F +GLIBC_2.38 _IO_wdo_write F +GLIBC_2.38 _IO_wdoallocbuf F +GLIBC_2.38 _IO_wfile_jumps D 0xa8 +GLIBC_2.38 _IO_wfile_overflow F +GLIBC_2.38 _IO_wfile_seekoff F +GLIBC_2.38 _IO_wfile_sync F +GLIBC_2.38 _IO_wfile_underflow F +GLIBC_2.38 _IO_wfile_xsputn F +GLIBC_2.38 _IO_wmarker_delta F +GLIBC_2.38 _IO_wsetb F +GLIBC_2.38 _S_catch_exception_raise F +GLIBC_2.38 _S_msg_add_auth F +GLIBC_2.38 _S_msg_del_auth F +GLIBC_2.38 _S_msg_describe_ports F +GLIBC_2.38 _S_msg_get_dtable F +GLIBC_2.38 _S_msg_get_env_variable F +GLIBC_2.38 _S_msg_get_environment F +GLIBC_2.38 _S_msg_get_fd F +GLIBC_2.38 _S_msg_get_init_int F +GLIBC_2.38 _S_msg_get_init_ints F +GLIBC_2.38 _S_msg_get_init_port F +GLIBC_2.38 _S_msg_get_init_ports F +GLIBC_2.38 _S_msg_proc_newids F +GLIBC_2.38 _S_msg_report_wait F +GLIBC_2.38 _S_msg_set_dtable F +GLIBC_2.38 _S_msg_set_env_variable F +GLIBC_2.38 _S_msg_set_environment F +GLIBC_2.38 _S_msg_set_fd F +GLIBC_2.38 _S_msg_set_init_int F +GLIBC_2.38 _S_msg_set_init_ints F +GLIBC_2.38 _S_msg_set_init_port F +GLIBC_2.38 _S_msg_set_init_ports F +GLIBC_2.38 _S_msg_sig_post F +GLIBC_2.38 _S_msg_sig_post_untraced F +GLIBC_2.38 ___brk_addr D 0x8 +GLIBC_2.38 __argz_count F +GLIBC_2.38 __argz_next F +GLIBC_2.38 __argz_stringify F +GLIBC_2.38 __asprintf F +GLIBC_2.38 __asprintf_chk F +GLIBC_2.38 __assert F +GLIBC_2.38 __assert_fail F +GLIBC_2.38 __assert_perror_fail F +GLIBC_2.38 __backtrace F +GLIBC_2.38 __backtrace_symbols F +GLIBC_2.38 __backtrace_symbols_fd F +GLIBC_2.38 __bsd_getpgrp F +GLIBC_2.38 __bzero F +GLIBC_2.38 __check_rhosts_file D 0x4 +GLIBC_2.38 __chk_fail F +GLIBC_2.38 __close F +GLIBC_2.38 __cmsg_nxthdr F +GLIBC_2.38 __confstr_chk F +GLIBC_2.38 __connect F +GLIBC_2.38 __ctype_b_loc F +GLIBC_2.38 __ctype_get_mb_cur_max F +GLIBC_2.38 __ctype_tolower_loc F +GLIBC_2.38 __ctype_toupper_loc F +GLIBC_2.38 __cxa_at_quick_exit F +GLIBC_2.38 __cxa_atexit F +GLIBC_2.38 __cxa_finalize F +GLIBC_2.38 __cxa_thread_atexit_impl F +GLIBC_2.38 __cyg_profile_func_enter F +GLIBC_2.38 __cyg_profile_func_exit F +GLIBC_2.38 __daylight D 0x4 +GLIBC_2.38 __dcgettext F +GLIBC_2.38 __dgettext F +GLIBC_2.38 __dprintf_chk F +GLIBC_2.38 __dup2 F +GLIBC_2.38 __duplocale F +GLIBC_2.38 __environ D 0x8 +GLIBC_2.38 __errno_location F +GLIBC_2.38 __explicit_bzero_chk F +GLIBC_2.38 __fbufsize F +GLIBC_2.38 __fcntl F +GLIBC_2.38 __fdelt_chk F +GLIBC_2.38 __fdelt_warn F +GLIBC_2.38 __fentry__ F +GLIBC_2.38 __ffs F +GLIBC_2.38 __fgets_chk F +GLIBC_2.38 __fgets_unlocked_chk F +GLIBC_2.38 __fgetws_chk F +GLIBC_2.38 __fgetws_unlocked_chk F +GLIBC_2.38 __finite F +GLIBC_2.38 __finitef F +GLIBC_2.38 __finitel F +GLIBC_2.38 __flbf F +GLIBC_2.38 __fork F +GLIBC_2.38 __fpending F +GLIBC_2.38 __fprintf_chk F +GLIBC_2.38 __fpu_control D 0x2 +GLIBC_2.38 __fpurge F +GLIBC_2.38 __fread_chk F +GLIBC_2.38 __fread_unlocked_chk F +GLIBC_2.38 __freadable F +GLIBC_2.38 __freading F +GLIBC_2.38 __freelocale F +GLIBC_2.38 __fsetlocking F +GLIBC_2.38 __fwprintf_chk F +GLIBC_2.38 __fwritable F +GLIBC_2.38 __fwriting F +GLIBC_2.38 __getauxval F +GLIBC_2.38 __getcwd_chk F +GLIBC_2.38 __getdelim F +GLIBC_2.38 __getdomainname_chk F +GLIBC_2.38 __getgroups_chk F +GLIBC_2.38 __gethostname_chk F +GLIBC_2.38 __getlogin_r_chk F +GLIBC_2.38 __getpagesize F +GLIBC_2.38 __getpgid F +GLIBC_2.38 __getpid F +GLIBC_2.38 __gets_chk F +GLIBC_2.38 __gettimeofday F +GLIBC_2.38 __getwd_chk F +GLIBC_2.38 __gmtime_r F +GLIBC_2.38 __h_errno_location F +GLIBC_2.38 __hurd_dfail F +GLIBC_2.38 __hurd_fail F +GLIBC_2.38 __hurd_sockfail F +GLIBC_2.38 __isalnum_l F +GLIBC_2.38 __isalpha_l F +GLIBC_2.38 __isascii_l F +GLIBC_2.38 __isblank_l F +GLIBC_2.38 __iscntrl_l F +GLIBC_2.38 __isctype F +GLIBC_2.38 __isdigit_l F +GLIBC_2.38 __isgraph_l F +GLIBC_2.38 __isinf F +GLIBC_2.38 __isinff F +GLIBC_2.38 __isinfl F +GLIBC_2.38 __islower_l F +GLIBC_2.38 __isnan F +GLIBC_2.38 __isnanf F +GLIBC_2.38 __isnanf128 F +GLIBC_2.38 __isnanl F +GLIBC_2.38 __isoc23_fscanf F +GLIBC_2.38 __isoc23_fwscanf F +GLIBC_2.38 __isoc23_scanf F +GLIBC_2.38 __isoc23_sscanf F +GLIBC_2.38 __isoc23_strtoimax F +GLIBC_2.38 __isoc23_strtol F +GLIBC_2.38 __isoc23_strtol_l F +GLIBC_2.38 __isoc23_strtoll F +GLIBC_2.38 __isoc23_strtoll_l F +GLIBC_2.38 __isoc23_strtoul F +GLIBC_2.38 __isoc23_strtoul_l F +GLIBC_2.38 __isoc23_strtoull F +GLIBC_2.38 __isoc23_strtoull_l F +GLIBC_2.38 __isoc23_strtoumax F +GLIBC_2.38 __isoc23_swscanf F +GLIBC_2.38 __isoc23_vfscanf F +GLIBC_2.38 __isoc23_vfwscanf F +GLIBC_2.38 __isoc23_vscanf F +GLIBC_2.38 __isoc23_vsscanf F +GLIBC_2.38 __isoc23_vswscanf F +GLIBC_2.38 __isoc23_vwscanf F +GLIBC_2.38 __isoc23_wcstoimax F +GLIBC_2.38 __isoc23_wcstol F +GLIBC_2.38 __isoc23_wcstol_l F +GLIBC_2.38 __isoc23_wcstoll F +GLIBC_2.38 __isoc23_wcstoll_l F +GLIBC_2.38 __isoc23_wcstoul F +GLIBC_2.38 __isoc23_wcstoul_l F +GLIBC_2.38 __isoc23_wcstoull F +GLIBC_2.38 __isoc23_wcstoull_l F +GLIBC_2.38 __isoc23_wcstoumax F +GLIBC_2.38 __isoc23_wscanf F +GLIBC_2.38 __isoc99_fscanf F +GLIBC_2.38 __isoc99_fwscanf F +GLIBC_2.38 __isoc99_scanf F +GLIBC_2.38 __isoc99_sscanf F +GLIBC_2.38 __isoc99_swscanf F +GLIBC_2.38 __isoc99_vfscanf F +GLIBC_2.38 __isoc99_vfwscanf F +GLIBC_2.38 __isoc99_vscanf F +GLIBC_2.38 __isoc99_vsscanf F +GLIBC_2.38 __isoc99_vswscanf F +GLIBC_2.38 __isoc99_vwscanf F +GLIBC_2.38 __isoc99_wscanf F +GLIBC_2.38 __isprint_l F +GLIBC_2.38 __ispunct_l F +GLIBC_2.38 __isspace_l F +GLIBC_2.38 __isupper_l F +GLIBC_2.38 __iswalnum_l F +GLIBC_2.38 __iswalpha_l F +GLIBC_2.38 __iswblank_l F +GLIBC_2.38 __iswcntrl_l F +GLIBC_2.38 __iswctype F +GLIBC_2.38 __iswctype_l F +GLIBC_2.38 __iswdigit_l F +GLIBC_2.38 __iswgraph_l F +GLIBC_2.38 __iswlower_l F +GLIBC_2.38 __iswprint_l F +GLIBC_2.38 __iswpunct_l F +GLIBC_2.38 __iswspace_l F +GLIBC_2.38 __iswupper_l F +GLIBC_2.38 __iswxdigit_l F +GLIBC_2.38 __isxdigit_l F +GLIBC_2.38 __libc_allocate_rtsig F +GLIBC_2.38 __libc_calloc F +GLIBC_2.38 __libc_current_sigrtmax F +GLIBC_2.38 __libc_current_sigrtmin F +GLIBC_2.38 __libc_free F +GLIBC_2.38 __libc_freeres F +GLIBC_2.38 __libc_init_first F +GLIBC_2.38 __libc_mallinfo F +GLIBC_2.38 __libc_malloc F +GLIBC_2.38 __libc_mallopt F +GLIBC_2.38 __libc_memalign F +GLIBC_2.38 __libc_pvalloc F +GLIBC_2.38 __libc_realloc F +GLIBC_2.38 __libc_single_threaded D 0x1 +GLIBC_2.38 __libc_start_main F +GLIBC_2.38 __libc_valloc F +GLIBC_2.38 __longjmp_chk F +GLIBC_2.38 __lseek F +GLIBC_2.38 __mach_host_self_ D 0x4 +GLIBC_2.38 __mach_msg F +GLIBC_2.38 __mach_msg_destroy F +GLIBC_2.38 __mach_port_allocate F +GLIBC_2.38 __mach_port_deallocate F +GLIBC_2.38 __mach_port_insert_right F +GLIBC_2.38 __mach_reply_port F +GLIBC_2.38 __mach_task_self_ D 0x4 +GLIBC_2.38 __mach_thread_self F +GLIBC_2.38 __mbrlen F +GLIBC_2.38 __mbrtowc F +GLIBC_2.38 __mbsnrtowcs_chk F +GLIBC_2.38 __mbsrtowcs_chk F +GLIBC_2.38 __mbstowcs_chk F +GLIBC_2.38 __memcmpeq F +GLIBC_2.38 __memcpy_chk F +GLIBC_2.38 __memmove_chk F +GLIBC_2.38 __mempcpy F +GLIBC_2.38 __mempcpy_chk F +GLIBC_2.38 __memset_chk F +GLIBC_2.38 __mig_allocate F +GLIBC_2.38 __mig_dealloc_reply_port F +GLIBC_2.38 __mig_deallocate F +GLIBC_2.38 __mig_get_reply_port F +GLIBC_2.38 __mig_init F +GLIBC_2.38 __mig_put_reply_port F +GLIBC_2.38 __mig_strncpy F +GLIBC_2.38 __mmap F +GLIBC_2.38 __monstartup F +GLIBC_2.38 __nanosleep F +GLIBC_2.38 __newlocale F +GLIBC_2.38 __nl_langinfo_l F +GLIBC_2.38 __nss_configure_lookup F +GLIBC_2.38 __nss_hostname_digits_dots F +GLIBC_2.38 __obstack_printf_chk F +GLIBC_2.38 __obstack_vprintf_chk F +GLIBC_2.38 __open F +GLIBC_2.38 __open64 F +GLIBC_2.38 __open64_2 F +GLIBC_2.38 __open_2 F +GLIBC_2.38 __openat64_2 F +GLIBC_2.38 __openat_2 F +GLIBC_2.38 __overflow F +GLIBC_2.38 __pipe F +GLIBC_2.38 __poll F +GLIBC_2.38 __poll_chk F +GLIBC_2.38 __posix_getopt F +GLIBC_2.38 __ppoll_chk F +GLIBC_2.38 __pread64 F +GLIBC_2.38 __pread64_chk F +GLIBC_2.38 __pread_chk F +GLIBC_2.38 __printf_chk F +GLIBC_2.38 __printf_fp F +GLIBC_2.38 __profile_frequency F +GLIBC_2.38 __progname D 0x8 +GLIBC_2.38 __progname_full D 0x8 +GLIBC_2.38 __pthread_get_cleanup_stack F +GLIBC_2.38 __pthread_self F +GLIBC_2.38 __ptsname_r_chk F +GLIBC_2.38 __pwrite64 F +GLIBC_2.38 __rawmemchr F +GLIBC_2.38 __rcmd_errstr D 0x8 +GLIBC_2.38 __read F +GLIBC_2.38 __read_chk F +GLIBC_2.38 __readlink_chk F +GLIBC_2.38 __readlinkat_chk F +GLIBC_2.38 __realpath_chk F +GLIBC_2.38 __recv_chk F +GLIBC_2.38 __recvfrom_chk F +GLIBC_2.38 __register_atfork F +GLIBC_2.38 __res_init F +GLIBC_2.38 __res_nclose F +GLIBC_2.38 __res_ninit F +GLIBC_2.38 __res_randomid F +GLIBC_2.38 __res_state F +GLIBC_2.38 __sbrk F +GLIBC_2.38 __sched_cpualloc F +GLIBC_2.38 __sched_cpucount F +GLIBC_2.38 __sched_cpufree F +GLIBC_2.38 __sched_get_priority_max F +GLIBC_2.38 __sched_get_priority_min F +GLIBC_2.38 __sched_getparam F +GLIBC_2.38 __sched_getscheduler F +GLIBC_2.38 __sched_setscheduler F +GLIBC_2.38 __sched_yield F +GLIBC_2.38 __select F +GLIBC_2.38 __send F +GLIBC_2.38 __setpgid F +GLIBC_2.38 __sigaction F +GLIBC_2.38 __signbit F +GLIBC_2.38 __signbitf F +GLIBC_2.38 __signbitl F +GLIBC_2.38 __sigpause F +GLIBC_2.38 __sigsetjmp F +GLIBC_2.38 __sigsuspend F +GLIBC_2.38 __snprintf_chk F +GLIBC_2.38 __sprintf_chk F +GLIBC_2.38 __stack_chk_fail F +GLIBC_2.38 __stpcpy F +GLIBC_2.38 __stpcpy_chk F +GLIBC_2.38 __stpncpy F +GLIBC_2.38 __stpncpy_chk F +GLIBC_2.38 __strcasecmp F +GLIBC_2.38 __strcasecmp_l F +GLIBC_2.38 __strcasestr F +GLIBC_2.38 __strcat_chk F +GLIBC_2.38 __strcoll_l F +GLIBC_2.38 __strcpy_chk F +GLIBC_2.38 __strdup F +GLIBC_2.38 __strerror_r F +GLIBC_2.38 __strfmon_l F +GLIBC_2.38 __strftime_l F +GLIBC_2.38 __strncasecmp_l F +GLIBC_2.38 __strncat_chk F +GLIBC_2.38 __strncpy_chk F +GLIBC_2.38 __strndup F +GLIBC_2.38 __strsep_g F +GLIBC_2.38 __strtod_internal F +GLIBC_2.38 __strtod_l F +GLIBC_2.38 __strtof128_internal F +GLIBC_2.38 __strtof_internal F +GLIBC_2.38 __strtof_l F +GLIBC_2.38 __strtok_r F +GLIBC_2.38 __strtol_internal F +GLIBC_2.38 __strtol_l F +GLIBC_2.38 __strtold_internal F +GLIBC_2.38 __strtold_l F +GLIBC_2.38 __strtoll_internal F +GLIBC_2.38 __strtoll_l F +GLIBC_2.38 __strtoul_internal F +GLIBC_2.38 __strtoul_l F +GLIBC_2.38 __strtoull_internal F +GLIBC_2.38 __strtoull_l F +GLIBC_2.38 __strverscmp F +GLIBC_2.38 __strxfrm_l F +GLIBC_2.38 __swprintf_chk F +GLIBC_2.38 __sysconf F +GLIBC_2.38 __syslog_chk F +GLIBC_2.38 __sysv_signal F +GLIBC_2.38 __timezone D 0x8 +GLIBC_2.38 __toascii_l F +GLIBC_2.38 __tolower_l F +GLIBC_2.38 __toupper_l F +GLIBC_2.38 __towctrans F +GLIBC_2.38 __towctrans_l F +GLIBC_2.38 __towlower_l F +GLIBC_2.38 __towupper_l F +GLIBC_2.38 __ttyname_r_chk F +GLIBC_2.38 __tzname D 0x10 +GLIBC_2.38 __uflow F +GLIBC_2.38 __underflow F +GLIBC_2.38 __uselocale F +GLIBC_2.38 __vasprintf_chk F +GLIBC_2.38 __vdprintf_chk F +GLIBC_2.38 __vfork F +GLIBC_2.38 __vfprintf_chk F +GLIBC_2.38 __vfscanf F +GLIBC_2.38 __vfwprintf_chk F +GLIBC_2.38 __vm_allocate F +GLIBC_2.38 __vm_deallocate F +GLIBC_2.38 __vm_page_size D 0x8 +GLIBC_2.38 __vprintf_chk F +GLIBC_2.38 __vsnprintf F +GLIBC_2.38 __vsnprintf_chk F +GLIBC_2.38 __vsprintf_chk F +GLIBC_2.38 __vsscanf F +GLIBC_2.38 __vswprintf_chk F +GLIBC_2.38 __vsyslog_chk F +GLIBC_2.38 __vwprintf_chk F +GLIBC_2.38 __wait F +GLIBC_2.38 __waitpid F +GLIBC_2.38 __wcpcpy_chk F +GLIBC_2.38 __wcpncpy_chk F +GLIBC_2.38 __wcrtomb_chk F +GLIBC_2.38 __wcscasecmp_l F +GLIBC_2.38 __wcscat_chk F +GLIBC_2.38 __wcscoll_l F +GLIBC_2.38 __wcscpy_chk F +GLIBC_2.38 __wcsftime_l F +GLIBC_2.38 __wcsncasecmp_l F +GLIBC_2.38 __wcsncat_chk F +GLIBC_2.38 __wcsncpy_chk F +GLIBC_2.38 __wcsnrtombs_chk F +GLIBC_2.38 __wcsrtombs_chk F +GLIBC_2.38 __wcstod_internal F +GLIBC_2.38 __wcstod_l F +GLIBC_2.38 __wcstof128_internal F +GLIBC_2.38 __wcstof_internal F +GLIBC_2.38 __wcstof_l F +GLIBC_2.38 __wcstol_internal F +GLIBC_2.38 __wcstol_l F +GLIBC_2.38 __wcstold_internal F +GLIBC_2.38 __wcstold_l F +GLIBC_2.38 __wcstoll_internal F +GLIBC_2.38 __wcstoll_l F +GLIBC_2.38 __wcstombs_chk F +GLIBC_2.38 __wcstoul_internal F +GLIBC_2.38 __wcstoul_l F +GLIBC_2.38 __wcstoull_internal F +GLIBC_2.38 __wcstoull_l F +GLIBC_2.38 __wcsxfrm_l F +GLIBC_2.38 __wctomb_chk F +GLIBC_2.38 __wctrans_l F +GLIBC_2.38 __wctype_l F +GLIBC_2.38 __wmemcpy_chk F +GLIBC_2.38 __wmemmove_chk F +GLIBC_2.38 __wmempcpy_chk F +GLIBC_2.38 __wmemset_chk F +GLIBC_2.38 __woverflow F +GLIBC_2.38 __wprintf_chk F +GLIBC_2.38 __write F +GLIBC_2.38 __writev F +GLIBC_2.38 __wuflow F +GLIBC_2.38 __wunderflow F +GLIBC_2.38 __x86_get_cpuid_feature_leaf F +GLIBC_2.38 __xpg_basename F +GLIBC_2.38 __xpg_sigpause F +GLIBC_2.38 __xpg_strerror_r F +GLIBC_2.38 _dl_find_object F +GLIBC_2.38 _dl_mcount_wrapper F +GLIBC_2.38 _dl_mcount_wrapper_check F +GLIBC_2.38 _environ D 0x8 +GLIBC_2.38 _exit F +GLIBC_2.38 _flushlbf F +GLIBC_2.38 _hurd_canonicalize_directory_name_internal F +GLIBC_2.38 _hurd_critical_section_lock F +GLIBC_2.38 _hurd_critical_section_unlock F +GLIBC_2.38 _hurd_device_master D 0x4 +GLIBC_2.38 _hurd_dtable D 0x8 +GLIBC_2.38 _hurd_dtable_lock D 0x28 +GLIBC_2.38 _hurd_dtablesize D 0x4 +GLIBC_2.38 _hurd_exception2signal F +GLIBC_2.38 _hurd_exec F +GLIBC_2.38 _hurd_exec_paths F +GLIBC_2.38 _hurd_fd_error F +GLIBC_2.38 _hurd_fd_error_signal F +GLIBC_2.38 _hurd_fd_get F +GLIBC_2.38 _hurd_host_priv D 0x4 +GLIBC_2.38 _hurd_init F +GLIBC_2.38 _hurd_intern_fd F +GLIBC_2.38 _hurd_intr_rpc_mach_msg F +GLIBC_2.38 _hurd_libc_proc_init F +GLIBC_2.38 _hurd_msgport D 0x4 +GLIBC_2.38 _hurd_port_cleanup F +GLIBC_2.38 _hurd_port_free F +GLIBC_2.38 _hurd_port_get F +GLIBC_2.38 _hurd_port_init F +GLIBC_2.38 _hurd_port_locked_get F +GLIBC_2.38 _hurd_port_locked_set F +GLIBC_2.38 _hurd_port_move F +GLIBC_2.38 _hurd_port_set F +GLIBC_2.38 _hurd_ports D 0x8 +GLIBC_2.38 _hurd_ports_use F +GLIBC_2.38 _hurd_proc_init F +GLIBC_2.38 _hurd_raise_signal F +GLIBC_2.38 _hurd_self_sigstate F +GLIBC_2.38 _hurd_thread_sigstate F +GLIBC_2.38 _hurd_userlink_clear F +GLIBC_2.38 _hurd_userlink_link F +GLIBC_2.38 _hurd_userlink_unlink F +GLIBC_2.38 _hurdsig_fault_catch_exception_raise F +GLIBC_2.38 _hurdsig_fault_env D 0x50 +GLIBC_2.38 _hurdsig_fault_preemptor D 0x30 +GLIBC_2.38 _hurdsig_interrupt_timeout D 0x4 +GLIBC_2.38 _libc_intl_domainname D 0x5 +GLIBC_2.38 _longjmp F +GLIBC_2.38 _mcleanup F +GLIBC_2.38 _mcount F +GLIBC_2.38 _nl_default_dirname D 0xe +GLIBC_2.38 _nl_domain_bindings D 0x8 +GLIBC_2.38 _nl_msg_cat_cntr D 0x4 +GLIBC_2.38 _obstack_allocated_p F +GLIBC_2.38 _obstack_begin F +GLIBC_2.38 _obstack_begin_1 F +GLIBC_2.38 _obstack_free F +GLIBC_2.38 _obstack_memory_used F +GLIBC_2.38 _obstack_newchunk F +GLIBC_2.38 _res D 0x238 +GLIBC_2.38 _res_hconf D 0x48 +GLIBC_2.38 _setjmp F +GLIBC_2.38 _tolower F +GLIBC_2.38 _toupper F +GLIBC_2.38 a64l F +GLIBC_2.38 abort F +GLIBC_2.38 abs F +GLIBC_2.38 accept F +GLIBC_2.38 accept4 F +GLIBC_2.38 access F +GLIBC_2.38 acct F +GLIBC_2.38 addmntent F +GLIBC_2.38 addseverity F +GLIBC_2.38 adjtime F +GLIBC_2.38 alarm F +GLIBC_2.38 aligned_alloc F +GLIBC_2.38 alphasort F +GLIBC_2.38 alphasort64 F +GLIBC_2.38 arc4random F +GLIBC_2.38 arc4random_buf F +GLIBC_2.38 arc4random_uniform F +GLIBC_2.38 argp_err_exit_status D 0x4 +GLIBC_2.38 argp_error F +GLIBC_2.38 argp_failure F +GLIBC_2.38 argp_help F +GLIBC_2.38 argp_parse F +GLIBC_2.38 argp_program_bug_address D 0x8 +GLIBC_2.38 argp_program_version D 0x8 +GLIBC_2.38 argp_program_version_hook D 0x8 +GLIBC_2.38 argp_state_help F +GLIBC_2.38 argp_usage F +GLIBC_2.38 argz_add F +GLIBC_2.38 argz_add_sep F +GLIBC_2.38 argz_append F +GLIBC_2.38 argz_count F +GLIBC_2.38 argz_create F +GLIBC_2.38 argz_create_sep F +GLIBC_2.38 argz_delete F +GLIBC_2.38 argz_extract F +GLIBC_2.38 argz_insert F +GLIBC_2.38 argz_next F +GLIBC_2.38 argz_replace F +GLIBC_2.38 argz_stringify F +GLIBC_2.38 asctime F +GLIBC_2.38 asctime_r F +GLIBC_2.38 asprintf F +GLIBC_2.38 atof F +GLIBC_2.38 atoi F +GLIBC_2.38 atol F +GLIBC_2.38 atoll F +GLIBC_2.38 backtrace F +GLIBC_2.38 backtrace_symbols F +GLIBC_2.38 backtrace_symbols_fd F +GLIBC_2.38 basename F +GLIBC_2.38 bcmp F +GLIBC_2.38 bcopy F +GLIBC_2.38 bind F +GLIBC_2.38 bind_textdomain_codeset F +GLIBC_2.38 bindresvport F +GLIBC_2.38 bindtextdomain F +GLIBC_2.38 brk F +GLIBC_2.38 bsd_signal F +GLIBC_2.38 bsearch F +GLIBC_2.38 btowc F +GLIBC_2.38 bzero F +GLIBC_2.38 c16rtomb F +GLIBC_2.38 c32rtomb F +GLIBC_2.38 c8rtomb F +GLIBC_2.38 calloc F +GLIBC_2.38 canonicalize_file_name F +GLIBC_2.38 catclose F +GLIBC_2.38 catgets F +GLIBC_2.38 catopen F +GLIBC_2.38 cfgetispeed F +GLIBC_2.38 cfgetospeed F +GLIBC_2.38 cfmakeraw F +GLIBC_2.38 cfsetispeed F +GLIBC_2.38 cfsetospeed F +GLIBC_2.38 cfsetspeed F +GLIBC_2.38 chdir F +GLIBC_2.38 chflags F +GLIBC_2.38 chmod F +GLIBC_2.38 chown F +GLIBC_2.38 chroot F +GLIBC_2.38 clearenv F +GLIBC_2.38 clearerr F +GLIBC_2.38 clearerr_unlocked F +GLIBC_2.38 clock F +GLIBC_2.38 clock_getcpuclockid F +GLIBC_2.38 clock_getres F +GLIBC_2.38 clock_gettime F +GLIBC_2.38 clock_nanosleep F +GLIBC_2.38 clock_settime F +GLIBC_2.38 close F +GLIBC_2.38 close_range F +GLIBC_2.38 closedir F +GLIBC_2.38 closefrom F +GLIBC_2.38 closelog F +GLIBC_2.38 confstr F +GLIBC_2.38 connect F +GLIBC_2.38 copy_file_range F +GLIBC_2.38 copysign F +GLIBC_2.38 copysignf F +GLIBC_2.38 copysignl F +GLIBC_2.38 creat F +GLIBC_2.38 creat64 F +GLIBC_2.38 ctermid F +GLIBC_2.38 ctime F +GLIBC_2.38 ctime_r F +GLIBC_2.38 cuserid F +GLIBC_2.38 daemon F +GLIBC_2.38 daylight D 0x4 +GLIBC_2.38 dcgettext F +GLIBC_2.38 dcngettext F +GLIBC_2.38 dgettext F +GLIBC_2.38 difftime F +GLIBC_2.38 directory_name_split F +GLIBC_2.38 dirfd F +GLIBC_2.38 dirname F +GLIBC_2.38 div F +GLIBC_2.38 dl_iterate_phdr F +GLIBC_2.38 dladdr F +GLIBC_2.38 dladdr1 F +GLIBC_2.38 dlclose F +GLIBC_2.38 dlerror F +GLIBC_2.38 dlinfo F +GLIBC_2.38 dlmopen F +GLIBC_2.38 dlopen F +GLIBC_2.38 dlsym F +GLIBC_2.38 dlvsym F +GLIBC_2.38 dn_comp F +GLIBC_2.38 dn_expand F +GLIBC_2.38 dn_skipname F +GLIBC_2.38 dngettext F +GLIBC_2.38 dprintf F +GLIBC_2.38 drand48 F +GLIBC_2.38 drand48_r F +GLIBC_2.38 dup F +GLIBC_2.38 dup2 F +GLIBC_2.38 dup3 F +GLIBC_2.38 duplocale F +GLIBC_2.38 dysize F +GLIBC_2.38 eaccess F +GLIBC_2.38 ecvt F +GLIBC_2.38 ecvt_r F +GLIBC_2.38 endaliasent F +GLIBC_2.38 endfsent F +GLIBC_2.38 endgrent F +GLIBC_2.38 endhostent F +GLIBC_2.38 endmntent F +GLIBC_2.38 endnetent F +GLIBC_2.38 endnetgrent F +GLIBC_2.38 endprotoent F +GLIBC_2.38 endpwent F +GLIBC_2.38 endrpcent F +GLIBC_2.38 endservent F +GLIBC_2.38 endsgent F +GLIBC_2.38 endspent F +GLIBC_2.38 endttyent F +GLIBC_2.38 endusershell F +GLIBC_2.38 endutent F +GLIBC_2.38 endutxent F +GLIBC_2.38 environ D 0x8 +GLIBC_2.38 envz_add F +GLIBC_2.38 envz_entry F +GLIBC_2.38 envz_get F +GLIBC_2.38 envz_merge F +GLIBC_2.38 envz_remove F +GLIBC_2.38 envz_strip F +GLIBC_2.38 erand48 F +GLIBC_2.38 erand48_r F +GLIBC_2.38 err F +GLIBC_2.38 error F +GLIBC_2.38 error_at_line F +GLIBC_2.38 error_message_count D 0x4 +GLIBC_2.38 error_one_per_line D 0x4 +GLIBC_2.38 error_print_progname D 0x8 +GLIBC_2.38 errx F +GLIBC_2.38 ether_aton F +GLIBC_2.38 ether_aton_r F +GLIBC_2.38 ether_hostton F +GLIBC_2.38 ether_line F +GLIBC_2.38 ether_ntoa F +GLIBC_2.38 ether_ntoa_r F +GLIBC_2.38 ether_ntohost F +GLIBC_2.38 euidaccess F +GLIBC_2.38 evc_wait F +GLIBC_2.38 execl F +GLIBC_2.38 execle F +GLIBC_2.38 execlp F +GLIBC_2.38 execv F +GLIBC_2.38 execve F +GLIBC_2.38 execveat F +GLIBC_2.38 execvp F +GLIBC_2.38 execvpe F +GLIBC_2.38 exit F +GLIBC_2.38 explicit_bzero F +GLIBC_2.38 faccessat F +GLIBC_2.38 fchdir F +GLIBC_2.38 fchflags F +GLIBC_2.38 fchmod F +GLIBC_2.38 fchmodat F +GLIBC_2.38 fchown F +GLIBC_2.38 fchownat F +GLIBC_2.38 fclose F +GLIBC_2.38 fcloseall F +GLIBC_2.38 fcntl F +GLIBC_2.38 fcntl64 F +GLIBC_2.38 fcvt F +GLIBC_2.38 fcvt_r F +GLIBC_2.38 fdatasync F +GLIBC_2.38 fdopen F +GLIBC_2.38 fdopendir F +GLIBC_2.38 feof F +GLIBC_2.38 feof_unlocked F +GLIBC_2.38 ferror F +GLIBC_2.38 ferror_unlocked F +GLIBC_2.38 fexecve F +GLIBC_2.38 fflush F +GLIBC_2.38 fflush_unlocked F +GLIBC_2.38 ffs F +GLIBC_2.38 ffsl F +GLIBC_2.38 ffsll F +GLIBC_2.38 fgetc F +GLIBC_2.38 fgetc_unlocked F +GLIBC_2.38 fgetgrent F +GLIBC_2.38 fgetgrent_r F +GLIBC_2.38 fgetpos F +GLIBC_2.38 fgetpos64 F +GLIBC_2.38 fgetpwent F +GLIBC_2.38 fgetpwent_r F +GLIBC_2.38 fgets F +GLIBC_2.38 fgets_unlocked F +GLIBC_2.38 fgetsgent F +GLIBC_2.38 fgetsgent_r F +GLIBC_2.38 fgetspent F +GLIBC_2.38 fgetspent_r F +GLIBC_2.38 fgetwc F +GLIBC_2.38 fgetwc_unlocked F +GLIBC_2.38 fgetws F +GLIBC_2.38 fgetws_unlocked F +GLIBC_2.38 fgetxattr F +GLIBC_2.38 file_name_lookup F +GLIBC_2.38 file_name_lookup_under F +GLIBC_2.38 file_name_path_lookup F +GLIBC_2.38 file_name_split F +GLIBC_2.38 fileno F +GLIBC_2.38 fileno_unlocked F +GLIBC_2.38 finite F +GLIBC_2.38 finitef F +GLIBC_2.38 finitel F +GLIBC_2.38 flistxattr F +GLIBC_2.38 flock F +GLIBC_2.38 flockfile F +GLIBC_2.38 fmemopen F +GLIBC_2.38 fmtmsg F +GLIBC_2.38 fnmatch F +GLIBC_2.38 fopen F +GLIBC_2.38 fopen64 F +GLIBC_2.38 fopencookie F +GLIBC_2.38 fopenport F +GLIBC_2.38 fork F +GLIBC_2.38 forkpty F +GLIBC_2.38 fpathconf F +GLIBC_2.38 fprintf F +GLIBC_2.38 fputc F +GLIBC_2.38 fputc_unlocked F +GLIBC_2.38 fputs F +GLIBC_2.38 fputs_unlocked F +GLIBC_2.38 fputwc F +GLIBC_2.38 fputwc_unlocked F +GLIBC_2.38 fputws F +GLIBC_2.38 fputws_unlocked F +GLIBC_2.38 fread F +GLIBC_2.38 fread_unlocked F +GLIBC_2.38 free F +GLIBC_2.38 freeaddrinfo F +GLIBC_2.38 freeifaddrs F +GLIBC_2.38 freelocale F +GLIBC_2.38 fremovexattr F +GLIBC_2.38 freopen F +GLIBC_2.38 freopen64 F +GLIBC_2.38 frexp F +GLIBC_2.38 frexpf F +GLIBC_2.38 frexpl F +GLIBC_2.38 fscanf F +GLIBC_2.38 fseek F +GLIBC_2.38 fseeko F +GLIBC_2.38 fseeko64 F +GLIBC_2.38 fsetpos F +GLIBC_2.38 fsetpos64 F +GLIBC_2.38 fsetxattr F +GLIBC_2.38 fstat F +GLIBC_2.38 fstat64 F +GLIBC_2.38 fstatat F +GLIBC_2.38 fstatat64 F +GLIBC_2.38 fstatfs F +GLIBC_2.38 fstatfs64 F +GLIBC_2.38 fstatvfs F +GLIBC_2.38 fstatvfs64 F +GLIBC_2.38 fsync F +GLIBC_2.38 ftell F +GLIBC_2.38 ftello F +GLIBC_2.38 ftello64 F +GLIBC_2.38 ftime F +GLIBC_2.38 ftok F +GLIBC_2.38 ftruncate F +GLIBC_2.38 ftruncate64 F +GLIBC_2.38 ftrylockfile F +GLIBC_2.38 fts64_children F +GLIBC_2.38 fts64_close F +GLIBC_2.38 fts64_open F +GLIBC_2.38 fts64_read F +GLIBC_2.38 fts64_set F +GLIBC_2.38 fts_children F +GLIBC_2.38 fts_close F +GLIBC_2.38 fts_open F +GLIBC_2.38 fts_read F +GLIBC_2.38 fts_set F +GLIBC_2.38 ftw F +GLIBC_2.38 ftw64 F +GLIBC_2.38 funlockfile F +GLIBC_2.38 futimens F +GLIBC_2.38 futimes F +GLIBC_2.38 futimesat F +GLIBC_2.38 fwide F +GLIBC_2.38 fwprintf F +GLIBC_2.38 fwrite F +GLIBC_2.38 fwrite_unlocked F +GLIBC_2.38 fwscanf F +GLIBC_2.38 gai_strerror F +GLIBC_2.38 gcvt F +GLIBC_2.38 get_avphys_pages F +GLIBC_2.38 get_current_dir_name F +GLIBC_2.38 get_nprocs F +GLIBC_2.38 get_nprocs_conf F +GLIBC_2.38 get_phys_pages F +GLIBC_2.38 get_privileged_ports F +GLIBC_2.38 getaddrinfo F +GLIBC_2.38 getaliasbyname F +GLIBC_2.38 getaliasbyname_r F +GLIBC_2.38 getaliasent F +GLIBC_2.38 getaliasent_r F +GLIBC_2.38 getauth F +GLIBC_2.38 getauxval F +GLIBC_2.38 getc F +GLIBC_2.38 getc_unlocked F +GLIBC_2.38 getchar F +GLIBC_2.38 getchar_unlocked F +GLIBC_2.38 getcontext F +GLIBC_2.38 getcrdir F +GLIBC_2.38 getcttyid F +GLIBC_2.38 getcwd F +GLIBC_2.38 getcwdir F +GLIBC_2.38 getdate F +GLIBC_2.38 getdate_err D 0x4 +GLIBC_2.38 getdate_r F +GLIBC_2.38 getdelim F +GLIBC_2.38 getdirentries F +GLIBC_2.38 getdirentries64 F +GLIBC_2.38 getdomainname F +GLIBC_2.38 getdport F +GLIBC_2.38 getdtablesize F +GLIBC_2.38 getegid F +GLIBC_2.38 getentropy F +GLIBC_2.38 getenv F +GLIBC_2.38 geteuid F +GLIBC_2.38 geteuids F +GLIBC_2.38 getfsent F +GLIBC_2.38 getfsfile F +GLIBC_2.38 getfsspec F +GLIBC_2.38 getgid F +GLIBC_2.38 getgrent F +GLIBC_2.38 getgrent_r F +GLIBC_2.38 getgrgid F +GLIBC_2.38 getgrgid_r F +GLIBC_2.38 getgrnam F +GLIBC_2.38 getgrnam_r F +GLIBC_2.38 getgrouplist F +GLIBC_2.38 getgroups F +GLIBC_2.38 gethostbyaddr F +GLIBC_2.38 gethostbyaddr_r F +GLIBC_2.38 gethostbyname F +GLIBC_2.38 gethostbyname2 F +GLIBC_2.38 gethostbyname2_r F +GLIBC_2.38 gethostbyname_r F +GLIBC_2.38 gethostent F +GLIBC_2.38 gethostent_r F +GLIBC_2.38 gethostid F +GLIBC_2.38 gethostname F +GLIBC_2.38 getifaddrs F +GLIBC_2.38 getipv4sourcefilter F +GLIBC_2.38 getitimer F +GLIBC_2.38 getline F +GLIBC_2.38 getloadavg F +GLIBC_2.38 getlogin F +GLIBC_2.38 getlogin_r F +GLIBC_2.38 getmntent F +GLIBC_2.38 getmntent_r F +GLIBC_2.38 getnameinfo F +GLIBC_2.38 getnetbyaddr F +GLIBC_2.38 getnetbyaddr_r F +GLIBC_2.38 getnetbyname F +GLIBC_2.38 getnetbyname_r F +GLIBC_2.38 getnetent F +GLIBC_2.38 getnetent_r F +GLIBC_2.38 getnetgrent F +GLIBC_2.38 getnetgrent_r F +GLIBC_2.38 getopt F +GLIBC_2.38 getopt_long F +GLIBC_2.38 getopt_long_only F +GLIBC_2.38 getpagesize F +GLIBC_2.38 getpass F +GLIBC_2.38 getpeername F +GLIBC_2.38 getpgid F +GLIBC_2.38 getpgrp F +GLIBC_2.38 getpid F +GLIBC_2.38 getppid F +GLIBC_2.38 getpriority F +GLIBC_2.38 getproc F +GLIBC_2.38 getprotobyname F +GLIBC_2.38 getprotobyname_r F +GLIBC_2.38 getprotobynumber F +GLIBC_2.38 getprotobynumber_r F +GLIBC_2.38 getprotoent F +GLIBC_2.38 getprotoent_r F +GLIBC_2.38 getpt F +GLIBC_2.38 getpw F +GLIBC_2.38 getpwent F +GLIBC_2.38 getpwent_r F +GLIBC_2.38 getpwnam F +GLIBC_2.38 getpwnam_r F +GLIBC_2.38 getpwuid F +GLIBC_2.38 getpwuid_r F +GLIBC_2.38 getrandom F +GLIBC_2.38 getresgid F +GLIBC_2.38 getresuid F +GLIBC_2.38 getrlimit F +GLIBC_2.38 getrlimit64 F +GLIBC_2.38 getrpcbyname F +GLIBC_2.38 getrpcbyname_r F +GLIBC_2.38 getrpcbynumber F +GLIBC_2.38 getrpcbynumber_r F +GLIBC_2.38 getrpcent F +GLIBC_2.38 getrpcent_r F +GLIBC_2.38 getrusage F +GLIBC_2.38 gets F +GLIBC_2.38 getservbyname F +GLIBC_2.38 getservbyname_r F +GLIBC_2.38 getservbyport F +GLIBC_2.38 getservbyport_r F +GLIBC_2.38 getservent F +GLIBC_2.38 getservent_r F +GLIBC_2.38 getsgent F +GLIBC_2.38 getsgent_r F +GLIBC_2.38 getsgnam F +GLIBC_2.38 getsgnam_r F +GLIBC_2.38 getsid F +GLIBC_2.38 getsockname F +GLIBC_2.38 getsockopt F +GLIBC_2.38 getsourcefilter F +GLIBC_2.38 getspent F +GLIBC_2.38 getspent_r F +GLIBC_2.38 getspnam F +GLIBC_2.38 getspnam_r F +GLIBC_2.38 getsubopt F +GLIBC_2.38 gettext F +GLIBC_2.38 gettimeofday F +GLIBC_2.38 getttyent F +GLIBC_2.38 getttynam F +GLIBC_2.38 getuid F +GLIBC_2.38 getumask F +GLIBC_2.38 getusershell F +GLIBC_2.38 getutent F +GLIBC_2.38 getutent_r F +GLIBC_2.38 getutid F +GLIBC_2.38 getutid_r F +GLIBC_2.38 getutline F +GLIBC_2.38 getutline_r F +GLIBC_2.38 getutmp F +GLIBC_2.38 getutmpx F +GLIBC_2.38 getutxent F +GLIBC_2.38 getutxid F +GLIBC_2.38 getutxline F +GLIBC_2.38 getw F +GLIBC_2.38 getwc F +GLIBC_2.38 getwc_unlocked F +GLIBC_2.38 getwchar F +GLIBC_2.38 getwchar_unlocked F +GLIBC_2.38 getwd F +GLIBC_2.38 getxattr F +GLIBC_2.38 glob F +GLIBC_2.38 glob64 F +GLIBC_2.38 glob_pattern_p F +GLIBC_2.38 globfree F +GLIBC_2.38 globfree64 F +GLIBC_2.38 gmtime F +GLIBC_2.38 gmtime_r F +GLIBC_2.38 gnu_dev_major F +GLIBC_2.38 gnu_dev_makedev F +GLIBC_2.38 gnu_dev_minor F +GLIBC_2.38 gnu_get_libc_release F +GLIBC_2.38 gnu_get_libc_version F +GLIBC_2.38 grantpt F +GLIBC_2.38 group_member F +GLIBC_2.38 gsignal F +GLIBC_2.38 gtty F +GLIBC_2.38 h_errlist D 0x28 +GLIBC_2.38 h_nerr D 0x4 +GLIBC_2.38 hasmntopt F +GLIBC_2.38 hcreate F +GLIBC_2.38 hcreate_r F +GLIBC_2.38 hdestroy F +GLIBC_2.38 hdestroy_r F +GLIBC_2.38 herror F +GLIBC_2.38 hsearch F +GLIBC_2.38 hsearch_r F +GLIBC_2.38 hstrerror F +GLIBC_2.38 htonl F +GLIBC_2.38 htons F +GLIBC_2.38 hurd_catch_signal F +GLIBC_2.38 hurd_check_cancel F +GLIBC_2.38 hurd_directory_name_split F +GLIBC_2.38 hurd_file_name_lookup F +GLIBC_2.38 hurd_file_name_lookup_retry F +GLIBC_2.38 hurd_file_name_path_lookup F +GLIBC_2.38 hurd_file_name_split F +GLIBC_2.38 hurd_preempt_signals F +GLIBC_2.38 hurd_safe_copyin F +GLIBC_2.38 hurd_safe_copyout F +GLIBC_2.38 hurd_safe_memmove F +GLIBC_2.38 hurd_safe_memset F +GLIBC_2.38 hurd_sig_post F +GLIBC_2.38 hurd_thread_cancel F +GLIBC_2.38 hurd_thread_self F +GLIBC_2.38 hurd_unpreempt_signals F +GLIBC_2.38 iconv F +GLIBC_2.38 iconv_close F +GLIBC_2.38 iconv_open F +GLIBC_2.38 if_freenameindex F +GLIBC_2.38 if_indextoname F +GLIBC_2.38 if_nameindex F +GLIBC_2.38 if_nametoindex F +GLIBC_2.38 imaxabs F +GLIBC_2.38 imaxdiv F +GLIBC_2.38 in6addr_any D 0x10 +GLIBC_2.38 in6addr_loopback D 0x10 +GLIBC_2.38 index F +GLIBC_2.38 inet6_opt_append F +GLIBC_2.38 inet6_opt_find F +GLIBC_2.38 inet6_opt_finish F +GLIBC_2.38 inet6_opt_get_val F +GLIBC_2.38 inet6_opt_init F +GLIBC_2.38 inet6_opt_next F +GLIBC_2.38 inet6_opt_set_val F +GLIBC_2.38 inet6_option_alloc F +GLIBC_2.38 inet6_option_append F +GLIBC_2.38 inet6_option_find F +GLIBC_2.38 inet6_option_init F +GLIBC_2.38 inet6_option_next F +GLIBC_2.38 inet6_option_space F +GLIBC_2.38 inet6_rth_add F +GLIBC_2.38 inet6_rth_getaddr F +GLIBC_2.38 inet6_rth_init F +GLIBC_2.38 inet6_rth_reverse F +GLIBC_2.38 inet6_rth_segments F +GLIBC_2.38 inet6_rth_space F +GLIBC_2.38 inet_addr F +GLIBC_2.38 inet_aton F +GLIBC_2.38 inet_lnaof F +GLIBC_2.38 inet_makeaddr F +GLIBC_2.38 inet_netof F +GLIBC_2.38 inet_network F +GLIBC_2.38 inet_nsap_addr F +GLIBC_2.38 inet_nsap_ntoa F +GLIBC_2.38 inet_ntoa F +GLIBC_2.38 inet_ntop F +GLIBC_2.38 inet_pton F +GLIBC_2.38 initgroups F +GLIBC_2.38 initstate F +GLIBC_2.38 initstate_r F +GLIBC_2.38 innetgr F +GLIBC_2.38 insque F +GLIBC_2.38 ioctl F +GLIBC_2.38 iruserok F +GLIBC_2.38 iruserok_af F +GLIBC_2.38 isalnum F +GLIBC_2.38 isalnum_l F +GLIBC_2.38 isalpha F +GLIBC_2.38 isalpha_l F +GLIBC_2.38 isascii F +GLIBC_2.38 isatty F +GLIBC_2.38 isblank F +GLIBC_2.38 isblank_l F +GLIBC_2.38 iscntrl F +GLIBC_2.38 iscntrl_l F +GLIBC_2.38 isctype F +GLIBC_2.38 isdigit F +GLIBC_2.38 isdigit_l F +GLIBC_2.38 isfdtype F +GLIBC_2.38 isgraph F +GLIBC_2.38 isgraph_l F +GLIBC_2.38 isinf F +GLIBC_2.38 isinff F +GLIBC_2.38 isinfl F +GLIBC_2.38 islower F +GLIBC_2.38 islower_l F +GLIBC_2.38 isnan F +GLIBC_2.38 isnanf F +GLIBC_2.38 isnanl F +GLIBC_2.38 isprint F +GLIBC_2.38 isprint_l F +GLIBC_2.38 ispunct F +GLIBC_2.38 ispunct_l F +GLIBC_2.38 isspace F +GLIBC_2.38 isspace_l F +GLIBC_2.38 isupper F +GLIBC_2.38 isupper_l F +GLIBC_2.38 iswalnum F +GLIBC_2.38 iswalnum_l F +GLIBC_2.38 iswalpha F +GLIBC_2.38 iswalpha_l F +GLIBC_2.38 iswblank F +GLIBC_2.38 iswblank_l F +GLIBC_2.38 iswcntrl F +GLIBC_2.38 iswcntrl_l F +GLIBC_2.38 iswctype F +GLIBC_2.38 iswctype_l F +GLIBC_2.38 iswdigit F +GLIBC_2.38 iswdigit_l F +GLIBC_2.38 iswgraph F +GLIBC_2.38 iswgraph_l F +GLIBC_2.38 iswlower F +GLIBC_2.38 iswlower_l F +GLIBC_2.38 iswprint F +GLIBC_2.38 iswprint_l F +GLIBC_2.38 iswpunct F +GLIBC_2.38 iswpunct_l F +GLIBC_2.38 iswspace F +GLIBC_2.38 iswspace_l F +GLIBC_2.38 iswupper F +GLIBC_2.38 iswupper_l F +GLIBC_2.38 iswxdigit F +GLIBC_2.38 iswxdigit_l F +GLIBC_2.38 isxdigit F +GLIBC_2.38 isxdigit_l F +GLIBC_2.38 jrand48 F +GLIBC_2.38 jrand48_r F +GLIBC_2.38 kill F +GLIBC_2.38 killpg F +GLIBC_2.38 l64a F +GLIBC_2.38 labs F +GLIBC_2.38 lchmod F +GLIBC_2.38 lchown F +GLIBC_2.38 lckpwdf F +GLIBC_2.38 lcong48 F +GLIBC_2.38 lcong48_r F +GLIBC_2.38 ldexp F +GLIBC_2.38 ldexpf F +GLIBC_2.38 ldexpl F +GLIBC_2.38 ldiv F +GLIBC_2.38 lfind F +GLIBC_2.38 lgetxattr F +GLIBC_2.38 link F +GLIBC_2.38 linkat F +GLIBC_2.38 listen F +GLIBC_2.38 listxattr F +GLIBC_2.38 llabs F +GLIBC_2.38 lldiv F +GLIBC_2.38 llistxattr F +GLIBC_2.38 localeconv F +GLIBC_2.38 localtime F +GLIBC_2.38 localtime_r F +GLIBC_2.38 lockf F +GLIBC_2.38 lockf64 F +GLIBC_2.38 login F +GLIBC_2.38 login_tty F +GLIBC_2.38 logout F +GLIBC_2.38 logwtmp F +GLIBC_2.38 longjmp F +GLIBC_2.38 lrand48 F +GLIBC_2.38 lrand48_r F +GLIBC_2.38 lremovexattr F +GLIBC_2.38 lsearch F +GLIBC_2.38 lseek F +GLIBC_2.38 lseek64 F +GLIBC_2.38 lsetxattr F +GLIBC_2.38 lstat F +GLIBC_2.38 lstat64 F +GLIBC_2.38 lutimes F +GLIBC_2.38 mach_error F +GLIBC_2.38 mach_error_string F +GLIBC_2.38 mach_error_type F +GLIBC_2.38 mach_host_self F +GLIBC_2.38 mach_msg F +GLIBC_2.38 mach_msg_destroy F +GLIBC_2.38 mach_msg_receive F +GLIBC_2.38 mach_msg_send F +GLIBC_2.38 mach_msg_server F +GLIBC_2.38 mach_msg_server_timeout F +GLIBC_2.38 mach_open_devstream F +GLIBC_2.38 mach_port_allocate F +GLIBC_2.38 mach_port_allocate_name F +GLIBC_2.38 mach_port_deallocate F +GLIBC_2.38 mach_port_insert_right F +GLIBC_2.38 mach_print F +GLIBC_2.38 mach_reply_port F +GLIBC_2.38 mach_setup_thread F +GLIBC_2.38 mach_setup_tls F +GLIBC_2.38 mach_task_self F +GLIBC_2.38 mach_thread_self F +GLIBC_2.38 madvise F +GLIBC_2.38 makecontext F +GLIBC_2.38 mallinfo F +GLIBC_2.38 mallinfo2 F +GLIBC_2.38 malloc F +GLIBC_2.38 malloc_info F +GLIBC_2.38 malloc_stats F +GLIBC_2.38 malloc_trim F +GLIBC_2.38 malloc_usable_size F +GLIBC_2.38 mallopt F +GLIBC_2.38 mblen F +GLIBC_2.38 mbrlen F +GLIBC_2.38 mbrtoc16 F +GLIBC_2.38 mbrtoc32 F +GLIBC_2.38 mbrtoc8 F +GLIBC_2.38 mbrtowc F +GLIBC_2.38 mbsinit F +GLIBC_2.38 mbsnrtowcs F +GLIBC_2.38 mbsrtowcs F +GLIBC_2.38 mbstowcs F +GLIBC_2.38 mbtowc F +GLIBC_2.38 mcheck F +GLIBC_2.38 mcheck_check_all F +GLIBC_2.38 mcheck_pedantic F +GLIBC_2.38 mcount F +GLIBC_2.38 memalign F +GLIBC_2.38 memccpy F +GLIBC_2.38 memchr F +GLIBC_2.38 memcmp F +GLIBC_2.38 memcpy F +GLIBC_2.38 memfrob F +GLIBC_2.38 memmem F +GLIBC_2.38 memmove F +GLIBC_2.38 mempcpy F +GLIBC_2.38 memrchr F +GLIBC_2.38 memset F +GLIBC_2.38 mig_allocate F +GLIBC_2.38 mig_dealloc_reply_port F +GLIBC_2.38 mig_deallocate F +GLIBC_2.38 mig_get_reply_port F +GLIBC_2.38 mig_init F +GLIBC_2.38 mig_put_reply_port F +GLIBC_2.38 mig_strncpy F +GLIBC_2.38 mincore F +GLIBC_2.38 mkdir F +GLIBC_2.38 mkdirat F +GLIBC_2.38 mkdtemp F +GLIBC_2.38 mkfifo F +GLIBC_2.38 mkfifoat F +GLIBC_2.38 mknod F +GLIBC_2.38 mknodat F +GLIBC_2.38 mkostemp F +GLIBC_2.38 mkostemp64 F +GLIBC_2.38 mkostemps F +GLIBC_2.38 mkostemps64 F +GLIBC_2.38 mkstemp F +GLIBC_2.38 mkstemp64 F +GLIBC_2.38 mkstemps F +GLIBC_2.38 mkstemps64 F +GLIBC_2.38 mktemp F +GLIBC_2.38 mktime F +GLIBC_2.38 mlock F +GLIBC_2.38 mlockall F +GLIBC_2.38 mmap F +GLIBC_2.38 mmap64 F +GLIBC_2.38 modf F +GLIBC_2.38 modff F +GLIBC_2.38 modfl F +GLIBC_2.38 moncontrol F +GLIBC_2.38 monstartup F +GLIBC_2.38 mprobe F +GLIBC_2.38 mprotect F +GLIBC_2.38 mrand48 F +GLIBC_2.38 mrand48_r F +GLIBC_2.38 mremap F +GLIBC_2.38 msgctl F +GLIBC_2.38 msgget F +GLIBC_2.38 msgrcv F +GLIBC_2.38 msgsnd F +GLIBC_2.38 msync F +GLIBC_2.38 mtrace F +GLIBC_2.38 munlock F +GLIBC_2.38 munlockall F +GLIBC_2.38 munmap F +GLIBC_2.38 muntrace F +GLIBC_2.38 nanosleep F +GLIBC_2.38 newlocale F +GLIBC_2.38 nftw F +GLIBC_2.38 nftw64 F +GLIBC_2.38 ngettext F +GLIBC_2.38 nice F +GLIBC_2.38 nl_langinfo F +GLIBC_2.38 nl_langinfo_l F +GLIBC_2.38 nrand48 F +GLIBC_2.38 nrand48_r F +GLIBC_2.38 ns_name_compress F +GLIBC_2.38 ns_name_ntop F +GLIBC_2.38 ns_name_pack F +GLIBC_2.38 ns_name_pton F +GLIBC_2.38 ns_name_skip F +GLIBC_2.38 ns_name_uncompress F +GLIBC_2.38 ns_name_unpack F +GLIBC_2.38 ntohl F +GLIBC_2.38 ntohs F +GLIBC_2.38 obstack_alloc_failed_handler D 0x8 +GLIBC_2.38 obstack_exit_failure D 0x4 +GLIBC_2.38 obstack_free F +GLIBC_2.38 obstack_printf F +GLIBC_2.38 obstack_vprintf F +GLIBC_2.38 on_exit F +GLIBC_2.38 open F +GLIBC_2.38 open64 F +GLIBC_2.38 open_memstream F +GLIBC_2.38 open_wmemstream F +GLIBC_2.38 openat F +GLIBC_2.38 openat64 F +GLIBC_2.38 opendir F +GLIBC_2.38 openlog F +GLIBC_2.38 openport F +GLIBC_2.38 openpty F +GLIBC_2.38 optarg D 0x8 +GLIBC_2.38 opterr D 0x4 +GLIBC_2.38 optind D 0x4 +GLIBC_2.38 optopt D 0x4 +GLIBC_2.38 parse_printf_format F +GLIBC_2.38 pathconf F +GLIBC_2.38 pause F +GLIBC_2.38 pclose F +GLIBC_2.38 perror F +GLIBC_2.38 pid2task F +GLIBC_2.38 pipe F +GLIBC_2.38 pipe2 F +GLIBC_2.38 poll F +GLIBC_2.38 popen F +GLIBC_2.38 posix_fadvise F +GLIBC_2.38 posix_fadvise64 F +GLIBC_2.38 posix_fallocate F +GLIBC_2.38 posix_fallocate64 F +GLIBC_2.38 posix_madvise F +GLIBC_2.38 posix_memalign F +GLIBC_2.38 posix_openpt F +GLIBC_2.38 posix_spawn F +GLIBC_2.38 posix_spawn_file_actions_addchdir_np F +GLIBC_2.38 posix_spawn_file_actions_addclose F +GLIBC_2.38 posix_spawn_file_actions_addclosefrom_np F +GLIBC_2.38 posix_spawn_file_actions_adddup2 F +GLIBC_2.38 posix_spawn_file_actions_addfchdir_np F +GLIBC_2.38 posix_spawn_file_actions_addopen F +GLIBC_2.38 posix_spawn_file_actions_addtcsetpgrp_np F +GLIBC_2.38 posix_spawn_file_actions_destroy F +GLIBC_2.38 posix_spawn_file_actions_init F +GLIBC_2.38 posix_spawnattr_destroy F +GLIBC_2.38 posix_spawnattr_getflags F +GLIBC_2.38 posix_spawnattr_getpgroup F +GLIBC_2.38 posix_spawnattr_getschedparam F +GLIBC_2.38 posix_spawnattr_getschedpolicy F +GLIBC_2.38 posix_spawnattr_getsigdefault F +GLIBC_2.38 posix_spawnattr_getsigmask F +GLIBC_2.38 posix_spawnattr_init F +GLIBC_2.38 posix_spawnattr_setflags F +GLIBC_2.38 posix_spawnattr_setpgroup F +GLIBC_2.38 posix_spawnattr_setschedparam F +GLIBC_2.38 posix_spawnattr_setschedpolicy F +GLIBC_2.38 posix_spawnattr_setsigdefault F +GLIBC_2.38 posix_spawnattr_setsigmask F +GLIBC_2.38 posix_spawnp F +GLIBC_2.38 ppoll F +GLIBC_2.38 pread F +GLIBC_2.38 pread64 F +GLIBC_2.38 preadv F +GLIBC_2.38 preadv2 F +GLIBC_2.38 preadv64 F +GLIBC_2.38 preadv64v2 F +GLIBC_2.38 printf F +GLIBC_2.38 printf_size F +GLIBC_2.38 printf_size_info F +GLIBC_2.38 profil F +GLIBC_2.38 program_invocation_name D 0x8 +GLIBC_2.38 program_invocation_short_name D 0x8 +GLIBC_2.38 pselect F +GLIBC_2.38 psiginfo F +GLIBC_2.38 psignal F +GLIBC_2.38 pthread_attr_destroy F +GLIBC_2.38 pthread_attr_getdetachstate F +GLIBC_2.38 pthread_attr_getinheritsched F +GLIBC_2.38 pthread_attr_getschedparam F +GLIBC_2.38 pthread_attr_getschedpolicy F +GLIBC_2.38 pthread_attr_getscope F +GLIBC_2.38 pthread_attr_init F +GLIBC_2.38 pthread_attr_setdetachstate F +GLIBC_2.38 pthread_attr_setinheritsched F +GLIBC_2.38 pthread_attr_setschedparam F +GLIBC_2.38 pthread_attr_setschedpolicy F +GLIBC_2.38 pthread_attr_setscope F +GLIBC_2.38 pthread_cond_broadcast F +GLIBC_2.38 pthread_cond_destroy F +GLIBC_2.38 pthread_cond_init F +GLIBC_2.38 pthread_cond_signal F +GLIBC_2.38 pthread_cond_timedwait F +GLIBC_2.38 pthread_cond_wait F +GLIBC_2.38 pthread_condattr_destroy F +GLIBC_2.38 pthread_condattr_init F +GLIBC_2.38 pthread_equal F +GLIBC_2.38 pthread_exit F +GLIBC_2.38 pthread_getschedparam F +GLIBC_2.38 pthread_mutex_destroy F +GLIBC_2.38 pthread_mutex_init F +GLIBC_2.38 pthread_mutex_lock F +GLIBC_2.38 pthread_mutex_unlock F +GLIBC_2.38 pthread_self F +GLIBC_2.38 pthread_setcancelstate F +GLIBC_2.38 pthread_setcanceltype F +GLIBC_2.38 pthread_setschedparam F +GLIBC_2.38 ptrace F +GLIBC_2.38 ptsname F +GLIBC_2.38 ptsname_r F +GLIBC_2.38 putc F +GLIBC_2.38 putc_unlocked F +GLIBC_2.38 putchar F +GLIBC_2.38 putchar_unlocked F +GLIBC_2.38 putenv F +GLIBC_2.38 putgrent F +GLIBC_2.38 putpwent F +GLIBC_2.38 puts F +GLIBC_2.38 putsgent F +GLIBC_2.38 putspent F +GLIBC_2.38 pututline F +GLIBC_2.38 pututxline F +GLIBC_2.38 putw F +GLIBC_2.38 putwc F +GLIBC_2.38 putwc_unlocked F +GLIBC_2.38 putwchar F +GLIBC_2.38 putwchar_unlocked F +GLIBC_2.38 pvalloc F +GLIBC_2.38 pwrite F +GLIBC_2.38 pwrite64 F +GLIBC_2.38 pwritev F +GLIBC_2.38 pwritev2 F +GLIBC_2.38 pwritev64 F +GLIBC_2.38 pwritev64v2 F +GLIBC_2.38 qecvt F +GLIBC_2.38 qecvt_r F +GLIBC_2.38 qfcvt F +GLIBC_2.38 qfcvt_r F +GLIBC_2.38 qgcvt F +GLIBC_2.38 qsort F +GLIBC_2.38 qsort_r F +GLIBC_2.38 quick_exit F +GLIBC_2.38 raise F +GLIBC_2.38 rand F +GLIBC_2.38 rand_r F +GLIBC_2.38 random F +GLIBC_2.38 random_r F +GLIBC_2.38 rawmemchr F +GLIBC_2.38 rcmd F +GLIBC_2.38 rcmd_af F +GLIBC_2.38 re_comp F +GLIBC_2.38 re_compile_fastmap F +GLIBC_2.38 re_compile_pattern F +GLIBC_2.38 re_exec F +GLIBC_2.38 re_match F +GLIBC_2.38 re_match_2 F +GLIBC_2.38 re_search F +GLIBC_2.38 re_search_2 F +GLIBC_2.38 re_set_registers F +GLIBC_2.38 re_set_syntax F +GLIBC_2.38 re_syntax_options D 0x8 +GLIBC_2.38 read F +GLIBC_2.38 readdir F +GLIBC_2.38 readdir64 F +GLIBC_2.38 readdir64_r F +GLIBC_2.38 readdir_r F +GLIBC_2.38 readlink F +GLIBC_2.38 readlinkat F +GLIBC_2.38 readv F +GLIBC_2.38 realloc F +GLIBC_2.38 reallocarray F +GLIBC_2.38 realpath F +GLIBC_2.38 reboot F +GLIBC_2.38 recv F +GLIBC_2.38 recvfrom F +GLIBC_2.38 recvmmsg F +GLIBC_2.38 recvmsg F +GLIBC_2.38 regcomp F +GLIBC_2.38 regerror F +GLIBC_2.38 regexec F +GLIBC_2.38 regfree F +GLIBC_2.38 register_printf_function F +GLIBC_2.38 register_printf_modifier F +GLIBC_2.38 register_printf_specifier F +GLIBC_2.38 register_printf_type F +GLIBC_2.38 remap_file_pages F +GLIBC_2.38 remove F +GLIBC_2.38 removexattr F +GLIBC_2.38 remque F +GLIBC_2.38 rename F +GLIBC_2.38 renameat F +GLIBC_2.38 renameat2 F +GLIBC_2.38 res_dnok F +GLIBC_2.38 res_hnok F +GLIBC_2.38 res_mailok F +GLIBC_2.38 res_mkquery F +GLIBC_2.38 res_nmkquery F +GLIBC_2.38 res_nquery F +GLIBC_2.38 res_nquerydomain F +GLIBC_2.38 res_nsearch F +GLIBC_2.38 res_nsend F +GLIBC_2.38 res_ownok F +GLIBC_2.38 res_query F +GLIBC_2.38 res_querydomain F +GLIBC_2.38 res_search F +GLIBC_2.38 res_send F +GLIBC_2.38 revoke F +GLIBC_2.38 rewind F +GLIBC_2.38 rewinddir F +GLIBC_2.38 rexec F +GLIBC_2.38 rexec_af F +GLIBC_2.38 rexecoptions D 0x4 +GLIBC_2.38 rindex F +GLIBC_2.38 rmdir F +GLIBC_2.38 rpmatch F +GLIBC_2.38 rresvport F +GLIBC_2.38 rresvport_af F +GLIBC_2.38 ruserok F +GLIBC_2.38 ruserok_af F +GLIBC_2.38 ruserpass F +GLIBC_2.38 sbrk F +GLIBC_2.38 scalbn F +GLIBC_2.38 scalbnf F +GLIBC_2.38 scalbnl F +GLIBC_2.38 scandir F +GLIBC_2.38 scandir64 F +GLIBC_2.38 scandirat F +GLIBC_2.38 scandirat64 F +GLIBC_2.38 scanf F +GLIBC_2.38 sched_get_priority_max F +GLIBC_2.38 sched_get_priority_min F +GLIBC_2.38 sched_getaffinity F +GLIBC_2.38 sched_getparam F +GLIBC_2.38 sched_getscheduler F +GLIBC_2.38 sched_rr_get_interval F +GLIBC_2.38 sched_setaffinity F +GLIBC_2.38 sched_setparam F +GLIBC_2.38 sched_setscheduler F +GLIBC_2.38 sched_yield F +GLIBC_2.38 secure_getenv F +GLIBC_2.38 seed48 F +GLIBC_2.38 seed48_r F +GLIBC_2.38 seekdir F +GLIBC_2.38 select F +GLIBC_2.38 semctl F +GLIBC_2.38 semget F +GLIBC_2.38 semop F +GLIBC_2.38 semtimedop F +GLIBC_2.38 send F +GLIBC_2.38 sendfile F +GLIBC_2.38 sendfile64 F +GLIBC_2.38 sendmmsg F +GLIBC_2.38 sendmsg F +GLIBC_2.38 sendto F +GLIBC_2.38 setaliasent F +GLIBC_2.38 setauth F +GLIBC_2.38 setbuf F +GLIBC_2.38 setbuffer F +GLIBC_2.38 setcontext F +GLIBC_2.38 setcrdir F +GLIBC_2.38 setcttyid F +GLIBC_2.38 setcwdir F +GLIBC_2.38 setdomainname F +GLIBC_2.38 setegid F +GLIBC_2.38 setenv F +GLIBC_2.38 seteuid F +GLIBC_2.38 seteuids F +GLIBC_2.38 setfsent F +GLIBC_2.38 setgid F +GLIBC_2.38 setgrent F +GLIBC_2.38 setgroups F +GLIBC_2.38 sethostent F +GLIBC_2.38 sethostid F +GLIBC_2.38 sethostname F +GLIBC_2.38 setipv4sourcefilter F +GLIBC_2.38 setitimer F +GLIBC_2.38 setjmp F +GLIBC_2.38 setlinebuf F +GLIBC_2.38 setlocale F +GLIBC_2.38 setlogin F +GLIBC_2.38 setlogmask F +GLIBC_2.38 setmntent F +GLIBC_2.38 setnetent F +GLIBC_2.38 setnetgrent F +GLIBC_2.38 setpgid F +GLIBC_2.38 setpgrp F +GLIBC_2.38 setpriority F +GLIBC_2.38 setproc F +GLIBC_2.38 setprotoent F +GLIBC_2.38 setpwent F +GLIBC_2.38 setregid F +GLIBC_2.38 setresgid F +GLIBC_2.38 setresuid F +GLIBC_2.38 setreuid F +GLIBC_2.38 setrlimit F +GLIBC_2.38 setrlimit64 F +GLIBC_2.38 setrpcent F +GLIBC_2.38 setservent F +GLIBC_2.38 setsgent F +GLIBC_2.38 setsid F +GLIBC_2.38 setsockopt F +GLIBC_2.38 setsourcefilter F +GLIBC_2.38 setspent F +GLIBC_2.38 setstate F +GLIBC_2.38 setstate_r F +GLIBC_2.38 settimeofday F +GLIBC_2.38 setttyent F +GLIBC_2.38 setuid F +GLIBC_2.38 setusershell F +GLIBC_2.38 setutent F +GLIBC_2.38 setutxent F +GLIBC_2.38 setvbuf F +GLIBC_2.38 setxattr F +GLIBC_2.38 sgetsgent F +GLIBC_2.38 sgetsgent_r F +GLIBC_2.38 sgetspent F +GLIBC_2.38 sgetspent_r F +GLIBC_2.38 shm_open F +GLIBC_2.38 shm_unlink F +GLIBC_2.38 shmat F +GLIBC_2.38 shmctl F +GLIBC_2.38 shmdt F +GLIBC_2.38 shmget F +GLIBC_2.38 shutdown F +GLIBC_2.38 sigabbrev_np F +GLIBC_2.38 sigaction F +GLIBC_2.38 sigaddset F +GLIBC_2.38 sigaltstack F +GLIBC_2.38 sigandset F +GLIBC_2.38 sigblock F +GLIBC_2.38 sigdelset F +GLIBC_2.38 sigdescr_np F +GLIBC_2.38 sigemptyset F +GLIBC_2.38 sigfillset F +GLIBC_2.38 siggetmask F +GLIBC_2.38 sighold F +GLIBC_2.38 sigignore F +GLIBC_2.38 siginterrupt F +GLIBC_2.38 sigisemptyset F +GLIBC_2.38 sigismember F +GLIBC_2.38 siglongjmp F +GLIBC_2.38 signal F +GLIBC_2.38 sigorset F +GLIBC_2.38 sigpause F +GLIBC_2.38 sigpending F +GLIBC_2.38 sigprocmask F +GLIBC_2.38 sigqueue F +GLIBC_2.38 sigrelse F +GLIBC_2.38 sigreturn F +GLIBC_2.38 sigset F +GLIBC_2.38 sigsetmask F +GLIBC_2.38 sigstack F +GLIBC_2.38 sigsuspend F +GLIBC_2.38 sigtimedwait F +GLIBC_2.38 sigwait F +GLIBC_2.38 sigwaitinfo F +GLIBC_2.38 sleep F +GLIBC_2.38 snprintf F +GLIBC_2.38 sockatmark F +GLIBC_2.38 socket F +GLIBC_2.38 socketpair F +GLIBC_2.38 sprintf F +GLIBC_2.38 sprofil F +GLIBC_2.38 srand F +GLIBC_2.38 srand48 F +GLIBC_2.38 srand48_r F +GLIBC_2.38 srandom F +GLIBC_2.38 srandom_r F +GLIBC_2.38 sscanf F +GLIBC_2.38 ssignal F +GLIBC_2.38 stat F +GLIBC_2.38 stat64 F +GLIBC_2.38 statfs F +GLIBC_2.38 statfs64 F +GLIBC_2.38 statvfs F +GLIBC_2.38 statvfs64 F +GLIBC_2.38 statx F +GLIBC_2.38 stderr D 0x8 +GLIBC_2.38 stdin D 0x8 +GLIBC_2.38 stdout D 0x8 +GLIBC_2.38 stpcpy F +GLIBC_2.38 stpncpy F +GLIBC_2.38 strcasecmp F +GLIBC_2.38 strcasecmp_l F +GLIBC_2.38 strcasestr F +GLIBC_2.38 strcat F +GLIBC_2.38 strchr F +GLIBC_2.38 strchrnul F +GLIBC_2.38 strcmp F +GLIBC_2.38 strcoll F +GLIBC_2.38 strcoll_l F +GLIBC_2.38 strcpy F +GLIBC_2.38 strcspn F +GLIBC_2.38 strdup F +GLIBC_2.38 strerror F +GLIBC_2.38 strerror_l F +GLIBC_2.38 strerror_r F +GLIBC_2.38 strerrordesc_np F +GLIBC_2.38 strerrorname_np F +GLIBC_2.38 strfmon F +GLIBC_2.38 strfmon_l F +GLIBC_2.38 strfromd F +GLIBC_2.38 strfromf F +GLIBC_2.38 strfromf128 F +GLIBC_2.38 strfromf32 F +GLIBC_2.38 strfromf32x F +GLIBC_2.38 strfromf64 F +GLIBC_2.38 strfromf64x F +GLIBC_2.38 strfroml F +GLIBC_2.38 strfry F +GLIBC_2.38 strftime F +GLIBC_2.38 strftime_l F +GLIBC_2.38 strlen F +GLIBC_2.38 strncasecmp F +GLIBC_2.38 strncasecmp_l F +GLIBC_2.38 strncat F +GLIBC_2.38 strncmp F +GLIBC_2.38 strncpy F +GLIBC_2.38 strndup F +GLIBC_2.38 strnlen F +GLIBC_2.38 strpbrk F +GLIBC_2.38 strptime F +GLIBC_2.38 strptime_l F +GLIBC_2.38 strrchr F +GLIBC_2.38 strsep F +GLIBC_2.38 strsignal F +GLIBC_2.38 strspn F +GLIBC_2.38 strstr F +GLIBC_2.38 strtod F +GLIBC_2.38 strtod_l F +GLIBC_2.38 strtof F +GLIBC_2.38 strtof128 F +GLIBC_2.38 strtof128_l F +GLIBC_2.38 strtof32 F +GLIBC_2.38 strtof32_l F +GLIBC_2.38 strtof32x F +GLIBC_2.38 strtof32x_l F +GLIBC_2.38 strtof64 F +GLIBC_2.38 strtof64_l F +GLIBC_2.38 strtof64x F +GLIBC_2.38 strtof64x_l F +GLIBC_2.38 strtof_l F +GLIBC_2.38 strtoimax F +GLIBC_2.38 strtok F +GLIBC_2.38 strtok_r F +GLIBC_2.38 strtol F +GLIBC_2.38 strtol_l F +GLIBC_2.38 strtold F +GLIBC_2.38 strtold_l F +GLIBC_2.38 strtoll F +GLIBC_2.38 strtoll_l F +GLIBC_2.38 strtoq F +GLIBC_2.38 strtoul F +GLIBC_2.38 strtoul_l F +GLIBC_2.38 strtoull F +GLIBC_2.38 strtoull_l F +GLIBC_2.38 strtoumax F +GLIBC_2.38 strtouq F +GLIBC_2.38 strverscmp F +GLIBC_2.38 strxfrm F +GLIBC_2.38 strxfrm_l F +GLIBC_2.38 stty F +GLIBC_2.38 swab F +GLIBC_2.38 swapcontext F +GLIBC_2.38 swprintf F +GLIBC_2.38 swscanf F +GLIBC_2.38 swtch F +GLIBC_2.38 swtch_pri F +GLIBC_2.38 symlink F +GLIBC_2.38 symlinkat F +GLIBC_2.38 sync F +GLIBC_2.38 syncfs F +GLIBC_2.38 syscall F +GLIBC_2.38 sysconf F +GLIBC_2.38 syslog F +GLIBC_2.38 system F +GLIBC_2.38 sysv_signal F +GLIBC_2.38 task2pid F +GLIBC_2.38 task_create F +GLIBC_2.38 task_set_special_port F +GLIBC_2.38 task_suspend F +GLIBC_2.38 task_terminate F +GLIBC_2.38 tcdrain F +GLIBC_2.38 tcflow F +GLIBC_2.38 tcflush F +GLIBC_2.38 tcgetattr F +GLIBC_2.38 tcgetpgrp F +GLIBC_2.38 tcgetsid F +GLIBC_2.38 tcsendbreak F +GLIBC_2.38 tcsetattr F +GLIBC_2.38 tcsetpgrp F +GLIBC_2.38 tdelete F +GLIBC_2.38 tdestroy F +GLIBC_2.38 telldir F +GLIBC_2.38 tempnam F +GLIBC_2.38 textdomain F +GLIBC_2.38 tfind F +GLIBC_2.38 thrd_current F +GLIBC_2.38 thrd_equal F +GLIBC_2.38 thrd_sleep F +GLIBC_2.38 thrd_yield F +GLIBC_2.38 thread_depress_abort F +GLIBC_2.38 thread_switch F +GLIBC_2.38 time F +GLIBC_2.38 timegm F +GLIBC_2.38 timelocal F +GLIBC_2.38 times F +GLIBC_2.38 timespec_get F +GLIBC_2.38 timespec_getres F +GLIBC_2.38 timezone D 0x8 +GLIBC_2.38 tmpfile F +GLIBC_2.38 tmpfile64 F +GLIBC_2.38 tmpnam F +GLIBC_2.38 tmpnam_r F +GLIBC_2.38 toascii F +GLIBC_2.38 tolower F +GLIBC_2.38 tolower_l F +GLIBC_2.38 toupper F +GLIBC_2.38 toupper_l F +GLIBC_2.38 towctrans F +GLIBC_2.38 towctrans_l F +GLIBC_2.38 towlower F +GLIBC_2.38 towlower_l F +GLIBC_2.38 towupper F +GLIBC_2.38 towupper_l F +GLIBC_2.38 truncate F +GLIBC_2.38 truncate64 F +GLIBC_2.38 tsearch F +GLIBC_2.38 ttyname F +GLIBC_2.38 ttyname_r F +GLIBC_2.38 ttyslot F +GLIBC_2.38 twalk F +GLIBC_2.38 twalk_r F +GLIBC_2.38 tzname D 0x10 +GLIBC_2.38 tzset F +GLIBC_2.38 ualarm F +GLIBC_2.38 ulckpwdf F +GLIBC_2.38 ulimit F +GLIBC_2.38 umask F +GLIBC_2.38 uname F +GLIBC_2.38 ungetc F +GLIBC_2.38 ungetwc F +GLIBC_2.38 unlink F +GLIBC_2.38 unlinkat F +GLIBC_2.38 unlockpt F +GLIBC_2.38 unsetenv F +GLIBC_2.38 updwtmp F +GLIBC_2.38 updwtmpx F +GLIBC_2.38 uselocale F +GLIBC_2.38 usleep F +GLIBC_2.38 utime F +GLIBC_2.38 utimensat F +GLIBC_2.38 utimes F +GLIBC_2.38 utmpname F +GLIBC_2.38 utmpxname F +GLIBC_2.38 valloc F +GLIBC_2.38 vasprintf F +GLIBC_2.38 vdprintf F +GLIBC_2.38 verr F +GLIBC_2.38 verrx F +GLIBC_2.38 versionsort F +GLIBC_2.38 versionsort64 F +GLIBC_2.38 vfork F +GLIBC_2.38 vfprintf F +GLIBC_2.38 vfscanf F +GLIBC_2.38 vfwprintf F +GLIBC_2.38 vfwscanf F +GLIBC_2.38 vhangup F +GLIBC_2.38 vlimit F +GLIBC_2.38 vm_allocate F +GLIBC_2.38 vm_deallocate F +GLIBC_2.38 vm_map F +GLIBC_2.38 vm_page_size D 0x8 +GLIBC_2.38 vpprintf F +GLIBC_2.38 vprintf F +GLIBC_2.38 vscanf F +GLIBC_2.38 vsnprintf F +GLIBC_2.38 vsprintf F +GLIBC_2.38 vsscanf F +GLIBC_2.38 vswprintf F +GLIBC_2.38 vswscanf F +GLIBC_2.38 vsyslog F +GLIBC_2.38 vwarn F +GLIBC_2.38 vwarnx F +GLIBC_2.38 vwprintf F +GLIBC_2.38 vwscanf F +GLIBC_2.38 wait F +GLIBC_2.38 wait3 F +GLIBC_2.38 wait4 F +GLIBC_2.38 waitid F +GLIBC_2.38 waitpid F +GLIBC_2.38 warn F +GLIBC_2.38 warnx F +GLIBC_2.38 wcpcpy F +GLIBC_2.38 wcpncpy F +GLIBC_2.38 wcrtomb F +GLIBC_2.38 wcscasecmp F +GLIBC_2.38 wcscasecmp_l F +GLIBC_2.38 wcscat F +GLIBC_2.38 wcschr F +GLIBC_2.38 wcschrnul F +GLIBC_2.38 wcscmp F +GLIBC_2.38 wcscoll F +GLIBC_2.38 wcscoll_l F +GLIBC_2.38 wcscpy F +GLIBC_2.38 wcscspn F +GLIBC_2.38 wcsdup F +GLIBC_2.38 wcsftime F +GLIBC_2.38 wcsftime_l F +GLIBC_2.38 wcslen F +GLIBC_2.38 wcsncasecmp F +GLIBC_2.38 wcsncasecmp_l F +GLIBC_2.38 wcsncat F +GLIBC_2.38 wcsncmp F +GLIBC_2.38 wcsncpy F +GLIBC_2.38 wcsnlen F +GLIBC_2.38 wcsnrtombs F +GLIBC_2.38 wcspbrk F +GLIBC_2.38 wcsrchr F +GLIBC_2.38 wcsrtombs F +GLIBC_2.38 wcsspn F +GLIBC_2.38 wcsstr F +GLIBC_2.38 wcstod F +GLIBC_2.38 wcstod_l F +GLIBC_2.38 wcstof F +GLIBC_2.38 wcstof128 F +GLIBC_2.38 wcstof128_l F +GLIBC_2.38 wcstof32 F +GLIBC_2.38 wcstof32_l F +GLIBC_2.38 wcstof32x F +GLIBC_2.38 wcstof32x_l F +GLIBC_2.38 wcstof64 F +GLIBC_2.38 wcstof64_l F +GLIBC_2.38 wcstof64x F +GLIBC_2.38 wcstof64x_l F +GLIBC_2.38 wcstof_l F +GLIBC_2.38 wcstoimax F +GLIBC_2.38 wcstok F +GLIBC_2.38 wcstol F +GLIBC_2.38 wcstol_l F +GLIBC_2.38 wcstold F +GLIBC_2.38 wcstold_l F +GLIBC_2.38 wcstoll F +GLIBC_2.38 wcstoll_l F +GLIBC_2.38 wcstombs F +GLIBC_2.38 wcstoq F +GLIBC_2.38 wcstoul F +GLIBC_2.38 wcstoul_l F +GLIBC_2.38 wcstoull F +GLIBC_2.38 wcstoull_l F +GLIBC_2.38 wcstoumax F +GLIBC_2.38 wcstouq F +GLIBC_2.38 wcswcs F +GLIBC_2.38 wcswidth F +GLIBC_2.38 wcsxfrm F +GLIBC_2.38 wcsxfrm_l F +GLIBC_2.38 wctob F +GLIBC_2.38 wctomb F +GLIBC_2.38 wctrans F +GLIBC_2.38 wctrans_l F +GLIBC_2.38 wctype F +GLIBC_2.38 wctype_l F +GLIBC_2.38 wcwidth F +GLIBC_2.38 wmemchr F +GLIBC_2.38 wmemcmp F +GLIBC_2.38 wmemcpy F +GLIBC_2.38 wmemmove F +GLIBC_2.38 wmempcpy F +GLIBC_2.38 wmemset F +GLIBC_2.38 wordexp F +GLIBC_2.38 wordfree F +GLIBC_2.38 wprintf F +GLIBC_2.38 write F +GLIBC_2.38 writev F +GLIBC_2.38 wscanf F +HURD_CTHREADS_0.3 __cthread_getspecific F +HURD_CTHREADS_0.3 __cthread_keycreate F +HURD_CTHREADS_0.3 __cthread_setspecific F +HURD_CTHREADS_0.3 __mutex_init F +HURD_CTHREADS_0.3 __mutex_lock F +HURD_CTHREADS_0.3 __mutex_lock_solid F +HURD_CTHREADS_0.3 __mutex_trylock F +HURD_CTHREADS_0.3 __mutex_unlock F +HURD_CTHREADS_0.3 __mutex_unlock_solid F +HURD_CTHREADS_0.3 __spin_lock F +HURD_CTHREADS_0.3 __spin_lock_init F +HURD_CTHREADS_0.3 __spin_lock_solid F +HURD_CTHREADS_0.3 __spin_try_lock F +HURD_CTHREADS_0.3 __spin_unlock F diff --git a/sysdeps/mach/hurd/x86_64/libc_malloc_debug.abilist b/sysdeps/mach/hurd/x86_64/libc_malloc_debug.abilist new file mode 100644 index 00000000..012c48df --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libc_malloc_debug.abilist @@ -0,0 +1,26 @@ +GLIBC_2.38 __free_hook D 0x8 +GLIBC_2.38 __malloc_hook D 0x8 +GLIBC_2.38 __memalign_hook D 0x8 +GLIBC_2.38 __realloc_hook D 0x8 +GLIBC_2.38 aligned_alloc F +GLIBC_2.38 calloc F +GLIBC_2.38 free F +GLIBC_2.38 mallinfo F +GLIBC_2.38 mallinfo2 F +GLIBC_2.38 malloc F +GLIBC_2.38 malloc_info F +GLIBC_2.38 malloc_stats F +GLIBC_2.38 malloc_trim F +GLIBC_2.38 malloc_usable_size F +GLIBC_2.38 mallopt F +GLIBC_2.38 mcheck F +GLIBC_2.38 mcheck_check_all F +GLIBC_2.38 mcheck_pedantic F +GLIBC_2.38 memalign F +GLIBC_2.38 mprobe F +GLIBC_2.38 mtrace F +GLIBC_2.38 muntrace F +GLIBC_2.38 posix_memalign F +GLIBC_2.38 pvalloc F +GLIBC_2.38 realloc F +GLIBC_2.38 valloc F diff --git a/sysdeps/mach/hurd/x86_64/libcrypt.abilist b/sysdeps/mach/hurd/x86_64/libcrypt.abilist new file mode 100644 index 00000000..3ee068a0 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libcrypt.abilist @@ -0,0 +1,2 @@ +GLIBC_2.38 crypt F +GLIBC_2.38 crypt_r F diff --git a/sysdeps/mach/hurd/x86_64/libdl.abilist b/sysdeps/mach/hurd/x86_64/libdl.abilist new file mode 100644 index 00000000..e69de29b diff --git a/sysdeps/mach/hurd/x86_64/libm.abilist b/sysdeps/mach/hurd/x86_64/libm.abilist new file mode 100644 index 00000000..5c762b93 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libm.abilist @@ -0,0 +1,1040 @@ +GLIBC_2.38 __clog10 F +GLIBC_2.38 __clog10f F +GLIBC_2.38 __clog10l F +GLIBC_2.38 __finite F +GLIBC_2.38 __finitef F +GLIBC_2.38 __finitef128 F +GLIBC_2.38 __finitel F +GLIBC_2.38 __fpclassify F +GLIBC_2.38 __fpclassifyf F +GLIBC_2.38 __fpclassifyf128 F +GLIBC_2.38 __fpclassifyl F +GLIBC_2.38 __iscanonicall F +GLIBC_2.38 __iseqsig F +GLIBC_2.38 __iseqsigf F +GLIBC_2.38 __iseqsigf128 F +GLIBC_2.38 __iseqsigl F +GLIBC_2.38 __isinff128 F +GLIBC_2.38 __issignaling F +GLIBC_2.38 __issignalingf F +GLIBC_2.38 __issignalingf128 F +GLIBC_2.38 __issignalingl F +GLIBC_2.38 __log10l_finite F +GLIBC_2.38 __log2l_finite F +GLIBC_2.38 __logl_finite F +GLIBC_2.38 __signbit F +GLIBC_2.38 __signbitf F +GLIBC_2.38 __signbitf128 F +GLIBC_2.38 __signbitl F +GLIBC_2.38 __signgam D 0x4 +GLIBC_2.38 acos F +GLIBC_2.38 acosf F +GLIBC_2.38 acosf128 F +GLIBC_2.38 acosf32 F +GLIBC_2.38 acosf32x F +GLIBC_2.38 acosf64 F +GLIBC_2.38 acosf64x F +GLIBC_2.38 acosh F +GLIBC_2.38 acoshf F +GLIBC_2.38 acoshf128 F +GLIBC_2.38 acoshf32 F +GLIBC_2.38 acoshf32x F +GLIBC_2.38 acoshf64 F +GLIBC_2.38 acoshf64x F +GLIBC_2.38 acoshl F +GLIBC_2.38 acosl F +GLIBC_2.38 asin F +GLIBC_2.38 asinf F +GLIBC_2.38 asinf128 F +GLIBC_2.38 asinf32 F +GLIBC_2.38 asinf32x F +GLIBC_2.38 asinf64 F +GLIBC_2.38 asinf64x F +GLIBC_2.38 asinh F +GLIBC_2.38 asinhf F +GLIBC_2.38 asinhf128 F +GLIBC_2.38 asinhf32 F +GLIBC_2.38 asinhf32x F +GLIBC_2.38 asinhf64 F +GLIBC_2.38 asinhf64x F +GLIBC_2.38 asinhl F +GLIBC_2.38 asinl F +GLIBC_2.38 atan F +GLIBC_2.38 atan2 F +GLIBC_2.38 atan2f F +GLIBC_2.38 atan2f128 F +GLIBC_2.38 atan2f32 F +GLIBC_2.38 atan2f32x F +GLIBC_2.38 atan2f64 F +GLIBC_2.38 atan2f64x F +GLIBC_2.38 atan2l F +GLIBC_2.38 atanf F +GLIBC_2.38 atanf128 F +GLIBC_2.38 atanf32 F +GLIBC_2.38 atanf32x F +GLIBC_2.38 atanf64 F +GLIBC_2.38 atanf64x F +GLIBC_2.38 atanh F +GLIBC_2.38 atanhf F +GLIBC_2.38 atanhf128 F +GLIBC_2.38 atanhf32 F +GLIBC_2.38 atanhf32x F +GLIBC_2.38 atanhf64 F +GLIBC_2.38 atanhf64x F +GLIBC_2.38 atanhl F +GLIBC_2.38 atanl F +GLIBC_2.38 cabs F +GLIBC_2.38 cabsf F +GLIBC_2.38 cabsf128 F +GLIBC_2.38 cabsf32 F +GLIBC_2.38 cabsf32x F +GLIBC_2.38 cabsf64 F +GLIBC_2.38 cabsf64x F +GLIBC_2.38 cabsl F +GLIBC_2.38 cacos F +GLIBC_2.38 cacosf F +GLIBC_2.38 cacosf128 F +GLIBC_2.38 cacosf32 F +GLIBC_2.38 cacosf32x F +GLIBC_2.38 cacosf64 F +GLIBC_2.38 cacosf64x F +GLIBC_2.38 cacosh F +GLIBC_2.38 cacoshf F +GLIBC_2.38 cacoshf128 F +GLIBC_2.38 cacoshf32 F +GLIBC_2.38 cacoshf32x F +GLIBC_2.38 cacoshf64 F +GLIBC_2.38 cacoshf64x F +GLIBC_2.38 cacoshl F +GLIBC_2.38 cacosl F +GLIBC_2.38 canonicalize F +GLIBC_2.38 canonicalizef F +GLIBC_2.38 canonicalizef128 F +GLIBC_2.38 canonicalizef32 F +GLIBC_2.38 canonicalizef32x F +GLIBC_2.38 canonicalizef64 F +GLIBC_2.38 canonicalizef64x F +GLIBC_2.38 canonicalizel F +GLIBC_2.38 carg F +GLIBC_2.38 cargf F +GLIBC_2.38 cargf128 F +GLIBC_2.38 cargf32 F +GLIBC_2.38 cargf32x F +GLIBC_2.38 cargf64 F +GLIBC_2.38 cargf64x F +GLIBC_2.38 cargl F +GLIBC_2.38 casin F +GLIBC_2.38 casinf F +GLIBC_2.38 casinf128 F +GLIBC_2.38 casinf32 F +GLIBC_2.38 casinf32x F +GLIBC_2.38 casinf64 F +GLIBC_2.38 casinf64x F +GLIBC_2.38 casinh F +GLIBC_2.38 casinhf F +GLIBC_2.38 casinhf128 F +GLIBC_2.38 casinhf32 F +GLIBC_2.38 casinhf32x F +GLIBC_2.38 casinhf64 F +GLIBC_2.38 casinhf64x F +GLIBC_2.38 casinhl F +GLIBC_2.38 casinl F +GLIBC_2.38 catan F +GLIBC_2.38 catanf F +GLIBC_2.38 catanf128 F +GLIBC_2.38 catanf32 F +GLIBC_2.38 catanf32x F +GLIBC_2.38 catanf64 F +GLIBC_2.38 catanf64x F +GLIBC_2.38 catanh F +GLIBC_2.38 catanhf F +GLIBC_2.38 catanhf128 F +GLIBC_2.38 catanhf32 F +GLIBC_2.38 catanhf32x F +GLIBC_2.38 catanhf64 F +GLIBC_2.38 catanhf64x F +GLIBC_2.38 catanhl F +GLIBC_2.38 catanl F +GLIBC_2.38 cbrt F +GLIBC_2.38 cbrtf F +GLIBC_2.38 cbrtf128 F +GLIBC_2.38 cbrtf32 F +GLIBC_2.38 cbrtf32x F +GLIBC_2.38 cbrtf64 F +GLIBC_2.38 cbrtf64x F +GLIBC_2.38 cbrtl F +GLIBC_2.38 ccos F +GLIBC_2.38 ccosf F +GLIBC_2.38 ccosf128 F +GLIBC_2.38 ccosf32 F +GLIBC_2.38 ccosf32x F +GLIBC_2.38 ccosf64 F +GLIBC_2.38 ccosf64x F +GLIBC_2.38 ccosh F +GLIBC_2.38 ccoshf F +GLIBC_2.38 ccoshf128 F +GLIBC_2.38 ccoshf32 F +GLIBC_2.38 ccoshf32x F +GLIBC_2.38 ccoshf64 F +GLIBC_2.38 ccoshf64x F +GLIBC_2.38 ccoshl F +GLIBC_2.38 ccosl F +GLIBC_2.38 ceil F +GLIBC_2.38 ceilf F +GLIBC_2.38 ceilf128 F +GLIBC_2.38 ceilf32 F +GLIBC_2.38 ceilf32x F +GLIBC_2.38 ceilf64 F +GLIBC_2.38 ceilf64x F +GLIBC_2.38 ceill F +GLIBC_2.38 cexp F +GLIBC_2.38 cexpf F +GLIBC_2.38 cexpf128 F +GLIBC_2.38 cexpf32 F +GLIBC_2.38 cexpf32x F +GLIBC_2.38 cexpf64 F +GLIBC_2.38 cexpf64x F +GLIBC_2.38 cexpl F +GLIBC_2.38 cimag F +GLIBC_2.38 cimagf F +GLIBC_2.38 cimagf128 F +GLIBC_2.38 cimagf32 F +GLIBC_2.38 cimagf32x F +GLIBC_2.38 cimagf64 F +GLIBC_2.38 cimagf64x F +GLIBC_2.38 cimagl F +GLIBC_2.38 clog F +GLIBC_2.38 clog10 F +GLIBC_2.38 clog10f F +GLIBC_2.38 clog10f128 F +GLIBC_2.38 clog10f32 F +GLIBC_2.38 clog10f32x F +GLIBC_2.38 clog10f64 F +GLIBC_2.38 clog10f64x F +GLIBC_2.38 clog10l F +GLIBC_2.38 clogf F +GLIBC_2.38 clogf128 F +GLIBC_2.38 clogf32 F +GLIBC_2.38 clogf32x F +GLIBC_2.38 clogf64 F +GLIBC_2.38 clogf64x F +GLIBC_2.38 clogl F +GLIBC_2.38 conj F +GLIBC_2.38 conjf F +GLIBC_2.38 conjf128 F +GLIBC_2.38 conjf32 F +GLIBC_2.38 conjf32x F +GLIBC_2.38 conjf64 F +GLIBC_2.38 conjf64x F +GLIBC_2.38 conjl F +GLIBC_2.38 copysign F +GLIBC_2.38 copysignf F +GLIBC_2.38 copysignf128 F +GLIBC_2.38 copysignf32 F +GLIBC_2.38 copysignf32x F +GLIBC_2.38 copysignf64 F +GLIBC_2.38 copysignf64x F +GLIBC_2.38 copysignl F +GLIBC_2.38 cos F +GLIBC_2.38 cosf F +GLIBC_2.38 cosf128 F +GLIBC_2.38 cosf32 F +GLIBC_2.38 cosf32x F +GLIBC_2.38 cosf64 F +GLIBC_2.38 cosf64x F +GLIBC_2.38 cosh F +GLIBC_2.38 coshf F +GLIBC_2.38 coshf128 F +GLIBC_2.38 coshf32 F +GLIBC_2.38 coshf32x F +GLIBC_2.38 coshf64 F +GLIBC_2.38 coshf64x F +GLIBC_2.38 coshl F +GLIBC_2.38 cosl F +GLIBC_2.38 cpow F +GLIBC_2.38 cpowf F +GLIBC_2.38 cpowf128 F +GLIBC_2.38 cpowf32 F +GLIBC_2.38 cpowf32x F +GLIBC_2.38 cpowf64 F +GLIBC_2.38 cpowf64x F +GLIBC_2.38 cpowl F +GLIBC_2.38 cproj F +GLIBC_2.38 cprojf F +GLIBC_2.38 cprojf128 F +GLIBC_2.38 cprojf32 F +GLIBC_2.38 cprojf32x F +GLIBC_2.38 cprojf64 F +GLIBC_2.38 cprojf64x F +GLIBC_2.38 cprojl F +GLIBC_2.38 creal F +GLIBC_2.38 crealf F +GLIBC_2.38 crealf128 F +GLIBC_2.38 crealf32 F +GLIBC_2.38 crealf32x F +GLIBC_2.38 crealf64 F +GLIBC_2.38 crealf64x F +GLIBC_2.38 creall F +GLIBC_2.38 csin F +GLIBC_2.38 csinf F +GLIBC_2.38 csinf128 F +GLIBC_2.38 csinf32 F +GLIBC_2.38 csinf32x F +GLIBC_2.38 csinf64 F +GLIBC_2.38 csinf64x F +GLIBC_2.38 csinh F +GLIBC_2.38 csinhf F +GLIBC_2.38 csinhf128 F +GLIBC_2.38 csinhf32 F +GLIBC_2.38 csinhf32x F +GLIBC_2.38 csinhf64 F +GLIBC_2.38 csinhf64x F +GLIBC_2.38 csinhl F +GLIBC_2.38 csinl F +GLIBC_2.38 csqrt F +GLIBC_2.38 csqrtf F +GLIBC_2.38 csqrtf128 F +GLIBC_2.38 csqrtf32 F +GLIBC_2.38 csqrtf32x F +GLIBC_2.38 csqrtf64 F +GLIBC_2.38 csqrtf64x F +GLIBC_2.38 csqrtl F +GLIBC_2.38 ctan F +GLIBC_2.38 ctanf F +GLIBC_2.38 ctanf128 F +GLIBC_2.38 ctanf32 F +GLIBC_2.38 ctanf32x F +GLIBC_2.38 ctanf64 F +GLIBC_2.38 ctanf64x F +GLIBC_2.38 ctanh F +GLIBC_2.38 ctanhf F +GLIBC_2.38 ctanhf128 F +GLIBC_2.38 ctanhf32 F +GLIBC_2.38 ctanhf32x F +GLIBC_2.38 ctanhf64 F +GLIBC_2.38 ctanhf64x F +GLIBC_2.38 ctanhl F +GLIBC_2.38 ctanl F +GLIBC_2.38 daddl F +GLIBC_2.38 ddivl F +GLIBC_2.38 dfmal F +GLIBC_2.38 dmull F +GLIBC_2.38 drem F +GLIBC_2.38 dremf F +GLIBC_2.38 dreml F +GLIBC_2.38 dsqrtl F +GLIBC_2.38 dsubl F +GLIBC_2.38 erf F +GLIBC_2.38 erfc F +GLIBC_2.38 erfcf F +GLIBC_2.38 erfcf128 F +GLIBC_2.38 erfcf32 F +GLIBC_2.38 erfcf32x F +GLIBC_2.38 erfcf64 F +GLIBC_2.38 erfcf64x F +GLIBC_2.38 erfcl F +GLIBC_2.38 erff F +GLIBC_2.38 erff128 F +GLIBC_2.38 erff32 F +GLIBC_2.38 erff32x F +GLIBC_2.38 erff64 F +GLIBC_2.38 erff64x F +GLIBC_2.38 erfl F +GLIBC_2.38 exp F +GLIBC_2.38 exp10 F +GLIBC_2.38 exp10f F +GLIBC_2.38 exp10f128 F +GLIBC_2.38 exp10f32 F +GLIBC_2.38 exp10f32x F +GLIBC_2.38 exp10f64 F +GLIBC_2.38 exp10f64x F +GLIBC_2.38 exp10l F +GLIBC_2.38 exp2 F +GLIBC_2.38 exp2f F +GLIBC_2.38 exp2f128 F +GLIBC_2.38 exp2f32 F +GLIBC_2.38 exp2f32x F +GLIBC_2.38 exp2f64 F +GLIBC_2.38 exp2f64x F +GLIBC_2.38 exp2l F +GLIBC_2.38 expf F +GLIBC_2.38 expf128 F +GLIBC_2.38 expf32 F +GLIBC_2.38 expf32x F +GLIBC_2.38 expf64 F +GLIBC_2.38 expf64x F +GLIBC_2.38 expl F +GLIBC_2.38 expm1 F +GLIBC_2.38 expm1f F +GLIBC_2.38 expm1f128 F +GLIBC_2.38 expm1f32 F +GLIBC_2.38 expm1f32x F +GLIBC_2.38 expm1f64 F +GLIBC_2.38 expm1f64x F +GLIBC_2.38 expm1l F +GLIBC_2.38 f32addf128 F +GLIBC_2.38 f32addf32x F +GLIBC_2.38 f32addf64 F +GLIBC_2.38 f32addf64x F +GLIBC_2.38 f32divf128 F +GLIBC_2.38 f32divf32x F +GLIBC_2.38 f32divf64 F +GLIBC_2.38 f32divf64x F +GLIBC_2.38 f32fmaf128 F +GLIBC_2.38 f32fmaf32x F +GLIBC_2.38 f32fmaf64 F +GLIBC_2.38 f32fmaf64x F +GLIBC_2.38 f32mulf128 F +GLIBC_2.38 f32mulf32x F +GLIBC_2.38 f32mulf64 F +GLIBC_2.38 f32mulf64x F +GLIBC_2.38 f32sqrtf128 F +GLIBC_2.38 f32sqrtf32x F +GLIBC_2.38 f32sqrtf64 F +GLIBC_2.38 f32sqrtf64x F +GLIBC_2.38 f32subf128 F +GLIBC_2.38 f32subf32x F +GLIBC_2.38 f32subf64 F +GLIBC_2.38 f32subf64x F +GLIBC_2.38 f32xaddf128 F +GLIBC_2.38 f32xaddf64 F +GLIBC_2.38 f32xaddf64x F +GLIBC_2.38 f32xdivf128 F +GLIBC_2.38 f32xdivf64 F +GLIBC_2.38 f32xdivf64x F +GLIBC_2.38 f32xfmaf128 F +GLIBC_2.38 f32xfmaf64 F +GLIBC_2.38 f32xfmaf64x F +GLIBC_2.38 f32xmulf128 F +GLIBC_2.38 f32xmulf64 F +GLIBC_2.38 f32xmulf64x F +GLIBC_2.38 f32xsqrtf128 F +GLIBC_2.38 f32xsqrtf64 F +GLIBC_2.38 f32xsqrtf64x F +GLIBC_2.38 f32xsubf128 F +GLIBC_2.38 f32xsubf64 F +GLIBC_2.38 f32xsubf64x F +GLIBC_2.38 f64addf128 F +GLIBC_2.38 f64addf64x F +GLIBC_2.38 f64divf128 F +GLIBC_2.38 f64divf64x F +GLIBC_2.38 f64fmaf128 F +GLIBC_2.38 f64fmaf64x F +GLIBC_2.38 f64mulf128 F +GLIBC_2.38 f64mulf64x F +GLIBC_2.38 f64sqrtf128 F +GLIBC_2.38 f64sqrtf64x F +GLIBC_2.38 f64subf128 F +GLIBC_2.38 f64subf64x F +GLIBC_2.38 f64xaddf128 F +GLIBC_2.38 f64xdivf128 F +GLIBC_2.38 f64xfmaf128 F +GLIBC_2.38 f64xmulf128 F +GLIBC_2.38 f64xsqrtf128 F +GLIBC_2.38 f64xsubf128 F +GLIBC_2.38 fabs F +GLIBC_2.38 fabsf F +GLIBC_2.38 fabsf128 F +GLIBC_2.38 fabsf32 F +GLIBC_2.38 fabsf32x F +GLIBC_2.38 fabsf64 F +GLIBC_2.38 fabsf64x F +GLIBC_2.38 fabsl F +GLIBC_2.38 fadd F +GLIBC_2.38 faddl F +GLIBC_2.38 fdim F +GLIBC_2.38 fdimf F +GLIBC_2.38 fdimf128 F +GLIBC_2.38 fdimf32 F +GLIBC_2.38 fdimf32x F +GLIBC_2.38 fdimf64 F +GLIBC_2.38 fdimf64x F +GLIBC_2.38 fdiml F +GLIBC_2.38 fdiv F +GLIBC_2.38 fdivl F +GLIBC_2.38 feclearexcept F +GLIBC_2.38 fedisableexcept F +GLIBC_2.38 feenableexcept F +GLIBC_2.38 fegetenv F +GLIBC_2.38 fegetexcept F +GLIBC_2.38 fegetexceptflag F +GLIBC_2.38 fegetmode F +GLIBC_2.38 fegetround F +GLIBC_2.38 feholdexcept F +GLIBC_2.38 feraiseexcept F +GLIBC_2.38 fesetenv F +GLIBC_2.38 fesetexcept F +GLIBC_2.38 fesetexceptflag F +GLIBC_2.38 fesetmode F +GLIBC_2.38 fesetround F +GLIBC_2.38 fetestexcept F +GLIBC_2.38 fetestexceptflag F +GLIBC_2.38 feupdateenv F +GLIBC_2.38 ffma F +GLIBC_2.38 ffmal F +GLIBC_2.38 finite F +GLIBC_2.38 finitef F +GLIBC_2.38 finitel F +GLIBC_2.38 floor F +GLIBC_2.38 floorf F +GLIBC_2.38 floorf128 F +GLIBC_2.38 floorf32 F +GLIBC_2.38 floorf32x F +GLIBC_2.38 floorf64 F +GLIBC_2.38 floorf64x F +GLIBC_2.38 floorl F +GLIBC_2.38 fma F +GLIBC_2.38 fmaf F +GLIBC_2.38 fmaf128 F +GLIBC_2.38 fmaf32 F +GLIBC_2.38 fmaf32x F +GLIBC_2.38 fmaf64 F +GLIBC_2.38 fmaf64x F +GLIBC_2.38 fmal F +GLIBC_2.38 fmax F +GLIBC_2.38 fmaxf F +GLIBC_2.38 fmaxf128 F +GLIBC_2.38 fmaxf32 F +GLIBC_2.38 fmaxf32x F +GLIBC_2.38 fmaxf64 F +GLIBC_2.38 fmaxf64x F +GLIBC_2.38 fmaximum F +GLIBC_2.38 fmaximum_mag F +GLIBC_2.38 fmaximum_mag_num F +GLIBC_2.38 fmaximum_mag_numf F +GLIBC_2.38 fmaximum_mag_numf128 F +GLIBC_2.38 fmaximum_mag_numf32 F +GLIBC_2.38 fmaximum_mag_numf32x F +GLIBC_2.38 fmaximum_mag_numf64 F +GLIBC_2.38 fmaximum_mag_numf64x F +GLIBC_2.38 fmaximum_mag_numl F +GLIBC_2.38 fmaximum_magf F +GLIBC_2.38 fmaximum_magf128 F +GLIBC_2.38 fmaximum_magf32 F +GLIBC_2.38 fmaximum_magf32x F +GLIBC_2.38 fmaximum_magf64 F +GLIBC_2.38 fmaximum_magf64x F +GLIBC_2.38 fmaximum_magl F +GLIBC_2.38 fmaximum_num F +GLIBC_2.38 fmaximum_numf F +GLIBC_2.38 fmaximum_numf128 F +GLIBC_2.38 fmaximum_numf32 F +GLIBC_2.38 fmaximum_numf32x F +GLIBC_2.38 fmaximum_numf64 F +GLIBC_2.38 fmaximum_numf64x F +GLIBC_2.38 fmaximum_numl F +GLIBC_2.38 fmaximumf F +GLIBC_2.38 fmaximumf128 F +GLIBC_2.38 fmaximumf32 F +GLIBC_2.38 fmaximumf32x F +GLIBC_2.38 fmaximumf64 F +GLIBC_2.38 fmaximumf64x F +GLIBC_2.38 fmaximuml F +GLIBC_2.38 fmaxl F +GLIBC_2.38 fmaxmag F +GLIBC_2.38 fmaxmagf F +GLIBC_2.38 fmaxmagf128 F +GLIBC_2.38 fmaxmagf32 F +GLIBC_2.38 fmaxmagf32x F +GLIBC_2.38 fmaxmagf64 F +GLIBC_2.38 fmaxmagf64x F +GLIBC_2.38 fmaxmagl F +GLIBC_2.38 fmin F +GLIBC_2.38 fminf F +GLIBC_2.38 fminf128 F +GLIBC_2.38 fminf32 F +GLIBC_2.38 fminf32x F +GLIBC_2.38 fminf64 F +GLIBC_2.38 fminf64x F +GLIBC_2.38 fminimum F +GLIBC_2.38 fminimum_mag F +GLIBC_2.38 fminimum_mag_num F +GLIBC_2.38 fminimum_mag_numf F +GLIBC_2.38 fminimum_mag_numf128 F +GLIBC_2.38 fminimum_mag_numf32 F +GLIBC_2.38 fminimum_mag_numf32x F +GLIBC_2.38 fminimum_mag_numf64 F +GLIBC_2.38 fminimum_mag_numf64x F +GLIBC_2.38 fminimum_mag_numl F +GLIBC_2.38 fminimum_magf F +GLIBC_2.38 fminimum_magf128 F +GLIBC_2.38 fminimum_magf32 F +GLIBC_2.38 fminimum_magf32x F +GLIBC_2.38 fminimum_magf64 F +GLIBC_2.38 fminimum_magf64x F +GLIBC_2.38 fminimum_magl F +GLIBC_2.38 fminimum_num F +GLIBC_2.38 fminimum_numf F +GLIBC_2.38 fminimum_numf128 F +GLIBC_2.38 fminimum_numf32 F +GLIBC_2.38 fminimum_numf32x F +GLIBC_2.38 fminimum_numf64 F +GLIBC_2.38 fminimum_numf64x F +GLIBC_2.38 fminimum_numl F +GLIBC_2.38 fminimumf F +GLIBC_2.38 fminimumf128 F +GLIBC_2.38 fminimumf32 F +GLIBC_2.38 fminimumf32x F +GLIBC_2.38 fminimumf64 F +GLIBC_2.38 fminimumf64x F +GLIBC_2.38 fminimuml F +GLIBC_2.38 fminl F +GLIBC_2.38 fminmag F +GLIBC_2.38 fminmagf F +GLIBC_2.38 fminmagf128 F +GLIBC_2.38 fminmagf32 F +GLIBC_2.38 fminmagf32x F +GLIBC_2.38 fminmagf64 F +GLIBC_2.38 fminmagf64x F +GLIBC_2.38 fminmagl F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F +GLIBC_2.38 fmodf128 F +GLIBC_2.38 fmodf32 F +GLIBC_2.38 fmodf32x F +GLIBC_2.38 fmodf64 F +GLIBC_2.38 fmodf64x F +GLIBC_2.38 fmodl F +GLIBC_2.38 fmul F +GLIBC_2.38 fmull F +GLIBC_2.38 frexp F +GLIBC_2.38 frexpf F +GLIBC_2.38 frexpf128 F +GLIBC_2.38 frexpf32 F +GLIBC_2.38 frexpf32x F +GLIBC_2.38 frexpf64 F +GLIBC_2.38 frexpf64x F +GLIBC_2.38 frexpl F +GLIBC_2.38 fromfp F +GLIBC_2.38 fromfpf F +GLIBC_2.38 fromfpf128 F +GLIBC_2.38 fromfpf32 F +GLIBC_2.38 fromfpf32x F +GLIBC_2.38 fromfpf64 F +GLIBC_2.38 fromfpf64x F +GLIBC_2.38 fromfpl F +GLIBC_2.38 fromfpx F +GLIBC_2.38 fromfpxf F +GLIBC_2.38 fromfpxf128 F +GLIBC_2.38 fromfpxf32 F +GLIBC_2.38 fromfpxf32x F +GLIBC_2.38 fromfpxf64 F +GLIBC_2.38 fromfpxf64x F +GLIBC_2.38 fromfpxl F +GLIBC_2.38 fsqrt F +GLIBC_2.38 fsqrtl F +GLIBC_2.38 fsub F +GLIBC_2.38 fsubl F +GLIBC_2.38 gamma F +GLIBC_2.38 gammaf F +GLIBC_2.38 gammal F +GLIBC_2.38 getpayload F +GLIBC_2.38 getpayloadf F +GLIBC_2.38 getpayloadf128 F +GLIBC_2.38 getpayloadf32 F +GLIBC_2.38 getpayloadf32x F +GLIBC_2.38 getpayloadf64 F +GLIBC_2.38 getpayloadf64x F +GLIBC_2.38 getpayloadl F +GLIBC_2.38 hypot F +GLIBC_2.38 hypotf F +GLIBC_2.38 hypotf128 F +GLIBC_2.38 hypotf32 F +GLIBC_2.38 hypotf32x F +GLIBC_2.38 hypotf64 F +GLIBC_2.38 hypotf64x F +GLIBC_2.38 hypotl F +GLIBC_2.38 ilogb F +GLIBC_2.38 ilogbf F +GLIBC_2.38 ilogbf128 F +GLIBC_2.38 ilogbf32 F +GLIBC_2.38 ilogbf32x F +GLIBC_2.38 ilogbf64 F +GLIBC_2.38 ilogbf64x F +GLIBC_2.38 ilogbl F +GLIBC_2.38 j0 F +GLIBC_2.38 j0f F +GLIBC_2.38 j0f128 F +GLIBC_2.38 j0f32 F +GLIBC_2.38 j0f32x F +GLIBC_2.38 j0f64 F +GLIBC_2.38 j0f64x F +GLIBC_2.38 j0l F +GLIBC_2.38 j1 F +GLIBC_2.38 j1f F +GLIBC_2.38 j1f128 F +GLIBC_2.38 j1f32 F +GLIBC_2.38 j1f32x F +GLIBC_2.38 j1f64 F +GLIBC_2.38 j1f64x F +GLIBC_2.38 j1l F +GLIBC_2.38 jn F +GLIBC_2.38 jnf F +GLIBC_2.38 jnf128 F +GLIBC_2.38 jnf32 F +GLIBC_2.38 jnf32x F +GLIBC_2.38 jnf64 F +GLIBC_2.38 jnf64x F +GLIBC_2.38 jnl F +GLIBC_2.38 ldexp F +GLIBC_2.38 ldexpf F +GLIBC_2.38 ldexpf128 F +GLIBC_2.38 ldexpf32 F +GLIBC_2.38 ldexpf32x F +GLIBC_2.38 ldexpf64 F +GLIBC_2.38 ldexpf64x F +GLIBC_2.38 ldexpl F +GLIBC_2.38 lgamma F +GLIBC_2.38 lgamma_r F +GLIBC_2.38 lgammaf F +GLIBC_2.38 lgammaf128 F +GLIBC_2.38 lgammaf128_r F +GLIBC_2.38 lgammaf32 F +GLIBC_2.38 lgammaf32_r F +GLIBC_2.38 lgammaf32x F +GLIBC_2.38 lgammaf32x_r F +GLIBC_2.38 lgammaf64 F +GLIBC_2.38 lgammaf64_r F +GLIBC_2.38 lgammaf64x F +GLIBC_2.38 lgammaf64x_r F +GLIBC_2.38 lgammaf_r F +GLIBC_2.38 lgammal F +GLIBC_2.38 lgammal_r F +GLIBC_2.38 llogb F +GLIBC_2.38 llogbf F +GLIBC_2.38 llogbf128 F +GLIBC_2.38 llogbf32 F +GLIBC_2.38 llogbf32x F +GLIBC_2.38 llogbf64 F +GLIBC_2.38 llogbf64x F +GLIBC_2.38 llogbl F +GLIBC_2.38 llrint F +GLIBC_2.38 llrintf F +GLIBC_2.38 llrintf128 F +GLIBC_2.38 llrintf32 F +GLIBC_2.38 llrintf32x F +GLIBC_2.38 llrintf64 F +GLIBC_2.38 llrintf64x F +GLIBC_2.38 llrintl F +GLIBC_2.38 llround F +GLIBC_2.38 llroundf F +GLIBC_2.38 llroundf128 F +GLIBC_2.38 llroundf32 F +GLIBC_2.38 llroundf32x F +GLIBC_2.38 llroundf64 F +GLIBC_2.38 llroundf64x F +GLIBC_2.38 llroundl F +GLIBC_2.38 log F +GLIBC_2.38 log10 F +GLIBC_2.38 log10f F +GLIBC_2.38 log10f128 F +GLIBC_2.38 log10f32 F +GLIBC_2.38 log10f32x F +GLIBC_2.38 log10f64 F +GLIBC_2.38 log10f64x F +GLIBC_2.38 log10l F +GLIBC_2.38 log1p F +GLIBC_2.38 log1pf F +GLIBC_2.38 log1pf128 F +GLIBC_2.38 log1pf32 F +GLIBC_2.38 log1pf32x F +GLIBC_2.38 log1pf64 F +GLIBC_2.38 log1pf64x F +GLIBC_2.38 log1pl F +GLIBC_2.38 log2 F +GLIBC_2.38 log2f F +GLIBC_2.38 log2f128 F +GLIBC_2.38 log2f32 F +GLIBC_2.38 log2f32x F +GLIBC_2.38 log2f64 F +GLIBC_2.38 log2f64x F +GLIBC_2.38 log2l F +GLIBC_2.38 logb F +GLIBC_2.38 logbf F +GLIBC_2.38 logbf128 F +GLIBC_2.38 logbf32 F +GLIBC_2.38 logbf32x F +GLIBC_2.38 logbf64 F +GLIBC_2.38 logbf64x F +GLIBC_2.38 logbl F +GLIBC_2.38 logf F +GLIBC_2.38 logf128 F +GLIBC_2.38 logf32 F +GLIBC_2.38 logf32x F +GLIBC_2.38 logf64 F +GLIBC_2.38 logf64x F +GLIBC_2.38 logl F +GLIBC_2.38 lrint F +GLIBC_2.38 lrintf F +GLIBC_2.38 lrintf128 F +GLIBC_2.38 lrintf32 F +GLIBC_2.38 lrintf32x F +GLIBC_2.38 lrintf64 F +GLIBC_2.38 lrintf64x F +GLIBC_2.38 lrintl F +GLIBC_2.38 lround F +GLIBC_2.38 lroundf F +GLIBC_2.38 lroundf128 F +GLIBC_2.38 lroundf32 F +GLIBC_2.38 lroundf32x F +GLIBC_2.38 lroundf64 F +GLIBC_2.38 lroundf64x F +GLIBC_2.38 lroundl F +GLIBC_2.38 modf F +GLIBC_2.38 modff F +GLIBC_2.38 modff128 F +GLIBC_2.38 modff32 F +GLIBC_2.38 modff32x F +GLIBC_2.38 modff64 F +GLIBC_2.38 modff64x F +GLIBC_2.38 modfl F +GLIBC_2.38 nan F +GLIBC_2.38 nanf F +GLIBC_2.38 nanf128 F +GLIBC_2.38 nanf32 F +GLIBC_2.38 nanf32x F +GLIBC_2.38 nanf64 F +GLIBC_2.38 nanf64x F +GLIBC_2.38 nanl F +GLIBC_2.38 nearbyint F +GLIBC_2.38 nearbyintf F +GLIBC_2.38 nearbyintf128 F +GLIBC_2.38 nearbyintf32 F +GLIBC_2.38 nearbyintf32x F +GLIBC_2.38 nearbyintf64 F +GLIBC_2.38 nearbyintf64x F +GLIBC_2.38 nearbyintl F +GLIBC_2.38 nextafter F +GLIBC_2.38 nextafterf F +GLIBC_2.38 nextafterf128 F +GLIBC_2.38 nextafterf32 F +GLIBC_2.38 nextafterf32x F +GLIBC_2.38 nextafterf64 F +GLIBC_2.38 nextafterf64x F +GLIBC_2.38 nextafterl F +GLIBC_2.38 nextdown F +GLIBC_2.38 nextdownf F +GLIBC_2.38 nextdownf128 F +GLIBC_2.38 nextdownf32 F +GLIBC_2.38 nextdownf32x F +GLIBC_2.38 nextdownf64 F +GLIBC_2.38 nextdownf64x F +GLIBC_2.38 nextdownl F +GLIBC_2.38 nexttoward F +GLIBC_2.38 nexttowardf F +GLIBC_2.38 nexttowardl F +GLIBC_2.38 nextup F +GLIBC_2.38 nextupf F +GLIBC_2.38 nextupf128 F +GLIBC_2.38 nextupf32 F +GLIBC_2.38 nextupf32x F +GLIBC_2.38 nextupf64 F +GLIBC_2.38 nextupf64x F +GLIBC_2.38 nextupl F +GLIBC_2.38 pow F +GLIBC_2.38 powf F +GLIBC_2.38 powf128 F +GLIBC_2.38 powf32 F +GLIBC_2.38 powf32x F +GLIBC_2.38 powf64 F +GLIBC_2.38 powf64x F +GLIBC_2.38 powl F +GLIBC_2.38 remainder F +GLIBC_2.38 remainderf F +GLIBC_2.38 remainderf128 F +GLIBC_2.38 remainderf32 F +GLIBC_2.38 remainderf32x F +GLIBC_2.38 remainderf64 F +GLIBC_2.38 remainderf64x F +GLIBC_2.38 remainderl F +GLIBC_2.38 remquo F +GLIBC_2.38 remquof F +GLIBC_2.38 remquof128 F +GLIBC_2.38 remquof32 F +GLIBC_2.38 remquof32x F +GLIBC_2.38 remquof64 F +GLIBC_2.38 remquof64x F +GLIBC_2.38 remquol F +GLIBC_2.38 rint F +GLIBC_2.38 rintf F +GLIBC_2.38 rintf128 F +GLIBC_2.38 rintf32 F +GLIBC_2.38 rintf32x F +GLIBC_2.38 rintf64 F +GLIBC_2.38 rintf64x F +GLIBC_2.38 rintl F +GLIBC_2.38 round F +GLIBC_2.38 roundeven F +GLIBC_2.38 roundevenf F +GLIBC_2.38 roundevenf128 F +GLIBC_2.38 roundevenf32 F +GLIBC_2.38 roundevenf32x F +GLIBC_2.38 roundevenf64 F +GLIBC_2.38 roundevenf64x F +GLIBC_2.38 roundevenl F +GLIBC_2.38 roundf F +GLIBC_2.38 roundf128 F +GLIBC_2.38 roundf32 F +GLIBC_2.38 roundf32x F +GLIBC_2.38 roundf64 F +GLIBC_2.38 roundf64x F +GLIBC_2.38 roundl F +GLIBC_2.38 scalb F +GLIBC_2.38 scalbf F +GLIBC_2.38 scalbl F +GLIBC_2.38 scalbln F +GLIBC_2.38 scalblnf F +GLIBC_2.38 scalblnf128 F +GLIBC_2.38 scalblnf32 F +GLIBC_2.38 scalblnf32x F +GLIBC_2.38 scalblnf64 F +GLIBC_2.38 scalblnf64x F +GLIBC_2.38 scalblnl F +GLIBC_2.38 scalbn F +GLIBC_2.38 scalbnf F +GLIBC_2.38 scalbnf128 F +GLIBC_2.38 scalbnf32 F +GLIBC_2.38 scalbnf32x F +GLIBC_2.38 scalbnf64 F +GLIBC_2.38 scalbnf64x F +GLIBC_2.38 scalbnl F +GLIBC_2.38 setpayload F +GLIBC_2.38 setpayloadf F +GLIBC_2.38 setpayloadf128 F +GLIBC_2.38 setpayloadf32 F +GLIBC_2.38 setpayloadf32x F +GLIBC_2.38 setpayloadf64 F +GLIBC_2.38 setpayloadf64x F +GLIBC_2.38 setpayloadl F +GLIBC_2.38 setpayloadsig F +GLIBC_2.38 setpayloadsigf F +GLIBC_2.38 setpayloadsigf128 F +GLIBC_2.38 setpayloadsigf32 F +GLIBC_2.38 setpayloadsigf32x F +GLIBC_2.38 setpayloadsigf64 F +GLIBC_2.38 setpayloadsigf64x F +GLIBC_2.38 setpayloadsigl F +GLIBC_2.38 signgam D 0x4 +GLIBC_2.38 significand F +GLIBC_2.38 significandf F +GLIBC_2.38 significandl F +GLIBC_2.38 sin F +GLIBC_2.38 sincos F +GLIBC_2.38 sincosf F +GLIBC_2.38 sincosf128 F +GLIBC_2.38 sincosf32 F +GLIBC_2.38 sincosf32x F +GLIBC_2.38 sincosf64 F +GLIBC_2.38 sincosf64x F +GLIBC_2.38 sincosl F +GLIBC_2.38 sinf F +GLIBC_2.38 sinf128 F +GLIBC_2.38 sinf32 F +GLIBC_2.38 sinf32x F +GLIBC_2.38 sinf64 F +GLIBC_2.38 sinf64x F +GLIBC_2.38 sinh F +GLIBC_2.38 sinhf F +GLIBC_2.38 sinhf128 F +GLIBC_2.38 sinhf32 F +GLIBC_2.38 sinhf32x F +GLIBC_2.38 sinhf64 F +GLIBC_2.38 sinhf64x F +GLIBC_2.38 sinhl F +GLIBC_2.38 sinl F +GLIBC_2.38 sqrt F +GLIBC_2.38 sqrtf F +GLIBC_2.38 sqrtf128 F +GLIBC_2.38 sqrtf32 F +GLIBC_2.38 sqrtf32x F +GLIBC_2.38 sqrtf64 F +GLIBC_2.38 sqrtf64x F +GLIBC_2.38 sqrtl F +GLIBC_2.38 tan F +GLIBC_2.38 tanf F +GLIBC_2.38 tanf128 F +GLIBC_2.38 tanf32 F +GLIBC_2.38 tanf32x F +GLIBC_2.38 tanf64 F +GLIBC_2.38 tanf64x F +GLIBC_2.38 tanh F +GLIBC_2.38 tanhf F +GLIBC_2.38 tanhf128 F +GLIBC_2.38 tanhf32 F +GLIBC_2.38 tanhf32x F +GLIBC_2.38 tanhf64 F +GLIBC_2.38 tanhf64x F +GLIBC_2.38 tanhl F +GLIBC_2.38 tanl F +GLIBC_2.38 tgamma F +GLIBC_2.38 tgammaf F +GLIBC_2.38 tgammaf128 F +GLIBC_2.38 tgammaf32 F +GLIBC_2.38 tgammaf32x F +GLIBC_2.38 tgammaf64 F +GLIBC_2.38 tgammaf64x F +GLIBC_2.38 tgammal F +GLIBC_2.38 totalorder F +GLIBC_2.38 totalorderf F +GLIBC_2.38 totalorderf128 F +GLIBC_2.38 totalorderf32 F +GLIBC_2.38 totalorderf32x F +GLIBC_2.38 totalorderf64 F +GLIBC_2.38 totalorderf64x F +GLIBC_2.38 totalorderl F +GLIBC_2.38 totalordermag F +GLIBC_2.38 totalordermagf F +GLIBC_2.38 totalordermagf128 F +GLIBC_2.38 totalordermagf32 F +GLIBC_2.38 totalordermagf32x F +GLIBC_2.38 totalordermagf64 F +GLIBC_2.38 totalordermagf64x F +GLIBC_2.38 totalordermagl F +GLIBC_2.38 trunc F +GLIBC_2.38 truncf F +GLIBC_2.38 truncf128 F +GLIBC_2.38 truncf32 F +GLIBC_2.38 truncf32x F +GLIBC_2.38 truncf64 F +GLIBC_2.38 truncf64x F +GLIBC_2.38 truncl F +GLIBC_2.38 ufromfp F +GLIBC_2.38 ufromfpf F +GLIBC_2.38 ufromfpf128 F +GLIBC_2.38 ufromfpf32 F +GLIBC_2.38 ufromfpf32x F +GLIBC_2.38 ufromfpf64 F +GLIBC_2.38 ufromfpf64x F +GLIBC_2.38 ufromfpl F +GLIBC_2.38 ufromfpx F +GLIBC_2.38 ufromfpxf F +GLIBC_2.38 ufromfpxf128 F +GLIBC_2.38 ufromfpxf32 F +GLIBC_2.38 ufromfpxf32x F +GLIBC_2.38 ufromfpxf64 F +GLIBC_2.38 ufromfpxf64x F +GLIBC_2.38 ufromfpxl F +GLIBC_2.38 y0 F +GLIBC_2.38 y0f F +GLIBC_2.38 y0f128 F +GLIBC_2.38 y0f32 F +GLIBC_2.38 y0f32x F +GLIBC_2.38 y0f64 F +GLIBC_2.38 y0f64x F +GLIBC_2.38 y0l F +GLIBC_2.38 y1 F +GLIBC_2.38 y1f F +GLIBC_2.38 y1f128 F +GLIBC_2.38 y1f32 F +GLIBC_2.38 y1f32x F +GLIBC_2.38 y1f64 F +GLIBC_2.38 y1f64x F +GLIBC_2.38 y1l F +GLIBC_2.38 yn F +GLIBC_2.38 ynf F +GLIBC_2.38 ynf128 F +GLIBC_2.38 ynf32 F +GLIBC_2.38 ynf32x F +GLIBC_2.38 ynf64 F +GLIBC_2.38 ynf64x F +GLIBC_2.38 ynl F diff --git a/sysdeps/mach/hurd/x86_64/libmvec.abilist b/sysdeps/mach/hurd/x86_64/libmvec.abilist new file mode 100644 index 00000000..9ecdf5c9 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libmvec.abilist @@ -0,0 +1,216 @@ +GLIBC_2.38 _ZGVbN2v_acos F +GLIBC_2.38 _ZGVbN2v_acosh F +GLIBC_2.38 _ZGVbN2v_asin F +GLIBC_2.38 _ZGVbN2v_asinh F +GLIBC_2.38 _ZGVbN2v_atan F +GLIBC_2.38 _ZGVbN2v_atanh F +GLIBC_2.38 _ZGVbN2v_cbrt F +GLIBC_2.38 _ZGVbN2v_cos F +GLIBC_2.38 _ZGVbN2v_cosh F +GLIBC_2.38 _ZGVbN2v_erf F +GLIBC_2.38 _ZGVbN2v_erfc F +GLIBC_2.38 _ZGVbN2v_exp F +GLIBC_2.38 _ZGVbN2v_exp10 F +GLIBC_2.38 _ZGVbN2v_exp2 F +GLIBC_2.38 _ZGVbN2v_expm1 F +GLIBC_2.38 _ZGVbN2v_log F +GLIBC_2.38 _ZGVbN2v_log10 F +GLIBC_2.38 _ZGVbN2v_log1p F +GLIBC_2.38 _ZGVbN2v_log2 F +GLIBC_2.38 _ZGVbN2v_sin F +GLIBC_2.38 _ZGVbN2v_sinh F +GLIBC_2.38 _ZGVbN2v_tan F +GLIBC_2.38 _ZGVbN2v_tanh F +GLIBC_2.38 _ZGVbN2vv_atan2 F +GLIBC_2.38 _ZGVbN2vv_hypot F +GLIBC_2.38 _ZGVbN2vv_pow F +GLIBC_2.38 _ZGVbN2vvv_sincos F +GLIBC_2.38 _ZGVbN4v_acosf F +GLIBC_2.38 _ZGVbN4v_acoshf F +GLIBC_2.38 _ZGVbN4v_asinf F +GLIBC_2.38 _ZGVbN4v_asinhf F +GLIBC_2.38 _ZGVbN4v_atanf F +GLIBC_2.38 _ZGVbN4v_atanhf F +GLIBC_2.38 _ZGVbN4v_cbrtf F +GLIBC_2.38 _ZGVbN4v_cosf F +GLIBC_2.38 _ZGVbN4v_coshf F +GLIBC_2.38 _ZGVbN4v_erfcf F +GLIBC_2.38 _ZGVbN4v_erff F +GLIBC_2.38 _ZGVbN4v_exp10f F +GLIBC_2.38 _ZGVbN4v_exp2f F +GLIBC_2.38 _ZGVbN4v_expf F +GLIBC_2.38 _ZGVbN4v_expm1f F +GLIBC_2.38 _ZGVbN4v_log10f F +GLIBC_2.38 _ZGVbN4v_log1pf F +GLIBC_2.38 _ZGVbN4v_log2f F +GLIBC_2.38 _ZGVbN4v_logf F +GLIBC_2.38 _ZGVbN4v_sinf F +GLIBC_2.38 _ZGVbN4v_sinhf F +GLIBC_2.38 _ZGVbN4v_tanf F +GLIBC_2.38 _ZGVbN4v_tanhf F +GLIBC_2.38 _ZGVbN4vv_atan2f F +GLIBC_2.38 _ZGVbN4vv_hypotf F +GLIBC_2.38 _ZGVbN4vv_powf F +GLIBC_2.38 _ZGVbN4vvv_sincosf F +GLIBC_2.38 _ZGVcN4v_acos F +GLIBC_2.38 _ZGVcN4v_acosh F +GLIBC_2.38 _ZGVcN4v_asin F +GLIBC_2.38 _ZGVcN4v_asinh F +GLIBC_2.38 _ZGVcN4v_atan F +GLIBC_2.38 _ZGVcN4v_atanh F +GLIBC_2.38 _ZGVcN4v_cbrt F +GLIBC_2.38 _ZGVcN4v_cos F +GLIBC_2.38 _ZGVcN4v_cosh F +GLIBC_2.38 _ZGVcN4v_erf F +GLIBC_2.38 _ZGVcN4v_erfc F +GLIBC_2.38 _ZGVcN4v_exp F +GLIBC_2.38 _ZGVcN4v_exp10 F +GLIBC_2.38 _ZGVcN4v_exp2 F +GLIBC_2.38 _ZGVcN4v_expm1 F +GLIBC_2.38 _ZGVcN4v_log F +GLIBC_2.38 _ZGVcN4v_log10 F +GLIBC_2.38 _ZGVcN4v_log1p F +GLIBC_2.38 _ZGVcN4v_log2 F +GLIBC_2.38 _ZGVcN4v_sin F +GLIBC_2.38 _ZGVcN4v_sinh F +GLIBC_2.38 _ZGVcN4v_tan F +GLIBC_2.38 _ZGVcN4v_tanh F +GLIBC_2.38 _ZGVcN4vv_atan2 F +GLIBC_2.38 _ZGVcN4vv_hypot F +GLIBC_2.38 _ZGVcN4vv_pow F +GLIBC_2.38 _ZGVcN4vvv_sincos F +GLIBC_2.38 _ZGVcN8v_acosf F +GLIBC_2.38 _ZGVcN8v_acoshf F +GLIBC_2.38 _ZGVcN8v_asinf F +GLIBC_2.38 _ZGVcN8v_asinhf F +GLIBC_2.38 _ZGVcN8v_atanf F +GLIBC_2.38 _ZGVcN8v_atanhf F +GLIBC_2.38 _ZGVcN8v_cbrtf F +GLIBC_2.38 _ZGVcN8v_cosf F +GLIBC_2.38 _ZGVcN8v_coshf F +GLIBC_2.38 _ZGVcN8v_erfcf F +GLIBC_2.38 _ZGVcN8v_erff F +GLIBC_2.38 _ZGVcN8v_exp10f F +GLIBC_2.38 _ZGVcN8v_exp2f F +GLIBC_2.38 _ZGVcN8v_expf F +GLIBC_2.38 _ZGVcN8v_expm1f F +GLIBC_2.38 _ZGVcN8v_log10f F +GLIBC_2.38 _ZGVcN8v_log1pf F +GLIBC_2.38 _ZGVcN8v_log2f F +GLIBC_2.38 _ZGVcN8v_logf F +GLIBC_2.38 _ZGVcN8v_sinf F +GLIBC_2.38 _ZGVcN8v_sinhf F +GLIBC_2.38 _ZGVcN8v_tanf F +GLIBC_2.38 _ZGVcN8v_tanhf F +GLIBC_2.38 _ZGVcN8vv_atan2f F +GLIBC_2.38 _ZGVcN8vv_hypotf F +GLIBC_2.38 _ZGVcN8vv_powf F +GLIBC_2.38 _ZGVcN8vvv_sincosf F +GLIBC_2.38 _ZGVdN4v_acos F +GLIBC_2.38 _ZGVdN4v_acosh F +GLIBC_2.38 _ZGVdN4v_asin F +GLIBC_2.38 _ZGVdN4v_asinh F +GLIBC_2.38 _ZGVdN4v_atan F +GLIBC_2.38 _ZGVdN4v_atanh F +GLIBC_2.38 _ZGVdN4v_cbrt F +GLIBC_2.38 _ZGVdN4v_cos F +GLIBC_2.38 _ZGVdN4v_cosh F +GLIBC_2.38 _ZGVdN4v_erf F +GLIBC_2.38 _ZGVdN4v_erfc F +GLIBC_2.38 _ZGVdN4v_exp F +GLIBC_2.38 _ZGVdN4v_exp10 F +GLIBC_2.38 _ZGVdN4v_exp2 F +GLIBC_2.38 _ZGVdN4v_expm1 F +GLIBC_2.38 _ZGVdN4v_log F +GLIBC_2.38 _ZGVdN4v_log10 F +GLIBC_2.38 _ZGVdN4v_log1p F +GLIBC_2.38 _ZGVdN4v_log2 F +GLIBC_2.38 _ZGVdN4v_sin F +GLIBC_2.38 _ZGVdN4v_sinh F +GLIBC_2.38 _ZGVdN4v_tan F +GLIBC_2.38 _ZGVdN4v_tanh F +GLIBC_2.38 _ZGVdN4vv_atan2 F +GLIBC_2.38 _ZGVdN4vv_hypot F +GLIBC_2.38 _ZGVdN4vv_pow F +GLIBC_2.38 _ZGVdN4vvv_sincos F +GLIBC_2.38 _ZGVdN8v_acosf F +GLIBC_2.38 _ZGVdN8v_acoshf F +GLIBC_2.38 _ZGVdN8v_asinf F +GLIBC_2.38 _ZGVdN8v_asinhf F +GLIBC_2.38 _ZGVdN8v_atanf F +GLIBC_2.38 _ZGVdN8v_atanhf F +GLIBC_2.38 _ZGVdN8v_cbrtf F +GLIBC_2.38 _ZGVdN8v_cosf F +GLIBC_2.38 _ZGVdN8v_coshf F +GLIBC_2.38 _ZGVdN8v_erfcf F +GLIBC_2.38 _ZGVdN8v_erff F +GLIBC_2.38 _ZGVdN8v_exp10f F +GLIBC_2.38 _ZGVdN8v_exp2f F +GLIBC_2.38 _ZGVdN8v_expf F +GLIBC_2.38 _ZGVdN8v_expm1f F +GLIBC_2.38 _ZGVdN8v_log10f F +GLIBC_2.38 _ZGVdN8v_log1pf F +GLIBC_2.38 _ZGVdN8v_log2f F +GLIBC_2.38 _ZGVdN8v_logf F +GLIBC_2.38 _ZGVdN8v_sinf F +GLIBC_2.38 _ZGVdN8v_sinhf F +GLIBC_2.38 _ZGVdN8v_tanf F +GLIBC_2.38 _ZGVdN8v_tanhf F +GLIBC_2.38 _ZGVdN8vv_atan2f F +GLIBC_2.38 _ZGVdN8vv_hypotf F +GLIBC_2.38 _ZGVdN8vv_powf F +GLIBC_2.38 _ZGVdN8vvv_sincosf F +GLIBC_2.38 _ZGVeN16v_acosf F +GLIBC_2.38 _ZGVeN16v_acoshf F +GLIBC_2.38 _ZGVeN16v_asinf F +GLIBC_2.38 _ZGVeN16v_asinhf F +GLIBC_2.38 _ZGVeN16v_atanf F +GLIBC_2.38 _ZGVeN16v_atanhf F +GLIBC_2.38 _ZGVeN16v_cbrtf F +GLIBC_2.38 _ZGVeN16v_cosf F +GLIBC_2.38 _ZGVeN16v_coshf F +GLIBC_2.38 _ZGVeN16v_erfcf F +GLIBC_2.38 _ZGVeN16v_erff F +GLIBC_2.38 _ZGVeN16v_exp10f F +GLIBC_2.38 _ZGVeN16v_exp2f F +GLIBC_2.38 _ZGVeN16v_expf F +GLIBC_2.38 _ZGVeN16v_expm1f F +GLIBC_2.38 _ZGVeN16v_log10f F +GLIBC_2.38 _ZGVeN16v_log1pf F +GLIBC_2.38 _ZGVeN16v_log2f F +GLIBC_2.38 _ZGVeN16v_logf F +GLIBC_2.38 _ZGVeN16v_sinf F +GLIBC_2.38 _ZGVeN16v_sinhf F +GLIBC_2.38 _ZGVeN16v_tanf F +GLIBC_2.38 _ZGVeN16v_tanhf F +GLIBC_2.38 _ZGVeN16vv_atan2f F +GLIBC_2.38 _ZGVeN16vv_hypotf F +GLIBC_2.38 _ZGVeN16vv_powf F +GLIBC_2.38 _ZGVeN16vvv_sincosf F +GLIBC_2.38 _ZGVeN8v_acos F +GLIBC_2.38 _ZGVeN8v_acosh F +GLIBC_2.38 _ZGVeN8v_asin F +GLIBC_2.38 _ZGVeN8v_asinh F +GLIBC_2.38 _ZGVeN8v_atan F +GLIBC_2.38 _ZGVeN8v_atanh F +GLIBC_2.38 _ZGVeN8v_cbrt F +GLIBC_2.38 _ZGVeN8v_cos F +GLIBC_2.38 _ZGVeN8v_cosh F +GLIBC_2.38 _ZGVeN8v_erf F +GLIBC_2.38 _ZGVeN8v_erfc F +GLIBC_2.38 _ZGVeN8v_exp F +GLIBC_2.38 _ZGVeN8v_exp10 F +GLIBC_2.38 _ZGVeN8v_exp2 F +GLIBC_2.38 _ZGVeN8v_expm1 F +GLIBC_2.38 _ZGVeN8v_log F +GLIBC_2.38 _ZGVeN8v_log10 F +GLIBC_2.38 _ZGVeN8v_log1p F +GLIBC_2.38 _ZGVeN8v_log2 F +GLIBC_2.38 _ZGVeN8v_sin F +GLIBC_2.38 _ZGVeN8v_sinh F +GLIBC_2.38 _ZGVeN8v_tan F +GLIBC_2.38 _ZGVeN8v_tanh F +GLIBC_2.38 _ZGVeN8vv_atan2 F +GLIBC_2.38 _ZGVeN8vv_hypot F +GLIBC_2.38 _ZGVeN8vv_pow F +GLIBC_2.38 _ZGVeN8vvv_sincos F diff --git a/sysdeps/mach/hurd/x86_64/libpthread.abilist b/sysdeps/mach/hurd/x86_64/libpthread.abilist new file mode 100644 index 00000000..d8785b4c --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist @@ -0,0 +1,175 @@ +GLIBC_2.38 _IO_flockfile F +GLIBC_2.38 _IO_ftrylockfile F +GLIBC_2.38 _IO_funlockfile F +GLIBC_2.38 __errno_location F +GLIBC_2.38 __h_errno_location F +GLIBC_2.38 __mutex_lock_solid F +GLIBC_2.38 __mutex_unlock_solid F +GLIBC_2.38 __pthread_get_cleanup_stack F +GLIBC_2.38 __pthread_key_create F +GLIBC_2.38 __pthread_kill F +GLIBC_2.38 __pthread_mutex_transfer_np F +GLIBC_2.38 __pthread_spin_destroy F +GLIBC_2.38 __pthread_spin_init F +GLIBC_2.38 __pthread_spin_lock F +GLIBC_2.38 __pthread_spin_trylock F +GLIBC_2.38 __pthread_spin_unlock F +GLIBC_2.38 _cthreads_flockfile F +GLIBC_2.38 _cthreads_ftrylockfile F +GLIBC_2.38 _cthreads_funlockfile F +GLIBC_2.38 _pthread_spin_lock F +GLIBC_2.38 call_once F +GLIBC_2.38 cnd_broadcast F +GLIBC_2.38 cnd_destroy F +GLIBC_2.38 cnd_init F +GLIBC_2.38 cnd_signal F +GLIBC_2.38 cnd_timedwait F +GLIBC_2.38 cnd_wait F +GLIBC_2.38 cthread_detach F +GLIBC_2.38 cthread_fork F +GLIBC_2.38 cthread_getspecific F +GLIBC_2.38 cthread_keycreate F +GLIBC_2.38 cthread_setspecific F +GLIBC_2.38 flockfile F +GLIBC_2.38 ftrylockfile F +GLIBC_2.38 funlockfile F +GLIBC_2.38 mtx_destroy F +GLIBC_2.38 mtx_init F +GLIBC_2.38 mtx_lock F +GLIBC_2.38 mtx_timedlock F +GLIBC_2.38 mtx_trylock F +GLIBC_2.38 mtx_unlock F +GLIBC_2.38 pthread_attr_destroy F +GLIBC_2.38 pthread_attr_getdetachstate F +GLIBC_2.38 pthread_attr_getguardsize F +GLIBC_2.38 pthread_attr_getinheritsched F +GLIBC_2.38 pthread_attr_getschedparam F +GLIBC_2.38 pthread_attr_getschedpolicy F +GLIBC_2.38 pthread_attr_getscope F +GLIBC_2.38 pthread_attr_getstack F +GLIBC_2.38 pthread_attr_getstackaddr F +GLIBC_2.38 pthread_attr_getstacksize F +GLIBC_2.38 pthread_attr_init F +GLIBC_2.38 pthread_attr_setdetachstate F +GLIBC_2.38 pthread_attr_setguardsize F +GLIBC_2.38 pthread_attr_setinheritsched F +GLIBC_2.38 pthread_attr_setschedparam F +GLIBC_2.38 pthread_attr_setschedpolicy F +GLIBC_2.38 pthread_attr_setscope F +GLIBC_2.38 pthread_attr_setstack F +GLIBC_2.38 pthread_attr_setstackaddr F +GLIBC_2.38 pthread_attr_setstacksize F +GLIBC_2.38 pthread_barrier_destroy F +GLIBC_2.38 pthread_barrier_init F +GLIBC_2.38 pthread_barrier_wait F +GLIBC_2.38 pthread_barrierattr_destroy F +GLIBC_2.38 pthread_barrierattr_getpshared F +GLIBC_2.38 pthread_barrierattr_init F +GLIBC_2.38 pthread_barrierattr_setpshared F +GLIBC_2.38 pthread_cancel F +GLIBC_2.38 pthread_clockjoin_np F +GLIBC_2.38 pthread_cond_broadcast F +GLIBC_2.38 pthread_cond_clockwait F +GLIBC_2.38 pthread_cond_destroy F +GLIBC_2.38 pthread_cond_init F +GLIBC_2.38 pthread_cond_signal F +GLIBC_2.38 pthread_cond_timedwait F +GLIBC_2.38 pthread_cond_wait F +GLIBC_2.38 pthread_condattr_destroy F +GLIBC_2.38 pthread_condattr_getclock F +GLIBC_2.38 pthread_condattr_getpshared F +GLIBC_2.38 pthread_condattr_init F +GLIBC_2.38 pthread_condattr_setclock F +GLIBC_2.38 pthread_condattr_setpshared F +GLIBC_2.38 pthread_create F +GLIBC_2.38 pthread_detach F +GLIBC_2.38 pthread_equal F +GLIBC_2.38 pthread_exit F +GLIBC_2.38 pthread_getattr_np F +GLIBC_2.38 pthread_getconcurrency F +GLIBC_2.38 pthread_getcpuclockid F +GLIBC_2.38 pthread_getschedparam F +GLIBC_2.38 pthread_getspecific F +GLIBC_2.38 pthread_hurd_cond_timedwait_np F +GLIBC_2.38 pthread_hurd_cond_wait_np F +GLIBC_2.38 pthread_join F +GLIBC_2.38 pthread_key_create F +GLIBC_2.38 pthread_key_delete F +GLIBC_2.38 pthread_kill F +GLIBC_2.38 pthread_mutex_clocklock F +GLIBC_2.38 pthread_mutex_consistent F +GLIBC_2.38 pthread_mutex_consistent_np F +GLIBC_2.38 pthread_mutex_destroy F +GLIBC_2.38 pthread_mutex_getprioceiling F +GLIBC_2.38 pthread_mutex_init F +GLIBC_2.38 pthread_mutex_lock F +GLIBC_2.38 pthread_mutex_setprioceiling F +GLIBC_2.38 pthread_mutex_timedlock F +GLIBC_2.38 pthread_mutex_transfer_np F +GLIBC_2.38 pthread_mutex_trylock F +GLIBC_2.38 pthread_mutex_unlock F +GLIBC_2.38 pthread_mutexattr_destroy F +GLIBC_2.38 pthread_mutexattr_getprioceiling F +GLIBC_2.38 pthread_mutexattr_getprotocol F +GLIBC_2.38 pthread_mutexattr_getpshared F +GLIBC_2.38 pthread_mutexattr_getrobust F +GLIBC_2.38 pthread_mutexattr_getrobust_np F +GLIBC_2.38 pthread_mutexattr_gettype F +GLIBC_2.38 pthread_mutexattr_init F +GLIBC_2.38 pthread_mutexattr_setprioceiling F +GLIBC_2.38 pthread_mutexattr_setprotocol F +GLIBC_2.38 pthread_mutexattr_setpshared F +GLIBC_2.38 pthread_mutexattr_setrobust F +GLIBC_2.38 pthread_mutexattr_setrobust_np F +GLIBC_2.38 pthread_mutexattr_settype F +GLIBC_2.38 pthread_once F +GLIBC_2.38 pthread_rwlock_clockrdlock F +GLIBC_2.38 pthread_rwlock_clockwrlock F +GLIBC_2.38 pthread_rwlock_destroy F +GLIBC_2.38 pthread_rwlock_init F +GLIBC_2.38 pthread_rwlock_rdlock F +GLIBC_2.38 pthread_rwlock_timedrdlock F +GLIBC_2.38 pthread_rwlock_timedwrlock F +GLIBC_2.38 pthread_rwlock_tryrdlock F +GLIBC_2.38 pthread_rwlock_trywrlock F +GLIBC_2.38 pthread_rwlock_unlock F +GLIBC_2.38 pthread_rwlock_wrlock F +GLIBC_2.38 pthread_rwlockattr_destroy F +GLIBC_2.38 pthread_rwlockattr_getpshared F +GLIBC_2.38 pthread_rwlockattr_init F +GLIBC_2.38 pthread_rwlockattr_setpshared F +GLIBC_2.38 pthread_setcancelstate F +GLIBC_2.38 pthread_setcanceltype F +GLIBC_2.38 pthread_setconcurrency F +GLIBC_2.38 pthread_setschedparam F +GLIBC_2.38 pthread_setschedprio F +GLIBC_2.38 pthread_setspecific F +GLIBC_2.38 pthread_sigmask F +GLIBC_2.38 pthread_spin_destroy F +GLIBC_2.38 pthread_spin_init F +GLIBC_2.38 pthread_spin_lock F +GLIBC_2.38 pthread_spin_trylock F +GLIBC_2.38 pthread_spin_unlock F +GLIBC_2.38 pthread_testcancel F +GLIBC_2.38 pthread_timedjoin_np F +GLIBC_2.38 pthread_tryjoin_np F +GLIBC_2.38 pthread_yield F +GLIBC_2.38 sem_clockwait F +GLIBC_2.38 sem_close F +GLIBC_2.38 sem_destroy F +GLIBC_2.38 sem_getvalue F +GLIBC_2.38 sem_init F +GLIBC_2.38 sem_open F +GLIBC_2.38 sem_post F +GLIBC_2.38 sem_timedwait F +GLIBC_2.38 sem_trywait F +GLIBC_2.38 sem_unlink F +GLIBC_2.38 sem_wait F +GLIBC_2.38 thrd_create F +GLIBC_2.38 thrd_detach F +GLIBC_2.38 thrd_exit F +GLIBC_2.38 thrd_join F +GLIBC_2.38 tss_create F +GLIBC_2.38 tss_delete F +GLIBC_2.38 tss_get F +GLIBC_2.38 tss_set F diff --git a/sysdeps/mach/hurd/x86_64/libresolv.abilist b/sysdeps/mach/hurd/x86_64/libresolv.abilist new file mode 100644 index 00000000..c3dd560d --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libresolv.abilist @@ -0,0 +1,55 @@ +GLIBC_2.38 __b64_ntop F +GLIBC_2.38 __b64_pton F +GLIBC_2.38 __dn_count_labels F +GLIBC_2.38 __fp_nquery F +GLIBC_2.38 __fp_query F +GLIBC_2.38 __fp_resstat F +GLIBC_2.38 __hostalias F +GLIBC_2.38 __loc_aton F +GLIBC_2.38 __loc_ntoa F +GLIBC_2.38 __p_cdname F +GLIBC_2.38 __p_cdnname F +GLIBC_2.38 __p_class F +GLIBC_2.38 __p_class_syms D 0xa8 +GLIBC_2.38 __p_fqname F +GLIBC_2.38 __p_fqnname F +GLIBC_2.38 __p_option F +GLIBC_2.38 __p_query F +GLIBC_2.38 __p_rcode F +GLIBC_2.38 __p_time F +GLIBC_2.38 __p_type F +GLIBC_2.38 __p_type_syms D 0x450 +GLIBC_2.38 __putlong F +GLIBC_2.38 __putshort F +GLIBC_2.38 __res_close F +GLIBC_2.38 __res_hostalias F +GLIBC_2.38 __res_isourserver F +GLIBC_2.38 __res_nameinquery F +GLIBC_2.38 __res_queriesmatch F +GLIBC_2.38 __sym_ntop F +GLIBC_2.38 __sym_ntos F +GLIBC_2.38 __sym_ston F +GLIBC_2.38 _getlong F +GLIBC_2.38 _getshort F +GLIBC_2.38 inet_net_ntop F +GLIBC_2.38 inet_net_pton F +GLIBC_2.38 inet_neta F +GLIBC_2.38 ns_datetosecs F +GLIBC_2.38 ns_format_ttl F +GLIBC_2.38 ns_get16 F +GLIBC_2.38 ns_get32 F +GLIBC_2.38 ns_initparse F +GLIBC_2.38 ns_makecanon F +GLIBC_2.38 ns_msg_getflag F +GLIBC_2.38 ns_name_ntol F +GLIBC_2.38 ns_name_rollback F +GLIBC_2.38 ns_parse_ttl F +GLIBC_2.38 ns_parserr F +GLIBC_2.38 ns_put16 F +GLIBC_2.38 ns_put32 F +GLIBC_2.38 ns_samedomain F +GLIBC_2.38 ns_samename F +GLIBC_2.38 ns_skiprr F +GLIBC_2.38 ns_sprintrr F +GLIBC_2.38 ns_sprintrrf F +GLIBC_2.38 ns_subdomain F diff --git a/sysdeps/mach/hurd/x86_64/librt.abilist b/sysdeps/mach/hurd/x86_64/librt.abilist new file mode 100644 index 00000000..fa148abb --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/librt.abilist @@ -0,0 +1,33 @@ +GLIBC_2.38 __mq_open_2 F +GLIBC_2.38 aio_cancel F +GLIBC_2.38 aio_cancel64 F +GLIBC_2.38 aio_error F +GLIBC_2.38 aio_error64 F +GLIBC_2.38 aio_fsync F +GLIBC_2.38 aio_fsync64 F +GLIBC_2.38 aio_init F +GLIBC_2.38 aio_read F +GLIBC_2.38 aio_read64 F +GLIBC_2.38 aio_return F +GLIBC_2.38 aio_return64 F +GLIBC_2.38 aio_suspend F +GLIBC_2.38 aio_suspend64 F +GLIBC_2.38 aio_write F +GLIBC_2.38 aio_write64 F +GLIBC_2.38 lio_listio F +GLIBC_2.38 lio_listio64 F +GLIBC_2.38 mq_close F +GLIBC_2.38 mq_getattr F +GLIBC_2.38 mq_notify F +GLIBC_2.38 mq_open F +GLIBC_2.38 mq_receive F +GLIBC_2.38 mq_send F +GLIBC_2.38 mq_setattr F +GLIBC_2.38 mq_timedreceive F +GLIBC_2.38 mq_timedsend F +GLIBC_2.38 mq_unlink F +GLIBC_2.38 timer_create F +GLIBC_2.38 timer_delete F +GLIBC_2.38 timer_getoverrun F +GLIBC_2.38 timer_gettime F +GLIBC_2.38 timer_settime F diff --git a/sysdeps/mach/hurd/x86_64/shlib-versions b/sysdeps/mach/hurd/x86_64/shlib-versions new file mode 100644 index 00000000..fddbc1e3 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/shlib-versions @@ -0,0 +1 @@ +DEFAULT GLIBC_2.38 From patchwork Sat Apr 29 20:18:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 68559 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7EEFF3858425 for ; Sat, 29 Apr 2023 20:21:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7EEFF3858425 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682799662; bh=H2591BAA3jw7pAecNpT5f05AJDJoNxD4ZezWLXPmZ4Y=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=sZ/4lhS7czZ+PyPN5VDN/nQnriiLr2esoivfYJtApKmgWHrZEzVfKEDpxLzoPVlaK cfTbGSmT3YOgnkkl4QUSg6Tvv/LNvlvLLerY88VMTAMNjneQnXUR1MDieh+Y8vE06l ddlqGIZRWNQ5yIc+0Bvy3Oe9KWh7kgwgXSmuAPLM= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com [IPv6:2a00:1450:4864:20::131]) by sourceware.org (Postfix) with ESMTPS id A5007385843A for ; Sat, 29 Apr 2023 20:18:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A5007385843A Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-4ec9c7c6986so1465291e87.0 for ; Sat, 29 Apr 2023 13:18:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682799510; x=1685391510; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H2591BAA3jw7pAecNpT5f05AJDJoNxD4ZezWLXPmZ4Y=; b=cWJCHX85YCEfEQ1sKrghQObQGGiSJfjc47dlvi335Syaj4hcHoav7Zuax6Nrrj/iyq TrsJpRmQglzYxKE9l8qnXexoTMk4MVj9DNtw5bwF7Da9v8bKHEbESh4EgjeV4ao5ECvV UVn6u56TOhAbAux+lhB9He8PrEhLoPzYFxKlSIfk+gCG5ESmFoSFY2GiQ1TH/I6yGb8U osx3LUy2KCODTX+hfCbht0tHJ14g20cazV75ucT37ZDSFoyjp/003qx9iCygu3u1yqRc gPfHMWCY8cHkgBRUeW6c/ADf/OyA2xoxfGfJwWHuIUGFx8lydFKfcK92yj9QyYB23RXs 3Ehw== X-Gm-Message-State: AC+VfDxGsmhJp0ej1UYWwhUwjXCqPBpBiMzKApJUd590JahB93WBEoaK 7gcl6AtDofZQ13O6iHmb6CEzy0JUk6pHtg== X-Google-Smtp-Source: ACHHUZ5PRmkPCatibNycXh/zUBDWr3PiSYdcDn9zlL6CfaBR2FwVSuEY1xehXxnY6so3zJS+dyRsfA== X-Received: by 2002:a19:ad4d:0:b0:4ea:fa26:2378 with SMTP id s13-20020a19ad4d000000b004eafa262378mr2331646lfd.23.1682799509804; Sat, 29 Apr 2023 13:18:29 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:a7ac:6f45:1787:abcc]) by smtp.gmail.com with ESMTPSA id h25-20020ac250d9000000b004eb09820adbsm3905451lfm.105.2023.04.29.13.18.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Apr 2023 13:18:29 -0700 (PDT) To: libc-alpha@sourceware.org Cc: bug-hurd@gnu.org, Samuel Thibault Subject: [RFC PATCH v3 5/6] hurd: Make it possible to call memcpy very early Date: Sat, 29 Apr 2023 23:18:21 +0300 Message-Id: <20230429201822.2605207-6-bugaevc@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230429201822.2605207-1-bugaevc@gmail.com> References: <20230429201822.2605207-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Sergey Bugaev via Libc-alpha From: Sergey Bugaev Reply-To: Sergey Bugaev Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Normally, in static builds, the first code that runs is _start, in e.g. sysdeps/x86_64/start.S, which quickly calls __libc_start_main, passing it the argv etc. Among the first things __libc_start_main does is initializing the tunables (based on env), then CPU features, and then calls _dl_relocate_static_pie (). Specifically, this runs ifunc resolvers to pick, based on the CPU features discovered earlier, the most suitable implementation of "string" functions such as memcpy. Before that point, calling memcpy (or other ifunc-resolved functions) will not work. In the Hurd port, things are more complex. In order to get argv/env for our process, glibc normally needs to do an RPC to the exec server, unless our args/env are already located on the stack (which is what happens to bootstrap processes spawned by GNU Mach). Fetching our argv/env from the exec server has to be done before the call to __libc_start_main, since we need to know what our argv/env are to pass them to __libc_start_main. On the other hand, the implementation of the RPC (and other initial setup needed on the Hurd before __libc_start_main can be run) is not very trivial. In particular, it may (and on x86_64, will) use memcpy. But as described above, calling memcpy before __libc_start_main can not work, since the GOT entry for it is not yet initialized at that point. Work around this by pre-filling the GOT entry with the baseline version of memcpy, __memcpy_sse2_unaligned. This makes it possible for early calls to memcpy to just work. The initial value of the GOT entry is unused on x86_64, and changing it won't interfere with the relocation being performed later: once _dl_relocate_static_pie () is called, the baseline version will get replaced with the most suitable one, and that is what subsequent calls of memcpy are going to call. Checked on x86_64-gnu. Signed-off-by: Sergey Bugaev --- Changes since v1: - drop the stpncpy, since it's apparently not required during early startup; - as a result of the above, there are no longer any changes to the i386 version; - drop the PIC/non-PIC split, we can always use %rip-relative addressing on x86_64; - as mentioned somewhere in the v1 thread, I have, since posting the v1, actually gone and checked that the relocations do work and the proper, more effecient memcpy version does get installed into the GOT slot and invoked whenever anything calls memcpy; - convinced myself that this is not a terrible hack but rather an OK solution; - worked out how this would be done on an architecture that (like i386, unlike x86_64) does need the original value in the GOT to perform the relocation, but (unlike i386, like x86_64) still uses an ifunc-selected memcpy in static builds: namely, we'd simply put the original ifunc address back into the GOT slot a few lines below, after the call to _hurd_stack_setup. sysdeps/mach/hurd/x86_64/static-start.S | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sysdeps/mach/hurd/x86_64/static-start.S b/sysdeps/mach/hurd/x86_64/static-start.S index 982d3d52..cc8e2410 100644 --- a/sysdeps/mach/hurd/x86_64/static-start.S +++ b/sysdeps/mach/hurd/x86_64/static-start.S @@ -19,6 +19,9 @@ .text .globl _start _start: + + leaq __memcpy_sse2_unaligned(%rip), %rax + movq %rax, memcpy@GOTPCREL(%rip) call _hurd_stack_setup xorq %rdx, %rdx jmp _start1 From patchwork Sat Apr 29 20:18:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 68557 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 64C523855584 for ; Sat, 29 Apr 2023 20:19:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 64C523855584 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682799588; bh=eCQ4lw/qpfLDQXtznPiphpTVbnN0AX4kGzz5kJ0RpPE=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=I8wde2uXmnATUtWcIuocBdkbElr198Q8PgjHfEc/23FJVxP0Go/uSdjrjrkn+68kP nG88U3yqBqL+WdCMLCO8JWXnUYKNQZD82leG+kZlcJvk8Oht4ZoAc6IM9+Un79xuOU SGOumTCRMUpLfbrTlw6XHt9uW4LyHamdYWGV597Q= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) by sourceware.org (Postfix) with ESMTPS id CC4A03858C30 for ; Sat, 29 Apr 2023 20:18:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CC4A03858C30 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-4f0025f4686so1490735e87.3 for ; Sat, 29 Apr 2023 13:18:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682799511; x=1685391511; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eCQ4lw/qpfLDQXtznPiphpTVbnN0AX4kGzz5kJ0RpPE=; b=OFMF4KOUtxcxla7F27xmRUa5GOf6XP6wTRzd1Sxgk3WBeUljkaFqoYUn6wvMTDhNMi t7TKaChdZzVyyaHGmEWIeqQFJ/Lp1Uj27mYUhh4btPULvga8GwD0zAA90yX2QI8KK3+E NfWux5SCLW8euB8B2g13X5fgXFow5j2B1iS1/GxAbJzZAoyXkyRBFcBNm+5NkYInT1oZ u910KaXMSDgsJQqTRi8CJdbgces9u8g35cciAjIY6bmUP934bGhkTGxjwbdi//A0BTWJ CgZfmVwbavvjx7pmTjsfiGREKcmicnDYfjWEFiQ5M682p4ROiv80qO1crVnQAX1cbjLx gwLA== X-Gm-Message-State: AC+VfDzVbyH9XHZKDlzRAhRW/9cnI6+qST8CNJZZNlT7XXlTCgqM6KkI LwaqcuYJUcp10CzsBW3zcAM6qTiNhhb0gA== X-Google-Smtp-Source: ACHHUZ6aPhevaA1h4FPH4Wx451SuNm5HtVTC6VKiaWHDJzh81wZjzGp1sYTpOHfwKZSKdiDITOQccw== X-Received: by 2002:a05:651c:10c:b0:2a9:28fb:2983 with SMTP id a12-20020a05651c010c00b002a928fb2983mr2320541ljb.45.1682799510828; Sat, 29 Apr 2023 13:18:30 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:a7ac:6f45:1787:abcc]) by smtp.gmail.com with ESMTPSA id h25-20020ac250d9000000b004eb09820adbsm3905451lfm.105.2023.04.29.13.18.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Apr 2023 13:18:30 -0700 (PDT) To: libc-alpha@sourceware.org Cc: bug-hurd@gnu.org, Samuel Thibault Subject: [DO NOT PUSH PATCH v3 6/6] TMP hurd: Lower BRK_START Date: Sat, 29 Apr 2023 23:18:22 +0300 Message-Id: <20230429201822.2605207-7-bugaevc@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230429201822.2605207-1-bugaevc@gmail.com> References: <20230429201822.2605207-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Sergey Bugaev via Libc-alpha From: Sergey Bugaev Reply-To: Sergey Bugaev Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" ...until gnumach learns to support higher addresses --- This is not meant to be pushed, but you're going to need this patch to run glibc on the current builds of gnumach. sysdeps/mach/hurd/x86_64/vm_param.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sysdeps/mach/hurd/x86_64/vm_param.h b/sysdeps/mach/hurd/x86_64/vm_param.h index f269afb3..e35596bd 100644 --- a/sysdeps/mach/hurd/x86_64/vm_param.h +++ b/sysdeps/mach/hurd/x86_64/vm_param.h @@ -19,6 +19,7 @@ #define _X86_64_VM_PARAM_H /* Arbitrary start of the brk. This is after usual binary and library mappings. */ -#define BRK_START 0x200000000000 +// #define BRK_START 0x200000000000 +#define BRK_START 0x20000000 #endif /* x86_64/vm_param.h */