From patchwork Sun Mar 19 15:09:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66584 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 1B434385084C for ; Sun, 19 Mar 2023 15:11:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1B434385084C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238684; bh=M8hSFKdBo/+nGNkBf/kSELCVlqKEZwymUBpT1y3S6Rg=; 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=pyp3g3xe+qjPIBvvFTK2Y889ysoyWhWGPua4nAx7IPy0jQRMFaYcAZ9hwIjwrfbA2 ZzONHoverP4zxRfdHqsJQb9fowvgOLX5BEWPe2Y9HW6ze08Cc9xv/VNAIdf7avn7GU GZR+0lBxgYCw/4hqtAcYXAmKUsuYZrclyJ8osngI= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) by sourceware.org (Postfix) with ESMTPS id B49FB3858C53 for ; Sun, 19 Mar 2023 15:10:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B49FB3858C53 Received: by mail-lj1-x229.google.com with SMTP id e11so1053298lji.8 for ; Sun, 19 Mar 2023 08:10:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238657; 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=M8hSFKdBo/+nGNkBf/kSELCVlqKEZwymUBpT1y3S6Rg=; b=olGVGbTMF1FwwdYkVaPPuFmV4A9ppStSVdMkGXv69UnWgcXrzsI0FHVEhz0dwQd97j YJh6J7R1+orxoqPSzio2fNo0yJpdGj9xm+MShE6VUDgcD9mu4pcRQQu5Jp2mlq1UV0mu PZ+uajWUC9MsGbbX6Z7smluegK/CD/ETErCgusJemwv0a2tRuJSVi3vVpc6omfpEhkKu oWohbPT0Y5iP7oBE+RsmxTWyD4d1fTvI+4XDAOlZNrD0CEwybOcLjlz6avPUT/gKr4QS aZReyRllXreCCBsO+9DuJVgkasUQH7MBbdgZdSJKLv84okuZkvdLCjXrMtO0sTjEsACI /ryQ== X-Gm-Message-State: AO0yUKU4lTRze1ZkeTDg2TM4rTL6KpkVEgnLjV3r0Mwhtn1+sRNMDQIo /O71DOvHpguPaqxoBvWgrHBjvD2nvO9IKg== X-Google-Smtp-Source: AK7set89VgEA2YF3NjCgZObKPqX7PG1MwWG2yXNfQoFp8niqtO3uTNOXhzYtWKnCwLE7Z3qePnmtPA== X-Received: by 2002:a05:651c:512:b0:293:4b9b:1f6a with SMTP id o18-20020a05651c051200b002934b9b1f6amr6551879ljp.7.1679238656801; Sun, 19 Mar 2023 08:10:56 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.10.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:10:56 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH gnumach 01/34] Add i386_fsgs_base_state Date: Sun, 19 Mar 2023 18:09:44 +0300 Message-Id: <20230319151017.531737-2-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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" --- i386/include/mach/i386/thread_status.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/i386/include/mach/i386/thread_status.h b/i386/include/mach/i386/thread_status.h index 3de22ff3..32e40686 100644 --- a/i386/include/mach/i386/thread_status.h +++ b/i386/include/mach/i386/thread_status.h @@ -57,6 +57,7 @@ #define i386_V86_ASSIST_STATE 4 #define i386_REGS_SEGS_STATE 5 #define i386_DEBUG_STATE 6 +#define i386_FSGS_BASE_STATE 7 /* * This structure is used for both @@ -179,4 +180,11 @@ struct i386_debug_state { #define i386_DEBUG_STATE_COUNT \ (sizeof(struct i386_debug_state)/sizeof(unsigned int)) +struct i386_fsgs_base_state { + unsigned long fs_base; + unsigned long gs_base; +}; +#define i386_FSGS_BASE_STATE_COUNT \ + (sizeof(struct i386_fsgs_base_state)/sizeof(unsigned int)) + #endif /* _MACH_I386_THREAD_STATUS_H_ */ From patchwork Sun Mar 19 15:09:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66585 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 A523B385559A for ; Sun, 19 Mar 2023 15:11:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A523B385559A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238692; bh=dByo/HxiqT+fe7sZFHuBekb+zmhg/JfjguygnsfB6kE=; 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=bcoo42Zag2ZCQQGvLNIlMXB/r+uBFzAG6VhT9Tu2R9Cjk6f0VY7TsT2BLHi8W/CGc +eRI+3QE65a9RXZPl/2M5+4b4YYTBn43UXlDX2e6anL52WpfCjvhmv2uqx9QpHVxYT oh6y9N0rracS3krlW+bYy8Vghe4fzz1mlyg6Q93Q= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com [IPv6:2a00:1450:4864:20::235]) by sourceware.org (Postfix) with ESMTPS id CF1E53858C60 for ; Sun, 19 Mar 2023 15:10:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CF1E53858C60 Received: by mail-lj1-x235.google.com with SMTP id 20so2559195lju.0 for ; Sun, 19 Mar 2023 08:10:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238658; 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=dByo/HxiqT+fe7sZFHuBekb+zmhg/JfjguygnsfB6kE=; b=2dRYTEVVnsoVzGj+MpHA2uv8t7l6snOD6eI90b3QpZ6RIt2r1wgY/S2ikK4Fp9YUNX xfhtZ19iSoaM0kH0P1fs+sDko+7XXmWAse6+VaG45jD4enDiks20nBkWq9KvzG7lYZFx nLwb4IzeqgFc6Bp1g1lvDStf15aWqgwoyyltwM0F6S9UTNMZO3R7W519pQpDEIkiFkSq v44URZqiTTpWul6SGKCQnAnU5qx4d0VKkJhIkmO3LqkPFze13r6zcmHINDHAKQyHpEz/ ur6NdCuxNINUZjXTGiuOUcXBSHMp0j7hjzpy9ZjMWiXPY58sQBKRYCr28HhRie3orMDn tFgw== X-Gm-Message-State: AO0yUKWF3LSlJnroMyVp0/esqdHMS+uLZfLVWaqbca/NuHUCPiVvJzXw B7WIDsR96O4MNFCLLalnzzPhPkREcDyK2g== X-Google-Smtp-Source: AK7set9HaZyQJNj3GsHCM7Iz2GbvCEpwQzlfOk6ao/xa0m0D69C9je56qcOq1OAdWNzS7eqrUj4ubA== X-Received: by 2002:a2e:9c14:0:b0:295:c377:3eed with SMTP id s20-20020a2e9c14000000b00295c3773eedmr4831576lji.21.1679238657720; Sun, 19 Mar 2023 08:10:57 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.10.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:10:57 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH gnumach 02/34] Remove bootstrap.defs Date: Sun, 19 Mar 2023 18:09:45 +0300 Message-Id: <20230319151017.531737-3-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-10.8 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 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" As far as I can see, this file was imported in the very beginning of GNU Mach history, and unused since then. Nobody implements or uses this interface. GNU Mach uses a different way to pass the privileged ports to the bootstrap tasks: instead of the task(s) actively asking for the ports in an RPC, the ports are preemptively inserted into the IPC space(s) of the task(s), as configured by the boot script. Remove bootstrap.defs so as to not confuse anyone into thinking it works. --- Makefrag.am | 1 - include/mach/bootstrap.defs | 49 ------------------------------------- 2 files changed, 50 deletions(-) delete mode 100644 include/mach/bootstrap.defs diff --git a/Makefrag.am b/Makefrag.am index 358f8db3..5d4f2c48 100644 --- a/Makefrag.am +++ b/Makefrag.am @@ -367,7 +367,6 @@ include_device_HEADERS = \ include_machdir = $(includedir)/mach include_mach_HEADERS = \ - include/mach/bootstrap.defs \ include/mach/default_pager.defs \ include/mach/default_pager_helper.defs \ include/mach/default_pager_types.defs \ diff --git a/include/mach/bootstrap.defs b/include/mach/bootstrap.defs deleted file mode 100644 index 0b233e4a..00000000 --- a/include/mach/bootstrap.defs +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1992 Carnegie Mellon University - * All Rights Reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ - -subsystem bootstrap 999999; - -#include - -ServerPrefix do_; - -/* - * The old form of the bootstrap_privileged_ports RPC - * is not expressible in Mig syntax, because the reply - * message doesn't have a return code. - */ - -skip; /* old bootstrap_privileged_ports */ - -/* - * The startup task can make this call on its bootstrap port - * to get the privileged ports. - */ - -routine bootstrap_privileged_ports( - bootstrap : mach_port_t; - out priv_host : mach_port_t; - out priv_device : mach_port_t); From patchwork Sun Mar 19 15:09:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66587 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 096143850426 for ; Sun, 19 Mar 2023 15:12:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 096143850426 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238741; bh=Hi6pv8C/3Iidrr7UfYWulgb88riVOzltFPGT9Lltaug=; 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=lfV7YvLRC3sXtvzPYfgBvVSteIK/JbgqAfB+tTZne3Ox9tUi1TqnaTu5Bty6M0fMP Mt2334S6AOmQm4u/NmQ8NwpbrGzn+cMm3z4JzpZO2JTdwjbFpLyl7xtPq4FMFUPCPu /OD6VgfQ6bMXb3CKDyZkyAhFaB/5g5ciKPusfwB8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by sourceware.org (Postfix) with ESMTPS id 75E9C3858C62 for ; Sun, 19 Mar 2023 15:11:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 75E9C3858C62 Received: by mail-lf1-x133.google.com with SMTP id o8so12084213lfo.0 for ; Sun, 19 Mar 2023 08:11:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238658; 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=Hi6pv8C/3Iidrr7UfYWulgb88riVOzltFPGT9Lltaug=; b=y6ANB/uvws3TneFQGkCGzkUBNHSqkL9OUh8h8kx7zrXVbnY1PmtiU3VgT8cfRxEbOf flDB6BHxyT/XAnaTh9sATDL5eQG11LzxT9o/j7qCXFHXZNEfQonV5ZyG101KqTVjVE+D kA2hqvqM0n31Fh+34Xj3aWnC862g86xNwC0PE0vmupMTDENE8tUEgKdTTYh7uXSR//3f 4Mn0YtwxeVX21UaIeQKZrbWs33gyl1F0d5ZKhwJytz4jlO4XY+clpUr8FMz9UH0PDpiY o3j9HBLIUuPpqgCNuM2QXnBEd9Sh/PFqXwCZUw8av3vvcB/eQbtWgEZZLLVh5+UQOG7B w+9Q== X-Gm-Message-State: AO0yUKV0J+U3SB1mL9RTbjQVv361F36v10qn5NaVzForDRA9cRSfqJwd iTaiPSB/boPiigbNMto3PWQQgm9I14+SoQ== X-Google-Smtp-Source: AK7set/P2nuQmaDtVHC50bv++lWzFcAjLLIk025FWKOsptjs9781nWljOYxo9qwUBiufdwPuW3eFmQ== X-Received: by 2002:ac2:4e4d:0:b0:4e8:4412:1d95 with SMTP id f13-20020ac24e4d000000b004e844121d95mr5327702lfr.29.1679238658599; Sun, 19 Mar 2023 08:10:58 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.10.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:10:58 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH gnumach 03/34] Make exception subcode a long Date: Sun, 19 Mar 2023 18:09:46 +0300 Message-Id: <20230319151017.531737-4-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-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, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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" On EXC_BAD_ACCESS, exception subcode is used to pass the faulting memory address, so it needs to be (at least) pointer-sized. Thus, make it into a long. This requires matching changes in glibc and the Hurd. --- NOTE: Most of this was a pretty mechanical change, but I'm not very sure I got the exc_subcode_proto right; please do check. doc/mach.texi | 4 ++-- i386/i386/trap.c | 2 +- i386/i386/trap.h | 2 +- include/mach/exc.defs | 2 +- kern/exception.c | 40 ++++++++++++++++++++++++++++------------ kern/exception.h | 6 +++--- kern/thread.h | 2 +- 7 files changed, 37 insertions(+), 21 deletions(-) diff --git a/doc/mach.texi b/doc/mach.texi index 2c22fa38..fdc36d45 100644 --- a/doc/mach.texi +++ b/doc/mach.texi @@ -4830,11 +4830,11 @@ argument set to @code{THREAD_EXCEPTION_PORT}. @node Exceptions @subsection Exceptions -@deftypefun kern_return_t catch_exception_raise (@w{mach_port_t @var{exception_port}}, @w{thread_t @var{thread}}, @w{task_t @var{task}}, @w{int @var{exception}}, @w{int @var{code}}, @w{int @var{subcode}}) +@deftypefun kern_return_t catch_exception_raise (@w{mach_port_t @var{exception_port}}, @w{thread_t @var{thread}}, @w{task_t @var{task}}, @w{int @var{exception}}, @w{int @var{code}}, @w{long @var{subcode}}) XXX Fixme @end deftypefun -@deftypefun kern_return_t exception_raise (@w{mach_port_t @var{exception_port}}, @w{mach_port_t @var{thread}}, @w{mach_port_t @var{task}}, @w{integer_t @var{exception}}, @w{integer_t @var{code}}, @w{integer_t @var{subcode}}) +@deftypefun kern_return_t exception_raise (@w{mach_port_t @var{exception_port}}, @w{mach_port_t @var{thread}}, @w{mach_port_t @var{task}}, @w{integer_t @var{exception}}, @w{integer_t @var{code}}, @w{long_integer_t @var{subcode}}) XXX Fixme @end deftypefun diff --git a/i386/i386/trap.c b/i386/i386/trap.c index 34ccb6a5..f7bd8e38 100644 --- a/i386/i386/trap.c +++ b/i386/i386/trap.c @@ -628,7 +628,7 @@ void i386_exception( int exc, int code, - int subcode) + long subcode) { spl_t s; diff --git a/i386/i386/trap.h b/i386/i386/trap.h index d9df7afa..e82164d0 100644 --- a/i386/i386/trap.h +++ b/i386/i386/trap.h @@ -40,7 +40,7 @@ void i386_exception( int exc, int code, - int subcode) __attribute__ ((noreturn)); + long subcode) __attribute__ ((noreturn)); extern void thread_kdb_return(void); diff --git a/include/mach/exc.defs b/include/mach/exc.defs index 94af828c..28638e2f 100644 --- a/include/mach/exc.defs +++ b/include/mach/exc.defs @@ -44,4 +44,4 @@ routine exception_raise( task : mach_port_t; exception : integer_t; code : integer_t; - subcode : integer_t); + subcode : rpc_long_integer_t); diff --git a/kern/exception.c b/kern/exception.c index 1014b3ed..10435b5c 100644 --- a/kern/exception.c +++ b/kern/exception.c @@ -85,9 +85,9 @@ boolean_t debug_user_with_kdb = FALSE; void exception( - integer_t _exception, - integer_t code, - integer_t subcode) + integer_t _exception, + integer_t code, + long_integer_t subcode) { ipc_thread_t self = current_thread(); ipc_port_t exc_port; @@ -157,9 +157,9 @@ exception( void exception_try_task( - integer_t _exception, - integer_t code, - integer_t subcode) + integer_t _exception, + integer_t code, + long_integer_t subcode) { ipc_thread_t self = current_thread(); task_t task = self->task; @@ -277,11 +277,17 @@ struct mach_exception { mach_msg_type_t codeType; integer_t code; mach_msg_type_t subcodeType; - integer_t subcode; + rpc_long_integer_t subcode; }; #define INTEGER_T_SIZE_IN_BITS (8 * sizeof(integer_t)) #define INTEGER_T_TYPE MACH_MSG_TYPE_INTEGER_T +#define RPC_LONG_INTEGER_T_SIZE_IN_BITS (8 * sizeof(rpc_long_integer_t)) +#if defined(__x86_64__) && !defined(USER32) +#define RPC_LONG_INTEGER_T_TYPE MACH_MSG_TYPE_INTEGER_64 +#else +#define RPC_LONG_INTEGER_T_TYPE MACH_MSG_TYPE_INTEGER_32 +#endif /* in mach/machine/vm_types.h */ mach_msg_type_t exc_port_proto = { @@ -304,6 +310,16 @@ mach_msg_type_t exc_code_proto = { /* msgt_unused = */ 0 }; +mach_msg_type_t exc_subcode_proto = { + /* msgt_name = */ RPC_LONG_INTEGER_T_TYPE, + /* msgt_size = */ RPC_LONG_INTEGER_T_SIZE_IN_BITS, + /* msgt_number = */ 1, + /* msgt_inline = */ TRUE, + /* msgt_longform = */ FALSE, + /* msgt_deallocate = */ FALSE, + /* msgt_unused = */ 0 +}; + /* * Routine: exception_raise * Purpose: @@ -329,9 +345,9 @@ exception_raise( ipc_port_t dest_port, ipc_port_t thread_port, ipc_port_t task_port, - integer_t _exception, - integer_t code, - integer_t subcode) + integer_t _exception, + integer_t code, + long_integer_t subcode) { ipc_thread_t self = current_thread(); ipc_thread_t receiver; @@ -521,7 +537,7 @@ exception_raise( exc->exception = _exception; exc->codeType = exc_code_proto; exc->code = code; - exc->subcodeType = exc_code_proto; + exc->subcodeType = exc_subcode_proto; exc->subcode = subcode; /* @@ -725,7 +741,7 @@ exception_raise( exc->exception = _exception; exc->codeType = exc_code_proto; exc->code = code; - exc->subcodeType = exc_code_proto; + exc->subcodeType = exc_subcode_proto; exc->subcode = subcode; ipc_mqueue_send_always(kmsg); diff --git a/kern/exception.h b/kern/exception.h index 55902dd1..36138da8 100644 --- a/kern/exception.h +++ b/kern/exception.h @@ -26,13 +26,13 @@ extern void exception( integer_t _exception, integer_t code, - integer_t subcode) __attribute__ ((noreturn)); + long_integer_t subcode) __attribute__ ((noreturn)); extern void exception_try_task( integer_t _exception, integer_t code, - integer_t subcode) __attribute__ ((noreturn)); + long_integer_t subcode) __attribute__ ((noreturn)); extern void exception_no_server(void) __attribute__ ((noreturn)); @@ -44,7 +44,7 @@ exception_raise( ipc_port_t task_port, integer_t _exception, integer_t code, - integer_t subcode) __attribute__ ((noreturn)); + long_integer_t subcode) __attribute__ ((noreturn)); extern kern_return_t exception_parse_reply(ipc_kmsg_t kmsg); diff --git a/kern/thread.h b/kern/thread.h index f8989f45..3485f6af 100644 --- a/kern/thread.h +++ b/kern/thread.h @@ -190,7 +190,7 @@ struct thread { struct ipc_port *port; int exc; int code; - int subcode; + long subcode; } exception; void *other; /* catch-all for other state */ } saved; From patchwork Sun Mar 19 15:09:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66586 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 DB6373850226 for ; Sun, 19 Mar 2023 15:11:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DB6373850226 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238697; bh=p/FlQP0C1oC60eD/MrptWJebawxHEhkz2UPsSAmbTDA=; 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=JGMAY3HYqeQPITvaf951V523J5Ig1Y+rFJA0Th7eYjU2geQOWtxZ4QuLO4sZcTZZs HD3UjaqjTnxaEoR8i/qorvSgIBdRUTukmIs2FyznN4oSwF98EAhyanToUubvLFGSdX IbSeW2l0S7Yjit6/OEan2zj1w0F6pANi5YT5EMYg= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com [IPv6:2a00:1450:4864:20::22f]) by sourceware.org (Postfix) with ESMTPS id 426233858423 for ; Sun, 19 Mar 2023 15:11:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 426233858423 Received: by mail-lj1-x22f.google.com with SMTP id a32so9695312ljr.9 for ; Sun, 19 Mar 2023 08:11:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238659; 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=p/FlQP0C1oC60eD/MrptWJebawxHEhkz2UPsSAmbTDA=; b=KJWnSwLyMw+ylb8FxQSB9NBMBMqS4rq3+p/sYV+5mRm77rSqq+19vsiI6WDGRF+oC5 2evGSA7igMCNchyTaxGKPNZakqdNNh1E8Om4f/NZNk3BCuwqHjg10F4u6m0Ly3mrhHbF eJn9Ed8LWoN7ACBI+HHrsFuZp1E4M4cFHyy427tt5t3AHoqAh3/olz3rEOpOZj6g+p33 36UUwf+lWBxqGY2sS+GOyICMWa69FpIXDP71CIW+4mjXJdWrJTsjOHPkurQZpO3FTUOm /458IzPq52FWqdst4I61/c+peMbXTXbJdW4aLAj5/v63BCNU0ReRcU7/0PYBcd1xdvW1 XmEQ== X-Gm-Message-State: AO0yUKWfpv1nDrZejE0EmWLpbw1aa0jdI36ANyC5XDHnTMgtl+ORiA+T FjqEcliaNkxETgtPZyvkMlxvKM4I3ttzCw== X-Google-Smtp-Source: AK7set/5LBa88pAMumlQaJnb+KMfZIHYxRWlm22yqXd9lluyifOmClVsgpru4rxxuvUgkmagbg6ODw== X-Received: by 2002:a2e:b895:0:b0:295:a958:2bca with SMTP id r21-20020a2eb895000000b00295a9582bcamr6173648ljp.6.1679238659587; Sun, 19 Mar 2023 08:10:59 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.10.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:10:59 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 04/34] hurd: Make exception subcode a long Date: Sun, 19 Mar 2023 18:09:47 +0300 Message-Id: <20230319151017.531737-5-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-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 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" On EXC_BAD_ACCESS, exception subcode is used to pass the faulting memory address, so it needs to be (at least) pointer-sized. Thus, make it into a long. This matches the corresponding change in GNU Mach. --- hurd/catch-exc.c | 2 +- hurd/hurd/signal.h | 5 +++-- hurd/hurdfault.c | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/hurd/catch-exc.c b/hurd/catch-exc.c index e8a9c798..5ee2233a 100644 --- a/hurd/catch-exc.c +++ b/hurd/catch-exc.c @@ -31,7 +31,7 @@ _S_catch_exception_raise (mach_port_t port, mach_msg_type_number_t codeCnt #else /* Vanilla Mach 3.0 interface. */ integer_t exception, - integer_t code, integer_t subcode + integer_t code, long_integer_t subcode #endif ) { diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h index 4e9f79b1..c33f974b 100644 --- a/hurd/hurd/signal.h +++ b/hurd/hurd/signal.h @@ -51,9 +51,10 @@ struct hurd_signal_preemptor; /* */ struct hurd_signal_detail { /* Codes from origination Mach exception_raise message. */ - integer_t exc, exc_code, exc_subcode; + integer_t exc, exc_code; + long_integer_t exc_subcode; /* Sigcode as passed or computed from exception codes. */ - integer_t code; + long_integer_t code; /* Error code as passed or extracted from exception codes. */ error_t error; }; diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c index 069c1c26..a81e7280 100644 --- a/hurd/hurdfault.c +++ b/hurd/hurdfault.c @@ -45,7 +45,7 @@ _hurdsig_fault_catch_exception_raise (mach_port_t port, mach_msg_type_number_t codeCnt #else /* Vanilla Mach 3.0 interface. */ integer_t exception, - integer_t code, integer_t subcode + integer_t code, long_integer_t subcode #endif ) { From patchwork Sun Mar 19 15:09:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66590 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 2A247383F420 for ; Sun, 19 Mar 2023 15:13:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2A247383F420 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238783; bh=//BwPHkLY+oidl68fxNLdLvXRMoYcjOxe3yhNbqTXy0=; 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=u/SOgVIKJrHj1VT594c6nktNZTbVerxJ7xMRpdZXnkiiR6HWVKx7W8tYLh3XFRBKU VMC0bd+6PTaflxTE3/ZscJRpYp1NysVowlylL3G768W3r2byovqwm9eWVvtpieytb8 GTC7JoMDqqcFWHawBd/NXCZ+hVRQdlndqfWwDKxA= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com [IPv6:2a00:1450:4864:20::231]) by sourceware.org (Postfix) with ESMTPS id 313FF3857C44 for ; Sun, 19 Mar 2023 15:11:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 313FF3857C44 Received: by mail-lj1-x231.google.com with SMTP id by8so8496258ljb.12 for ; Sun, 19 Mar 2023 08:11:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238660; 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=//BwPHkLY+oidl68fxNLdLvXRMoYcjOxe3yhNbqTXy0=; b=lPKHg6hOKg6FeeWqAVXpmks6bg83EAq6Ahb8s+R4HYeu29Jw+x20umffCPVFDRu+Q2 ANhaaSNi6n1FXfSameADRhzCyzNCs7HrZwDbKSuWSJ4rIt5DVBcfLnjyUxw40Sf4Z7Ds 7V6+bhysdW5x8sBONo8qipMFIEsFqPBpD+JkAYkCu3dJZiVO3GW1lJ2LnK/pmeM/db9P Rf7DSymbsHknUFYmeu2LVVkE9Ulak05Kunw1oizSe+czCiM7RuOF0eWl8ufHmCVJ0jXr 2ZmLJQMhwSabMn1Dw7Zy7t733uhwBuPJ1H71syzIPfEJiYQe4TAg0DYJvsXjU5KODZpj smlw== X-Gm-Message-State: AO0yUKWiziYB+yNi6VZmRlUswtQ05FWvsmdk70wOvRPPgmC7VFU4cFaD eonppEtHcLgu0pPAj7HEN/LMpSvdYHSLXg== X-Google-Smtp-Source: AK7set/rz7cnbroJ5KGT8tAZ343lZMzYLhHTqu+ZXecET+unFXV+JN/sXge+zcQskdJmWCUswbl9lg== X-Received: by 2002:a2e:6816:0:b0:299:ac58:1c4 with SMTP id c22-20020a2e6816000000b00299ac5801c4mr3285578lja.1.1679238660506; Sun, 19 Mar 2023 08:11:00 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.10.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:00 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 05/34] hurd: Remove __hurd_threadvar_stack_{offset, mask} Date: Sun, 19 Mar 2023 18:09:48 +0300 Message-Id: <20230319151017.531737-6-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-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 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" Noone is or should be using __hurd_threadvar_stack_{offset,mask}, we have proper TLS now. These two remaining variables are never set to anything other than zero, so any code that would try to use them as described would just dereference a zero pointer and crash. So remove them entirely. Signed-off-by: Sergey Bugaev --- hurd/Versions | 5 ----- hurd/hurd/threadvar.h | 15 --------------- sysdeps/mach/hurd/Versions | 3 --- sysdeps/mach/hurd/_Fork.c | 20 ++------------------ sysdeps/mach/hurd/i386/libc.abilist | 2 -- sysdeps/mach/hurd/x86/init-first.c | 3 --- 6 files changed, 2 insertions(+), 46 deletions(-) diff --git a/hurd/Versions b/hurd/Versions index 7e4f1c56..3d8b412d 100644 --- a/hurd/Versions +++ b/hurd/Versions @@ -1,8 +1,5 @@ libc { GLIBC_2.0 { - # variables used in macros & inline functions - __hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset; - # functions used in libmachuser and libhurduser _S_catch_exception_raise; _S_catch_exception_raise_state; @@ -129,8 +126,6 @@ libc { _hurd_fd_error_signal; _hurd_fd_error; __hurd_dfail; __hurd_sockfail; _hurd_port_locked_set; - __hurd_threadvar_location_from_sp; - __hurd_threadvar_location; _hurd_userlink_link; _hurd_userlink_unlink; _hurd_userlink_clear; } GLIBC_2.29 { diff --git a/hurd/hurd/threadvar.h b/hurd/hurd/threadvar.h index 2a94f4de..f5c6a278 100644 --- a/hurd/hurd/threadvar.h +++ b/hurd/hurd/threadvar.h @@ -22,21 +22,6 @@ #include #include -/* The per-thread variables are found by ANDing this mask - with the value of the stack pointer and then adding this offset. - - In the multi-threaded case, cthreads initialization sets - __hurd_threadvar_stack_mask to ~(cthread_stack_size - 1), a mask which - finds the base of the fixed-size cthreads stack; and - __hurd_threadvar_stack_offset to a small offset that skips the data - cthreads itself maintains at the base of each thread's stack. - - In the single-threaded or libpthread case, __hurd_threadvar_stack_mask is - zero, so the stack pointer is ignored. */ - -extern unsigned long int __hurd_threadvar_stack_mask; -extern unsigned long int __hurd_threadvar_stack_offset; - /* The variables __hurd_sigthread_stack_base and __hurd_sigthread_stack_end define the bounds of the stack used by the signal thread, so that thread can always be specifically identified. */ diff --git a/sysdeps/mach/hurd/Versions b/sysdeps/mach/hurd/Versions index d75e674b..bf2e870a 100644 --- a/sysdeps/mach/hurd/Versions +++ b/sysdeps/mach/hurd/Versions @@ -33,9 +33,6 @@ libc { ld { GLIBC_2.0 { - # variables that must be shared with libc - __hurd_threadvar_stack_mask; __hurd_threadvar_stack_offset; - # functions that must be shared with libc __close; __getpid; __mmap; __open; __read; __sbrk; __strtoul_internal; diff --git a/sysdeps/mach/hurd/_Fork.c b/sysdeps/mach/hurd/_Fork.c index 4984cecd..77cd2917 100644 --- a/sysdeps/mach/hurd/_Fork.c +++ b/sysdeps/mach/hurd/_Fork.c @@ -482,25 +482,9 @@ retry: (natural_t *) &state, &statecount)) LOSE; #ifdef STACK_GROWTH_UP - if (__hurd_sigthread_stack_base == 0) - { - state.SP &= __hurd_threadvar_stack_mask; - state.SP += __hurd_threadvar_stack_offset; - } - else - state.SP = __hurd_sigthread_stack_base; + state.SP = __hurd_sigthread_stack_base; #else - if (__hurd_sigthread_stack_end == 0) - { - /* The signal thread has a stack assigned by pthread. - The threadvar_stack variables conveniently tell us how - to get to the highest address in the stack, just below - the per-thread variables. */ - state.SP &= __hurd_threadvar_stack_mask; - state.SP += __hurd_threadvar_stack_offset; - } - else - state.SP = __hurd_sigthread_stack_end; + state.SP = __hurd_sigthread_stack_end; #endif MACHINE_THREAD_STATE_SET_PC (&state, (unsigned long int) _hurd_msgport_receive); diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index ed0c4789..da1cad67 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -279,8 +279,6 @@ GLIBC_2.2.6 __gettimeofday F GLIBC_2.2.6 __gmtime_r F GLIBC_2.2.6 __h_errno_location F GLIBC_2.2.6 __hurd_fail F -GLIBC_2.2.6 __hurd_threadvar_stack_mask D 0x4 -GLIBC_2.2.6 __hurd_threadvar_stack_offset D 0x4 GLIBC_2.2.6 __isalnum_l F GLIBC_2.2.6 __isalpha_l F GLIBC_2.2.6 __isascii_l F diff --git a/sysdeps/mach/hurd/x86/init-first.c b/sysdeps/mach/hurd/x86/init-first.c index 75a5c842..6ca27155 100644 --- a/sysdeps/mach/hurd/x86/init-first.c +++ b/sysdeps/mach/hurd/x86/init-first.c @@ -34,9 +34,6 @@ extern void __mach_init (void); extern void __init_misc (int, char **, char **); -unsigned long int __hurd_threadvar_stack_offset; -unsigned long int __hurd_threadvar_stack_mask; - extern int __libc_argc attribute_hidden; extern char **__libc_argv attribute_hidden; extern char **_dl_argv; From patchwork Sun Mar 19 15:09:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66594 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 72D8B3887F60 for ; Sun, 19 Mar 2023 15:13:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 72D8B3887F60 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238825; bh=Qjf+9qbbERxe/2p0Nj3/cUrSE1RTMyqL//28DdI1no0=; 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=VcSgGmMGIi+IfV7/imrTfj3oC9PQYZpyub2qap/gL6YGRQOLN4+c2RaqavOSGLVnN OpUHZnnDUfy2e9ic33Sf1kUjiiuusSBOF+S6ZQrmzyeVuOgkxMGLVuPfUV4mk5T/Lp swXQSg3hT1GrlVlWVc5W5RWTWJTjEFnm6wqvPrSQ= 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 2022D3858426 for ; Sun, 19 Mar 2023 15:11:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2022D3858426 Received: by mail-lf1-x12a.google.com with SMTP id g17so12039223lfv.4 for ; Sun, 19 Mar 2023 08:11:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238661; 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=Qjf+9qbbERxe/2p0Nj3/cUrSE1RTMyqL//28DdI1no0=; b=sgKalmEVlzdMo5s5OpXsoWi/eTKSydx7CttxbLl5EKdKhnPImwu3PySDfeW86QObxa oGWotgfipF8OhSg9MXbXyNJqe8zrMeSgvWM32xEbMQt8aMfnO8wcqFtbuMXuNyXj5FMP uwS5xz74yHPsuBmarP3mCSPdQbLyFVFa0rdB/G1Csu9zvkxCbFfMrExbA5m9OvmsYwts p0N2CSCQdcK/y3TM1HK0zJ1Y7M3m0IooOdm0a2ifOGhTJbWO1lup0H8BKgv8QecR7kt6 DUqdTMDsdnJgdY7eSP/Bst2WlAu1nEJmFT9P3XofaODH1xuJF141LcNQdGUszJah0Zg7 pu5A== X-Gm-Message-State: AO0yUKUWTnQJj+sLYzSTWcbrv0ww4SPlt4M5yDORVp+XbI2LM1dLCIiP +2ZCYZa+ow+EyfI18ou1sUiJukFnaYyF8Q== X-Google-Smtp-Source: AK7set9xEzg0G9JVy1DaxIFZ8xSwkORTxBP7YnFzY9h75gPaE8gPUExKGtmGI/dBB8prjTYkWH014Q== X-Received: by 2002:ac2:484d:0:b0:4dd:821c:3688 with SMTP id 13-20020ac2484d000000b004dd821c3688mr6027136lfy.66.1679238661426; Sun, 19 Mar 2023 08:11:01 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:01 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 06/34] hurd: Swap around two function calls Date: Sun, 19 Mar 2023 18:09:49 +0300 Message-Id: <20230319151017.531737-7-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-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 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" ...to keep `sigexc' port initialization in one place, and match what the comments say. No functional change. Signed-off-by: Sergey Bugaev --- hurd/hurdfault.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c index a81e7280..4340897d 100644 --- a/hurd/hurdfault.c +++ b/hurd/hurdfault.c @@ -174,14 +174,14 @@ _hurdsig_fault_init (void) err = __mach_port_allocate (__mach_task_self (), MACH_PORT_RIGHT_RECEIVE, &sigexc); assert_perror (err); - err = __mach_port_allocate (__mach_task_self (), - MACH_PORT_RIGHT_RECEIVE, &forward_sigexc); + err = __mach_port_insert_right (__mach_task_self (), sigexc, + sigexc, MACH_MSG_TYPE_MAKE_SEND); assert_perror (err); /* Allocate a port to receive the exception msgs forwarded from the proc server. */ - err = __mach_port_insert_right (__mach_task_self (), sigexc, - sigexc, MACH_MSG_TYPE_MAKE_SEND); + err = __mach_port_allocate (__mach_task_self (), + MACH_PORT_RIGHT_RECEIVE, &forward_sigexc); assert_perror (err); /* Set the queue limit for this port to just one. The proc server will From patchwork Sun Mar 19 15:09:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66598 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 0028F38930F5 for ; Sun, 19 Mar 2023 15:14:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0028F38930F5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238868; bh=J/n8oIJ1Y372PZyNpf8VohIG9iflN2UyxQtfKZ0bptc=; 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=GG3iHEQQyKsK/wvaOFRJLHRaoT6hxm2EYIqXPRh9B8bqpOVsfW4eZdNEGE/I47CPl oUx7tqMP1CicEXwTzBhhNM2yKdFf/mgcW/LSYfegy2p+7JhhQEbXA2dnwfhh4keW/v pUFGnbJdNEeL3j1dMW1q1XMjaQ/qKaIA/srdEJGw= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) by sourceware.org (Postfix) with ESMTPS id 11FD4385842B for ; Sun, 19 Mar 2023 15:11:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 11FD4385842B Received: by mail-lj1-x22b.google.com with SMTP id l22so9679054ljc.11 for ; Sun, 19 Mar 2023 08:11:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238662; 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=J/n8oIJ1Y372PZyNpf8VohIG9iflN2UyxQtfKZ0bptc=; b=WAGJOmWM1IrOrVF8ELOmoTZeS94CqaNY4kynV2QhRDUHnDM+jdoS5TQzBzdLtkfV7O 9Od5G+KJknjfggjTSV6QypckVdmXnm6Zfjs0du2QY65coVkocWRlp1RQeYjAHamt7W0v 32W/EhX0T9pEmkgzqWD1HHvCKLRtf5SXNkkd2rAN76PGxXuzpIXRCcq6SKtO3GfOVyq3 MM/A0eg+vYV/Q5bmu/mIDrePmSUOQW6aMooddKybQ/lXVx1CDztZCHy+BlLjKG3+wwQl yPYc6mIw15R5+5WU8uA6JoBBt9qQS/gpUm09rkUdofsWWV/4zK/QRVuEswl3sToZc/Ij zquw== X-Gm-Message-State: AO0yUKXAjXdeDfDtIp2VLu+JHib7tHT70n7OLJ6Y6XLeojjJGQ9oop20 u2tIS5A0n5XOVe9o3YoxpERMzjqVxbiKyw== X-Google-Smtp-Source: AK7set9Z9BfW7jNlUZ/toIeGfbMZEQ6FFAAxVIUQqpSZ/zIH3GH5hO+AirvvhuibBNYpLad/+c26Fg== X-Received: by 2002:a2e:90d1:0:b0:298:ad8e:e63 with SMTP id o17-20020a2e90d1000000b00298ad8e0e63mr5675990ljg.9.1679238662337; Sun, 19 Mar 2023 08:11:02 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:02 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 07/34] hurd: Fix file name in #error Date: Sun, 19 Mar 2023 18:09:50 +0300 Message-Id: <20230319151017.531737-8-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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 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 --- hurd/longjmp-ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hurd/longjmp-ts.c b/hurd/longjmp-ts.c index bc4add32..0032d747 100644 --- a/hurd/longjmp-ts.c +++ b/hurd/longjmp-ts.c @@ -27,5 +27,5 @@ _hurd_longjmp_thread_state (void *state, jmp_buf env, int val) /* Set all the registers in *STATE to the values described by ENV and RETVAL. After this, setting that thread's state to STATE should be just like calling `longjmp (ENV, RETVAL)'. */ - #error "Need to write sysdeps/mach/hurd/MACHINE/longjmp-ctx.c" + #error "Need to write sysdeps/mach/hurd/MACHINE/longjmp-ts.c" } From patchwork Sun Mar 19 15:09:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66602 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 1359D389EC69 for ; Sun, 19 Mar 2023 15:15:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1359D389EC69 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238910; bh=drHQwjtEKxmDE1qW2YqudRgabdfFASYN0vqRB/Vimjo=; 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=DxOKiLQFi31+s5bIglQtr14VdejLgHV6yNiZFwC6PkqJZPUHCEyWi6XXm0sRVwrtN F/U+eBhBqlhhNua8Hhh29ifu3QElWGqWTc2XAAhK7ryR5l11nodVGdDv+wYqN1ClEn v4EJAVIzjJePUIlE72U9icgpNhewlD5LcDhkj1KA= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) by sourceware.org (Postfix) with ESMTPS id 480E3385B52A for ; Sun, 19 Mar 2023 15:11:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 480E3385B52A Received: by mail-lj1-x229.google.com with SMTP id b13so9691968ljf.6 for ; Sun, 19 Mar 2023 08:11:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238663; 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=drHQwjtEKxmDE1qW2YqudRgabdfFASYN0vqRB/Vimjo=; b=Q+J5ssTAyAet2J4kygkfaQCPhj98AwKERC6wGV8dUkOChAZsbvjMRbZ1xsSvTftvcI lKlN+S1TWWq6DHNU4JWF9i4NAelKtA0egO29sxgc3Ht8YmkRrzAW8ykOe9mdRTLpp14f OF7yy4FenuXcvmfF4zNd+H7cyT3uT4a2e3TNChRQryFD7zFtGiBA8VX28YtAQhDgA/VE IzqbZRTgCF7LEQzuFM6g0bINwVWOsH02OgFjl64N4mY1RIysKqnllE0XRyG3JA6F/pnw tupwE5fq0vKtd3b+rqkf5AWfRDxu4o4CqI2llmltT1Z6c5jVndOe0/eYuVjUnNX+xNhQ QfGA== X-Gm-Message-State: AO0yUKW9eqmgA/qG+C6vGn1U/V20VMqtnmUh/KXXR8BZmVFGbk5BUaSQ re3jILLU7eN2uXvFCqiV5D5QLQAL5JPZYA== X-Google-Smtp-Source: AK7set+NbiFzg56lo5OGtpPQ3O+eHIkDkw5FKMXZ6LlJXUGj1aJfRLxu2KCxtMwureyZceXARBKLyw== X-Received: by 2002:a05:651c:505:b0:295:941c:fc54 with SMTP id o5-20020a05651c050500b00295941cfc54mr6417372ljp.26.1679238663392; Sun, 19 Mar 2023 08:11:03 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:03 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 08/34] hurd: Disable O_TRUNC and FS_RETRY_MAGICAL in rtld Date: Sun, 19 Mar 2023 18:09:51 +0300 Message-Id: <20230319151017.531737-9-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-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, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_BLACK 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" hurd/lookup-retry.c is compiled into rtld, the dynamic linker/loader. To avoid pulling in file_set_size, file_utimens, tty/ctty stuff, more string/memory code (memmove, strncpy, strcpy), and more strtoul/itoa code, compile out support for O_TRUNC and FS_RETRY_MAGICAL when building hurd/lookup-retry.c for rtld. None of that functionality is useful to rtld during startup anyway. Keep support for FS_RETRY_MAGICAL("/"), since that does not pull in much, and is required for following absolute symlinks. The large number of extra code being pulled into rtld was noticed by reviewing librtld.map & elf/librtld.os.map in the build tree. It is worth noting that once libc.so is loaded, the real __open, __stat, etc. replace the minimal versions used initially by rtld -- this is especially important in the Hurd port, where the minimal rtld versions do not use the dtable and just pass real Mach port names as fds. Thus, once libc.so is loaded, rtld will gain access to the full __hurd_file_name_lookup_retry () version, complete with FS_RETRY_MAGICAL support, which is important in case the program decides to dlopen ("/proc/self/fd/...") or some such. Signed-off-by: Sergey Bugaev --- hurd/lookup-retry.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hurd/lookup-retry.c b/hurd/lookup-retry.c index 8850c4fd..99c98104 100644 --- a/hurd/lookup-retry.c +++ b/hurd/lookup-retry.c @@ -177,7 +177,7 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port) /* We got a successful translation. Now apply any open-time action flags we were passed. */ - +#if !IS_IN (rtld) if (!err && (flags & O_TRUNC)) { /* Asked to truncate the file. */ @@ -189,6 +189,7 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port) __file_utimens (*result, atime, mtime); } } +#endif if (err) __mach_port_deallocate (__mach_task_self (), *result); @@ -214,6 +215,7 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port) file_name = &retryname[1]; break; +#if !IS_IN (rtld) case 'f': if (retryname[1] == 'd' && retryname[2] == '/') { @@ -358,8 +360,9 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port) goto bad_magic; break; - default: bad_magic: +#endif /* !IS_IN (rtld) */ + default: err = EGRATUITOUS; goto out; } From patchwork Sun Mar 19 15:09:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66591 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 A24D13848418 for ; Sun, 19 Mar 2023 15:13:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A24D13848418 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238789; bh=mhVTaQBUOr5hljBHIE7BKqOi1GAehFxzqUPxeQmgIUo=; 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=in7X5Pl3AeKFjb2Zev2n7EBIfmnQZFyeKN7PU1QCZrusrEg61uKBTlD81Ml2IJDZi wN0QZdqayN6AR70zTerNy3K3Nymmpx3RWfD2GCOudcvm5GLTJ/s8efd21tRP8mKCHc ju5ASDma/znaOgf5836xCgNKac14U1CT8SpTwMxQ= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by sourceware.org (Postfix) with ESMTPS id B30593858C53 for ; Sun, 19 Mar 2023 15:11:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B30593858C53 Received: by mail-lf1-x12b.google.com with SMTP id bi9so11991850lfb.12 for ; Sun, 19 Mar 2023 08:11:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238664; 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=mhVTaQBUOr5hljBHIE7BKqOi1GAehFxzqUPxeQmgIUo=; b=lxAm3JZ5QetU9yKK41n/nR3RVggQ3+73DdZU5DgsvTmhn82R4Z/hoadhJ8x9e+K7fL GhuJXz5LfAf77Wd4FBh6F/aGACXqs4pcNajidW3MUeZiZSfBhyzlGbJR2V1WvBd3EJeP BYygsi6cpSF/II55auZBVnR968tIYsJjcNy9PFzId61lRzJT1FXgoJfKDpXAiiexejUl XJRhUvS2ysB7+mz8oTTyvTyI3X+gcCRsnwjr4AWs39HHwsBToRwkxx7QNy5uFxmzZUDI jUbKOot+DxCvWBQODZbg1W/U4B5n+VbgGvliZ4l1tn5E92et4dnilpdGt0AsJYCTNZcl 5cOg== X-Gm-Message-State: AO0yUKVKlIsPF6Ji+uZNOFzGxyl9DV3jCOjVw+jkw5h8qkB3bk4P3F8t pdk5iW74juDQGS/xdducJvqWDuCqMk8D1w== X-Google-Smtp-Source: AK7set8ksSu3Vfmz2fYdK+20Ql8YAFdW3DgJUKvi3To8cS18VwUnctvbyb4SsMGdM5SRBPrIG6Dqcw== X-Received: by 2002:a05:6512:15c:b0:4dd:cbf3:e981 with SMTP id m28-20020a056512015c00b004ddcbf3e981mr5446058lfo.28.1679238664491; Sun, 19 Mar 2023 08:11:04 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:04 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 09/34] hurd: Fix _hurd_setup_sighandler () signature Date: Sun, 19 Mar 2023 18:09:52 +0300 Message-Id: <20230319151017.531737-10-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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 --- hurd/trampoline.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hurd/trampoline.c b/hurd/trampoline.c index a0639a20..5bd8dec9 100644 --- a/hurd/trampoline.c +++ b/hurd/trampoline.c @@ -26,11 +26,11 @@ that structure. */ struct sigcontext * -_hurd_setup_sighandler (int flags, - __sighandler_t handler, - stack_t *sigaltstack, - int signo, int sigcode, - void *state) +_hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action, + __sighandler_t handler, + int signo, struct hurd_signal_detail *detail, + volatile int rpc_wait, + struct machine_thread_all_state *state) { #error "Need to write sysdeps/mach/hurd/MACHINE/trampoline.c" } From patchwork Sun Mar 19 15:09:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66588 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 515D03847809 for ; Sun, 19 Mar 2023 15:12:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 515D03847809 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238743; bh=moP3xoYj0+2QqDc1A3bID12HT40vRAc8MAPLtFgsB5Q=; 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=WakYOPjEpJfYgUebFmjrTp/wSUPGI8HLkVq4M+pj3NUJUKZg8Lgb91NNZTtgSuGaX d9x9Ad947SOW2GC33dBNCCtUGJopw/iZDfT02wpLEPSWzq+hnHhevBmi6eWlgPFOA1 w/oU6A5wpxpBOuydP7jOMY8Zo6Z3Oxw1vLyCj8Sk= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) by sourceware.org (Postfix) with ESMTPS id 3042F385B800 for ; Sun, 19 Mar 2023 15:11:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3042F385B800 Received: by mail-lj1-x229.google.com with SMTP id e11so1053538lji.8 for ; Sun, 19 Mar 2023 08:11:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238665; 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=moP3xoYj0+2QqDc1A3bID12HT40vRAc8MAPLtFgsB5Q=; b=hoHcd8NuGnoR+ijprNEugggNLVxL3JShPK4xywr0gk2X0yqED2KDhkT0TsVmZuvhc9 XCgFplnzInWMjB+qZh3MqRhHjpSshGVRZRIzbJeQzz6xNhMtuAEb6l9+X0VkGJP36Sz5 Uhd/r7EOJEyZGi4cMIwg5kG+7IsqtEW5/T4MmSO54kGLLrlU2KpcgWCrAYB41WyHlptr xoiElUMmcUORrwsAVTX5jNziPc7T9wNmGgeEboAeK4FerTXwvBzzVfDDSIfCzIWNVDNn PxwxYGFOvf8OEVKYwcJEUMbKGxEk2tvcQl9vQM+EV9MnIXk5Zf0m+5ZWdbi2vtU1gGdg Ticw== X-Gm-Message-State: AO0yUKX0cpk6Vs9V5+p0GQQaHRIuPIaah4GsCnVYaIs3yKF03xmMwbI5 6f7RQkfC34KM/yt7Hb9919d2f3OnjuDGow== X-Google-Smtp-Source: AK7set9v+0pBeLiv4lJOn535V9IzqbkHkLWwEfL0WrOJ9NJJvfZApnZG61ekOnYL9WP3q3rxdXHDtA== X-Received: by 2002:a2e:9019:0:b0:298:aee5:8f85 with SMTP id h25-20020a2e9019000000b00298aee58f85mr4838423ljg.46.1679238665478; Sun, 19 Mar 2023 08:11:05 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:05 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 10/34] stdio-common: Fix building when !IS_IN (libc) Date: Sun, 19 Mar 2023 18:09:53 +0300 Message-Id: <20230319151017.531737-11-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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 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" In this case, _itoa_word () is already defined inline in the header (see sysdeps/generic/_itoa.h), and the second definition causes an error. Signed-off-by: Sergey Bugaev --- stdio-common/_itoa.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stdio-common/_itoa.c b/stdio-common/_itoa.c index 27285193..3037b0f5 100644 --- a/stdio-common/_itoa.c +++ b/stdio-common/_itoa.c @@ -157,6 +157,7 @@ const struct base_table_t _itoa_base_table[] attribute_hidden = }; #endif +#if IS_IN (libc) char * _itoa_word (_ITOA_WORD_TYPE value, char *buflim, unsigned int base, int upper_case) @@ -185,6 +186,7 @@ _itoa_word (_ITOA_WORD_TYPE value, char *buflim, return buflim; } #undef SPECIAL +#endif /* IS_IN (libc) */ #if _ITOA_NEEDED From patchwork Sun Mar 19 15:09:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66606 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 A47653847835 for ; Sun, 19 Mar 2023 15:15:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A47653847835 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238952; bh=n5qnjamGL6L50YLtkivx/HLikKh0TeiapuAPgEY9ank=; 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=lZLLKtFX9kWWP3ZSwPMhLeviwvPGRaPZwPvL3iMBavXBVHFeCrQmRU0Yw1GMSGvQ8 vIEznKQEIpJrniPlsIK0P7VlMi4aFZ1yrpluG7RslCCrmbxZ6E2aIN3inI3z9qEk22 2QcLNxWhhDvMMDwATEIluBr4hAoUD7D5Od0SpgLY= 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 29287385482E for ; Sun, 19 Mar 2023 15:11:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 29287385482E Received: by mail-lf1-x12d.google.com with SMTP id x17so12032389lfu.5 for ; Sun, 19 Mar 2023 08:11:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238666; 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=n5qnjamGL6L50YLtkivx/HLikKh0TeiapuAPgEY9ank=; b=dY/TzBQsFMJKcbNoC6xUNaX1YPVHR/c8gTAnw6IvZIiRkhh7572E4R9Coz2uSIL8fk Jhb1ylN9AqAlia4UYhW0Ny6XCAK2irsFl12zsjbh1HcCfWdY2BMY6zWC31QC8iFjzpUW +wqVx3cXh1qwJBiPx3oJr8PhwQrRk9gUvcfaAm3NwU9gbFekR9K2qcPfsQrjJ6bBBxKT WK5WfP8ckLnbxoHmY7M1tdg00Z2Rjy9eVcu0PYko597KABmsu5upUR3WevcwbG3QHpfB gfLlIfSnBaiQCBNsW/sOimILHlu9NPLV1toIZJetVD6cpkAOm5EBbH2bNOSVrjinXSzS hiTw== X-Gm-Message-State: AO0yUKW+sm0hPvCXro1hrkzFPtPchFiGkIgjCdO9Z411iptwIsNC7GW8 eoqqa1nS4FvaJjAEloESAEQBp3cIZm5nGA== X-Google-Smtp-Source: AK7set89ftJKNFQq907Z65dPk+aZG0GlmKUhmmKdunVjVbs9h1723gmxGjGWiLzk+MErVyus7spdfQ== X-Received: by 2002:ac2:4145:0:b0:4b5:2cf4:cc1d with SMTP id c5-20020ac24145000000b004b52cf4cc1dmr5636180lfi.68.1679238666453; Sun, 19 Mar 2023 08:11:06 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:06 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 11/34] mach, hurd: Drop __libc_lock_self0 Date: Sun, 19 Mar 2023 18:09:54 +0300 Message-Id: <20230319151017.531737-12-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-10.3 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, URIBL_BLACK 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" This was used for the value of libc-lock's owner when TLS is not yet set up, so THREAD_SELF can not be used. Since the value need not be anything specific -- it just has to be non-NULL -- we can just use a plain constant, such as (void *) 1, for this. This avoids accessing the symbol through GOT, and exporting it from libc.so in the first place. Signed-off-by: Sergey Bugaev --- sysdeps/mach/hurd/Versions | 4 ++-- sysdeps/mach/hurd/cthreads.c | 4 ---- sysdeps/mach/libc-lock.h | 3 +-- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/sysdeps/mach/hurd/Versions b/sysdeps/mach/hurd/Versions index bf2e870a..20ac0067 100644 --- a/sysdeps/mach/hurd/Versions +++ b/sysdeps/mach/hurd/Versions @@ -20,7 +20,7 @@ libc { __open_nocancel; __read_nocancel; __pread64_nocancel; __write_nocancel; - __libc_lock_self0; __getcwd; + __getcwd; __stat64; _dl_init_first; @@ -61,7 +61,7 @@ ld { __open_nocancel; __read_nocancel; __pread64_nocancel; __write_nocancel; - __libc_lock_self0; __getcwd; + __getcwd; __stat64; __fstat64; } } diff --git a/sysdeps/mach/hurd/cthreads.c b/sysdeps/mach/hurd/cthreads.c index 9f17cfe4..87b6c06b 100644 --- a/sysdeps/mach/hurd/cthreads.c +++ b/sysdeps/mach/hurd/cthreads.c @@ -20,10 +20,6 @@ #include #include -/* This serves as stub "self" pointer for libc locks when TLS is not initialized - yet. */ -char __libc_lock_self0[0]; - /* Placeholder for key creation routine from Hurd cthreads library. */ int weak_function diff --git a/sysdeps/mach/libc-lock.h b/sysdeps/mach/libc-lock.h index 14248a05..c5c2553c 100644 --- a/sysdeps/mach/libc-lock.h +++ b/sysdeps/mach/libc-lock.h @@ -34,9 +34,8 @@ typedef struct typedef __libc_lock_recursive_t __rtld_lock_recursive_t; -extern char __libc_lock_self0[0]; #define __libc_lock_owner_self() \ - (__LIBC_NO_TLS () ? (void *)&__libc_lock_self0 : THREAD_SELF) + (__LIBC_NO_TLS () ? (void *) 1 : THREAD_SELF) #else typedef struct __libc_lock_opaque__ __libc_lock_t; From patchwork Sun Mar 19 15:09:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66609 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 E8CE7383FB81 for ; Sun, 19 Mar 2023 15:16:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E8CE7383FB81 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238994; bh=bCxXxBbqsCtDVHYshFPQ9p3g+FnvYAkoNIS61Otexjw=; 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=H63ho+wfhE8H50tNaoMKCWMcSCH9sEOtidg6nVO7YmV5NqkHAgUop9XKYkSPNmEYn IxXi7/npGm0Ub5MexX9CjMsFRHOSF/ZhGzwfySr8RoBGVeu5cyuCYXqPifDhmoNyZt Vcy4wNlQ5z8KMavElkxiT6Y1cdbvHzcCHFzzfZMw= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by sourceware.org (Postfix) with ESMTPS id 21B5C385B52E for ; Sun, 19 Mar 2023 15:11:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 21B5C385B52E Received: by mail-lf1-x12f.google.com with SMTP id s8so11743117lfr.8 for ; Sun, 19 Mar 2023 08:11:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238667; 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=bCxXxBbqsCtDVHYshFPQ9p3g+FnvYAkoNIS61Otexjw=; b=avXlXO1kcJx/LuPuTSsSkP/8L2r5bdHDnnlVDMKBeiqhDsmxzbN3DuxL+kCa2m2Iz3 cdze6FvmDJ6z5NfCgh1HjjfkvnFkSvwx0351c7BSpirE5D7/6MGdFJ6ErNg6N/TJMcB0 0B/PE4ZBh7bggvncGgwua6eFNH+1SeQwUfZw9iEznsHn7H8FC/O4msK7pvGVq+4x/xp+ OcTUo5zdFNApezMKDF5MWpoMV7+hBAKBd4u8m8IkMk18OhcD3OiL/JDbMZ+RoJUHeT5i P8j5O0nL2KSw/77cCwYvdAMezNz3NdmC5Yf2h9roojnB1b0LmPADqJjKD6nz0lF7yhgK u86g== X-Gm-Message-State: AO0yUKUCer9zIuev/AbYPv3zE/fJR2QndLMFsgfRh7FOYtTCy2wigonW 1DflKpTrzsBRkpLbf3e0ZFNi5nhvk9Cftg== X-Google-Smtp-Source: AK7set+zgc+4ZsunUA0bCHhDS+z+/IYDU5mIgPKfxrUUggCqTMURAQsbI1lTbUNPiLgoJpzYeOvXgQ== X-Received: by 2002:a05:6512:2191:b0:4d7:807:4eaa with SMTP id b17-20020a056512219100b004d708074eaamr5427696lft.43.1679238667451; Sun, 19 Mar 2023 08:11:07 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:07 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 12/34] hurd: More 64-bit integer casting fixes Date: Sun, 19 Mar 2023 18:09:55 +0300 Message-Id: <20230319151017.531737-13-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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 --- sysdeps/mach/hurd/ioctl.c | 4 ++-- sysdeps/mach/hurd/x86/init-first.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sysdeps/mach/hurd/ioctl.c b/sysdeps/mach/hurd/ioctl.c index 0f5de5d3..ab913a59 100644 --- a/sysdeps/mach/hurd/ioctl.c +++ b/sysdeps/mach/hurd/ioctl.c @@ -149,10 +149,10 @@ __ioctl (int fd, unsigned long int request, ...) Rather than pointing to the value, ARG is the value itself. */ #ifdef MACH_MSG_TYPE_BIT *t++ = io2mach_type (1, _IOTS (integer_t)); - *(integer_t *) t = (integer_t) arg; + *(integer_t *) t = (integer_t) (intptr_t) arg; t = (void *) t + sizeof (integer_t); #else - *(integer_t *) p = (integer_t) arg; + *(integer_t *) p = (integer_t) (intptr_t) arg; p = (void *) p + sizeof (integer_t); #endif } diff --git a/sysdeps/mach/hurd/x86/init-first.c b/sysdeps/mach/hurd/x86/init-first.c index 6ca27155..48c330ec 100644 --- a/sysdeps/mach/hurd/x86/init-first.c +++ b/sysdeps/mach/hurd/x86/init-first.c @@ -1,4 +1,4 @@ -/* Initialization code run first thing by the ELF startup code. For i386/Hurd. +/* Initialization code run first thing by the ELF startup code. For x86/Hurd. Copyright (C) 1995-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -92,7 +92,7 @@ posixland_init (int argc, char **argv, char **envp) static void init (void **data) { - int argc = (int) *data; + int argc = (int) (uintptr_t) *data; char **argv = (void *) (data + 1); char **envp = &argv[argc + 1]; struct hurd_startup_data *d; From patchwork Sun Mar 19 15:09:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66595 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 D24813854839 for ; Sun, 19 Mar 2023 15:13:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D24813854839 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238831; bh=ILCBwAsFi8P5MaTdztO1YgfHPGxdkYhYCnZ2ykKV0Cs=; 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=RiRIZ1zJP1cVmwwpEaQUTXUhWcmqJbSiuqZMCB/tE3bzMN4uhPNzYYUzwSVyivwnK NW0e71MYtTrOL2gzHy2Raz0Yuklv/wwe06OscQEbcztmGN/nmtzEgj4KclORYtDSlo uMjNa9vWYdTV++x7wJzdJQwL7k60qJsqd1Hep/Dg= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) by sourceware.org (Postfix) with ESMTPS id 1318B3858412 for ; Sun, 19 Mar 2023 15:11:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1318B3858412 Received: by mail-lf1-x129.google.com with SMTP id j11so11986824lfg.13 for ; Sun, 19 Mar 2023 08:11:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238668; 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=ILCBwAsFi8P5MaTdztO1YgfHPGxdkYhYCnZ2ykKV0Cs=; b=UHVjpC+bNNh1FHQTMjWuBsn9Mrh2RRa+z0x4LoigUJKXO/n/29vsZ1a2gN8sjqvbcP YioM5JSHIbZvLWR47cq4t/SyBjHvcsy8/wHJX9+jnpur/PZfub1ZTPUEc8H9mP4pOo7h l4hcieK4rIqSPX3noasd56GN9hYeGFJ68aC5Muv+kZBut8MXsLFvyFNs3hexNhjDik9o FkP/Nb6VRpOAVIb7XVsj/DrHLq9rIz8BhKeKwhmiPSOWp12xLpRELhar4yQcZMmEldng U1UOLo9vipaG/InMhFNTqc14CryDTvrkEcTuRZvjoOu3xQNTFLP9mlkKLIj+HqhMhRhg NriA== X-Gm-Message-State: AO0yUKWRM6Cvy+AiwbA1uDpdK2A/QPxTOQDBwDRceEUyP5pltFhyd8b9 4NLg+yTEV896TMGlM3x2Iw4FKtpSEfVlJg== X-Google-Smtp-Source: AK7set89Wjno1vcnsQhbzobXTgrVeaHxolNeC7jHrDH+YXeiM8jLHHYdJSeudX2TqgcMXSUJiQzoFA== X-Received: by 2002:a05:6512:952:b0:4dd:abb9:dae4 with SMTP id u18-20020a056512095200b004ddabb9dae4mr5616607lft.25.1679238668353; Sun, 19 Mar 2023 08:11:08 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:08 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 13/34] x86-64: Disable prefer_map_32bit_exec tunable on non-Linux Date: Sun, 19 Mar 2023 18:09:56 +0300 Message-Id: <20230319151017.531737-14-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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" While we could/should implement MAP_32BIT for the Hurd port by setting all the high bits of mask in a vm_map () call, neither MAP_32BIT nor glibc.cpu.prefer_map_32bit_exec exist on the Hurd as of now. Compile this code out to fix build failures. Signed-off-by: Sergey Bugaev --- sysdeps/x86/cpu-features.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c index 822688e2..78631d7a 100644 --- a/sysdeps/x86/cpu-features.c +++ b/sysdeps/x86/cpu-features.c @@ -27,7 +27,7 @@ extern void TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *) attribute_hidden; -# ifdef __LP64__ +# if defined (__LP64__) && defined (__linux__) static void TUNABLE_CALLBACK (set_prefer_map_32bit_exec) (tunable_val_t *valp) { @@ -715,7 +715,7 @@ no_cpuid: #if HAVE_TUNABLES TUNABLE_GET (hwcaps, tunable_val_t *, TUNABLE_CALLBACK (set_hwcaps)); -# ifdef __LP64__ +# if defined (__LP64__) && defined (__linux__) TUNABLE_GET (prefer_map_32bit_exec, tunable_val_t *, TUNABLE_CALLBACK (set_prefer_map_32bit_exec)); # endif From patchwork Sun Mar 19 15:09:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66592 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 B7AEA3839052 for ; Sun, 19 Mar 2023 15:13:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B7AEA3839052 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238796; bh=tohaEEmiqcZgPLqvO0Skxxcv8Lt1W3dD9qBFzIKPZSo=; 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=VWrVN7XSr2vg/Uw/aMtHRCUJP/wrxxwoRfrN60TGdPQa9b2E7zwV+PG1pgsX6qLVF /FI9UqQ0DLf+1Hyv0QbISFoDH9BZKqnicXfq0zloxCNKdKI8cC6dN3beAsdx+n+O0b 94tXOX1HJNIYitn/8UBtoLr30avg57u8vJJIAtMs= 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 EF266385559E for ; Sun, 19 Mar 2023 15:11:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EF266385559E Received: by mail-lf1-x131.google.com with SMTP id g17so12039456lfv.4 for ; Sun, 19 Mar 2023 08:11:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238669; 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=tohaEEmiqcZgPLqvO0Skxxcv8Lt1W3dD9qBFzIKPZSo=; b=1to63r/eZ01TYwA/3omIg9qCvUeViA4RCWpzhYJDFVOoJCGvbmdfLwlJZTdiI8t8HC LghNV8uCxWSp9Dc1KN7qr5yqSl+O/FsLOMUn7AgUA3UgyfjMIj+/wMgYdpgfC1g5m+Pl TwWtJea9msq5r7yVvTsyI2Vm1zYyYXBH5qAIfhPGRV3WxPN3iGvCY4RfMGRlHkJ/6EgU EMJRf0MitQGO9BPXN2qnFy+9Gq8nqLRlcIamNsAMhRJ+WCW9fsw1W+0gQ6m085ALVOmz UM9KlFWUgxbVegTp5gyXLNPU2JBkqQsZhj99M6bhYJ6IE2FFH1YDp5PufxeJVZWyCVex vqcw== X-Gm-Message-State: AO0yUKXnDN6ugBXIQpqqUfVkzPS3LeFmLN86WzaD5KjWj591PXkdGBZa E0621AKnXuYHvsy3yXEJyfcT/pz3eqOKfg== X-Google-Smtp-Source: AK7set9BS/S3WLj0FvXeP1Nd2cda60l318NKGb5rdu/SvaSHb4gUTlTc4TYveX8EcVwnkSWjrX4UDg== X-Received: by 2002:a19:5502:0:b0:4e8:3d24:de6f with SMTP id n2-20020a195502000000b004e83d24de6fmr5906012lfe.14.1679238669278; Sun, 19 Mar 2023 08:11:09 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:08 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 14/34] hurd: Move rtld-strncpy-c.c out of mach/hurd/ Date: Sun, 19 Mar 2023 18:09:57 +0300 Message-Id: <20230319151017.531737-15-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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" There's nothing Mach- or Hurd-specific about it; any port that ends up with rtld pulling in strncpy will need this. Signed-off-by: Sergey Bugaev --- sysdeps/{mach/hurd => }/i386/i686/multiarch/rtld-strncpy-c.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sysdeps/{mach/hurd => }/i386/i686/multiarch/rtld-strncpy-c.c (100%) diff --git a/sysdeps/mach/hurd/i386/i686/multiarch/rtld-strncpy-c.c b/sysdeps/i386/i686/multiarch/rtld-strncpy-c.c similarity index 100% rename from sysdeps/mach/hurd/i386/i686/multiarch/rtld-strncpy-c.c rename to sysdeps/i386/i686/multiarch/rtld-strncpy-c.c From patchwork Sun Mar 19 15:09:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66596 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 2C2D1383F973 for ; Sun, 19 Mar 2023 15:13:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2C2D1383F973 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238839; bh=SMWj0fstC7UP69bTZDa/dTHSkMzeZu8osDgN5HtG+Ho=; 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=UiTdDEMK/58R1EyPNm9GQ/1KOFaJOnqnE2tvBWABjH6AbUYfvJTqcN6jzeTlIYmMi UM3m5kjbAM2c5on3ukyEGo/Nw12mXH8s4gUDZOO3e447Oyb0kXoeGnlnWtl14VGZdq LIj5XswDiFkGWysKbfLueaELUrpk9IJkLlicTXuA= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by sourceware.org (Postfix) with ESMTPS id 17CC4385B51F for ; Sun, 19 Mar 2023 15:11:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 17CC4385B51F Received: by mail-lf1-x12c.google.com with SMTP id b10so10841649lfb.9 for ; Sun, 19 Mar 2023 08:11:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238670; 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=SMWj0fstC7UP69bTZDa/dTHSkMzeZu8osDgN5HtG+Ho=; b=YloiXf1nCZB+lcNSituUf7L4oEG0DpmpdwexOMiIVdRgawiNM6y526vBI9ETzM6rQU D2Av26Ja4hOhoTPr+8rS9uaO9J6X/PxLI1SeYSNn9ufC7k+8QCll3sORMl8LQSTl6xho cE5ri1KwyLxNhczf8dMg1nKblsH8OXUylpCkKmZOR9v2rxvdaTTgcBf8NNCakfKkmJ6X LLLdIL2as9fMIavR12iq/paiBSOBwuuPuWSB+qcEr+F958tu7/cQnAuhTJbjDQSDBYW6 OY+AW/VqFA5FXMV0kM8KSUhWh4xEUg/m3DwcqZi+AXepnVZU6VZjL44ck0qMP72s56bV 7GUA== X-Gm-Message-State: AO0yUKUxXCpe3TCFZr+R3fApLPE/jjR/boNtbnABoesDGKCYgNSnoj5C e+scEr4d0eTMd8Z/OQAYFcT9K3qDBqlKrg== X-Google-Smtp-Source: AK7set/pYj855xZhIBAwepkHjrvhKoxFVXYBgkZtjW+Tk7pgwRFO7++Nc0A424nReD2RVnyeGuGNiA== X-Received: by 2002:ac2:488f:0:b0:4d5:95c9:4eb9 with SMTP id x15-20020ac2488f000000b004d595c94eb9mr5685192lfc.44.1679238670240; Sun, 19 Mar 2023 08:11:10 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:09 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 15/34] hurd: Use uintptr_t for register values in trampoline.c Date: Sun, 19 Mar 2023 18:09:58 +0300 Message-Id: <20230319151017.531737-16-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.4 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 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" This is more correct, if only because these fields are defined as having the type unsigned int in the Mach headers, so casting them to a signed int and then back is suboptimal. Also, remove an extra reassignment of uesp -- this is another remnant of the ecx kludge. Signed-off-by: Sergey Bugaev --- sysdeps/mach/hurd/i386/trampoline.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sysdeps/mach/hurd/i386/trampoline.c b/sysdeps/mach/hurd/i386/trampoline.c index 8f481e79..ab67fb9c 100644 --- a/sysdeps/mach/hurd/i386/trampoline.c +++ b/sysdeps/mach/hurd/i386/trampoline.c @@ -270,24 +270,23 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action _hurdsig_end_catch_fault (); - state->basic.eip = (int) rpc_wait_trampoline; + state->basic.eip = (uintptr_t) rpc_wait_trampoline; /* The reply-receiving trampoline code runs initially on the original user stack. We pass it the signal stack pointer in %ebx. */ - state->basic.uesp = state->basic.esp; /* Restore mach_msg syscall SP. */ - state->basic.ebx = (int) sigsp; + state->basic.ebx = (uintptr_t) sigsp; /* After doing the message receive, the trampoline code will need to update the %eax value to be restored by sigreturn. To simplify the assembly code, we pass the address of its slot in SCP to the trampoline code in %ecx. */ - state->basic.ecx = (int) &scp->sc_eax; + state->basic.ecx = (uintptr_t) &scp->sc_eax; } else { - state->basic.eip = (int) trampoline; - state->basic.uesp = (int) sigsp; + state->basic.eip = (uintptr_t) trampoline; + state->basic.uesp = (uintptr_t) sigsp; } /* We pass the handler function to the trampoline code in %edx. */ - state->basic.edx = (int) handler; + state->basic.edx = (uintptr_t) handler; /* The x86 ABI says the DF bit is clear on entry to any function. */ state->basic.efl &= ~EFL_DF; From patchwork Sun Mar 19 15:09:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66599 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 87E10383F438 for ; Sun, 19 Mar 2023 15:14:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 87E10383F438 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238874; bh=M7yyXvmKKtqMNJKTCPOz+2UumueFQ96aAjss7cnmxjQ=; 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=xQ+Dr30oOsl0l6Gy0nFAw5w5f3PV3yv4XsyM4RtzzrV5363kIrkbFPwuBbII6R4PJ vNQKtVKaJ1TFpq51JTNRzOMzoA+zVCM1U9c80fOKCxOuq1A/GluCssYA17gGiF321T n1GlP2WB/aP8fuK3U4oLlytWol14UKn+78jMA1c4= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by sourceware.org (Postfix) with ESMTPS id 059923857BA4 for ; Sun, 19 Mar 2023 15:11:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 059923857BA4 Received: by mail-lf1-x12b.google.com with SMTP id bi9so11992096lfb.12 for ; Sun, 19 Mar 2023 08:11:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238671; 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=M7yyXvmKKtqMNJKTCPOz+2UumueFQ96aAjss7cnmxjQ=; b=v7vLFt6fzw55jxq17CztjfuKXGBcjdcSqFinFO7AjODstAkP/bqtLjPcv7oDi/aZ24 mnP+BFW9U5+xX4aONTTyGdkb4ZS4zTZ+PJKE58qM01lFxfzABgV7t53KxGERuC6vumer 67BARQHRW0MnoyYQjRwPXC5IvTLRTRTry679yPlMjMZkIB+D94p5MeTQD+LCh522l4M5 fqo3J+6aDGP/bo6MEsywXVWvK15FkCSFuKDK4EEoo6WXfiUBd2PhlhoQDM3K6wVyo/xA 15JLGQfJwhjmRrAiKTl8DlZYq19tT5RnooAEnkmUERwqd9gi6V1NkAAfc4XHz1tDIwRX b5Uw== X-Gm-Message-State: AO0yUKW8giRX52NLJGGEOO4Tn8hfvIImLX000h3qARe09/52JRlgL0oz Phz45dDJPkzw11OcGzV1KwPnBbjzASdxfw== X-Google-Smtp-Source: AK7set+0XXCOwJX+pP0Acy7flVkkm9xu23JLHj+mQLkk26mtSnXOe8C96+VMm8nn/09cTDlh062GxQ== X-Received: by 2002:a05:6512:38aa:b0:4bb:8d56:d859 with SMTP id o10-20020a05651238aa00b004bb8d56d859mr5210563lft.6.1679238671210; Sun, 19 Mar 2023 08:11:11 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:10 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 16/34] hurd: Add sys/ucontext.h and sigcontext.h for x86_64 Date: Sun, 19 Mar 2023 18:09:59 +0300 Message-Id: <20230319151017.531737-17-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-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, KAM_NUMSUBJECT, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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" This is based on the Linux port's version, but laid out to match Mach's struct i386_thread_state, much like the i386 version does. Signed-off-by: Sergey Bugaev --- I'm not very sure about the FP stuff, nor about any of this, really. Please do review. sysdeps/mach/hurd/x86_64/bits/sigcontext.h | 131 +++++++++++++++++ sysdeps/mach/hurd/x86_64/sys/ucontext.h | 157 +++++++++++++++++++++ sysdeps/mach/hurd/x86_64/ucontext_i.sym | 38 +++++ 3 files changed, 326 insertions(+) create mode 100644 sysdeps/mach/hurd/x86_64/bits/sigcontext.h create mode 100644 sysdeps/mach/hurd/x86_64/sys/ucontext.h create mode 100644 sysdeps/mach/hurd/x86_64/ucontext_i.sym diff --git a/sysdeps/mach/hurd/x86_64/bits/sigcontext.h b/sysdeps/mach/hurd/x86_64/bits/sigcontext.h new file mode 100644 index 00000000..3a3b34bc --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/bits/sigcontext.h @@ -0,0 +1,131 @@ +/* Machine-dependent signal context structure for GNU Hurd. x86_64 version. + 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 + . */ + +#ifndef _BITS_SIGCONTEXT_H +#define _BITS_SIGCONTEXT_H 1 + +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H +# error "Never use directly; include instead." +#endif + +/* Signal handlers are actually called: + void handler (int sig, int code, struct sigcontext *scp); */ + +#include +#include + +/* State of this thread when the signal was taken. */ +struct sigcontext + { + /* These first members are machine-independent. */ + + int sc_onstack; /* Nonzero if running on sigstack. */ + __sigset_t sc_mask; /* Blocked signals to restore. */ + + /* MiG reply port this thread is using. */ + unsigned int sc_reply_port; + + /* Port this thread is doing an interruptible RPC on. */ + unsigned int sc_intr_port; + + /* Error code associated with this signal (interpreted as `error_t'). */ + int sc_error; + + /* All following members are machine-dependent. The rest of this + structure is written to be laid out identically to: + { + struct i386_thread_state basic; + struct i386_float_state fpu; + } + trampoline.c knows this, so it must be changed if this changes. */ + +#define sc_i386_thread_state sc_gs /* Beginning of correspondence. */ + /* Segment registers. */ + int sc_gs; + int sc_fs; + int sc_es; + int sc_ds; + + long sc_r8; + long sc_r9; + long sc_r10; + long sc_r11; + long sc_r12; + long sc_r13; + long sc_r14; + long sc_r15; + long sc_rdi; + long sc_rsi; + long sc_rbp; + long sc_rsp; /* Not used; sc_ursp is used instead. */ + long sc_rbx; + long sc_rdx; + long sc_rcx; + long sc_rax; + long sc_rip; /* Instruction pointer. */ + + int sc_cs; /* Code segment register. */ + + long sc_rfl; /* Processor flags. */ + + long sc_ursp; /* This stack pointer is used. */ + int sc_ss; /* Stack segment register. */ + + /* Following mimics struct i386_float_state. Structures and symbolic + values can be found in . */ +#define sc_i386_float_state sc_fpkind + int sc_fpkind; /* FP_NO, FP_387, etc. */ + int sc_fpused; /* If zero, ignore rest of float state. */ + struct i386_fp_save sc_fpsave; + struct i386_fp_regs sc_fpregs; + int sc_fpexcsr; /* FPSR including exception bits. */ + }; + +/* Traditional BSD names for some members. */ +#define sc_sp sc_ursp /* Stack pointer. */ +#define sc_fp sc_rbp /* Frame pointer. */ +#define sc_pc sc_rip /* Process counter. */ +#define sc_ps sc_rfl + + +/* The deprecated sigcode values below are passed as an extra, non-portable + argument to regular signal handlers. You should use SA_SIGINFO handlers + instead, which use the standard POSIX signal codes. */ + +/* Codes for SIGFPE. */ +#define FPE_INTOVF_TRAP 0x1 /* integer overflow */ +#define FPE_INTDIV_FAULT 0x2 /* integer divide by zero */ +#define FPE_FLTOVF_FAULT 0x3 /* floating overflow */ +#define FPE_FLTDIV_FAULT 0x4 /* floating divide by zero */ +#define FPE_FLTUND_FAULT 0x5 /* floating underflow */ +#define FPE_SUBRNG_FAULT 0x7 /* BOUNDS instruction failed */ +#define FPE_FLTDNR_FAULT 0x8 /* denormalized operand */ +#define FPE_FLTINX_FAULT 0x9 /* floating loss of precision */ +#define FPE_EMERR_FAULT 0xa /* mysterious emulation error 33 */ +#define FPE_EMBND_FAULT 0xb /* emulation BOUNDS instruction failed */ + +/* Codes for SIGILL. */ +#define ILL_INVOPR_FAULT 0x1 /* invalid operation */ +#define ILL_STACK_FAULT 0x2 /* fault on microkernel stack access */ +#define ILL_FPEOPR_FAULT 0x3 /* invalid floating operation */ + +/* Codes for SIGTRAP. */ +#define DBG_SINGLE_TRAP 0x1 /* single step */ +#define DBG_BRKPNT_FAULT 0x2 /* breakpoint instruction */ + +#endif /* bits/sigcontext.h */ diff --git a/sysdeps/mach/hurd/x86_64/sys/ucontext.h b/sysdeps/mach/hurd/x86_64/sys/ucontext.h new file mode 100644 index 00000000..d73a8937 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/sys/ucontext.h @@ -0,0 +1,157 @@ +/* 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 + . */ + +#ifndef _SYS_UCONTEXT_H +#define _SYS_UCONTEXT_H 1 + +#include + +#include +#include +#include + + +#ifdef __USE_MISC +# define __ctx(fld) fld +#else +# define __ctx(fld) __ ## fld +#endif + +/* Type for general register. */ +__extension__ typedef long long int greg_t; + +/* Number of general registers. */ +#define __NGREG 23 +#ifdef __USE_MISC +# define NGREG __NGREG +#endif + +/* Container for all general registers. */ +typedef greg_t gregset_t[__NGREG]; + +#ifdef __USE_GNU +/* Number of each register in the `gregset_t' array. */ +enum +{ + REG_GSFS = 0, /* Actually int gs, fs. */ +# define REG_GSFS REG_GSFS + REG_ESDS, /* Actually int es, ds. */ +# define REG_ESDS REG_ESDS + REG_R8, +# define REG_R8 REG_R8 + REG_R9, +# define REG_R9 REG_R9 + REG_R10, +# define REG_R10 REG_R10 + REG_R11, +# define REG_R11 REG_R11 + REG_R12, +# define REG_R12 REG_R12 + REG_R13, +# define REG_R13 REG_R13 + REG_R14, +# define REG_R14 REG_R14 + REG_R15, +# define REG_R15 REG_R15 + REG_RDI, +# define REG_RDI REG_RDI + REG_RSI, +# define REG_RSI REG_RSI + REG_RBP, +# define REG_RBP REG_RBP + REG_RSP, +# define REG_RSP REG_RSP + REG_RBX, +# define REG_RBX REG_RBX + REG_RDX, +# define REG_RDX REG_RDX + REG_RCX, +# define REG_RCX REG_RCX + REG_RAX, +# define REG_RAX REG_RAX + REG_RIP, +# define REG_RIP REG_RIP + REG_CS, /* Actually int cs, pad. */ +# define REG_CS REG_CS + REG_RFL, +# define REG_RFL REG_RFL + REG_ERR, +# define REG_ERR REG_ERR + REG_TRAPNO, +# define REG_TRAPNO REG_TRAPNO + REG_OLDMASK, +# define REG_OLDMASK REG_OLDMASK + REG_CR2 +# define REG_CR2 REG_CR2 +}; +#endif + +struct _libc_fpxreg +{ + unsigned short int __ctx(significand)[4]; + unsigned short int __ctx(exponent); + unsigned short int __glibc_reserved1[3]; +}; + +struct _libc_xmmreg +{ + __uint32_t __ctx(element)[4]; +}; + +struct _libc_fpstate +{ + /* 64-bit FXSAVE format. */ + __uint16_t __ctx(cwd); + __uint16_t __ctx(swd); + __uint16_t __ctx(ftw); + __uint16_t __ctx(fop); + __uint64_t __ctx(rip); + __uint64_t __ctx(rdp); + __uint32_t __ctx(mxcsr); + __uint32_t __ctx(mxcr_mask); + struct _libc_fpxreg _st[8]; + struct _libc_xmmreg _xmm[16]; + __uint32_t __glibc_reserved1[24]; +}; + +/* Structure to describe FPU registers. */ +typedef struct _libc_fpstate *fpregset_t; + +/* Context to describe whole processor state. */ +typedef struct + { + gregset_t __ctx(gregs); + /* Note that fpregs is a pointer. */ + fpregset_t __ctx(fpregs); + __extension__ unsigned long long __reserved1 [8]; +} mcontext_t; + +/* Userlevel context. */ +typedef struct ucontext_t + { + unsigned long int __ctx(uc_flags); + struct ucontext_t *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + sigset_t uc_sigmask; + struct _libc_fpstate __fpregs_mem; + __extension__ unsigned long long int __ssp[4]; + } ucontext_t; + +#undef __ctx + +#endif /* sys/ucontext.h */ diff --git a/sysdeps/mach/hurd/x86_64/ucontext_i.sym b/sysdeps/mach/hurd/x86_64/ucontext_i.sym new file mode 100644 index 00000000..7e536956 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/ucontext_i.sym @@ -0,0 +1,38 @@ +#include +#include +#include + +-- + +SIG_BLOCK +SIG_SETMASK + +_NSIG8 (_NSIG / 8) + +#define ucontext(member) offsetof (ucontext_t, member) +#define mcontext(member) ucontext (uc_mcontext.member) +#define mreg(reg) mcontext (gregs[REG_##reg]) + +oRBP mreg (RBP) +oRSP mreg (RSP) +oRBX mreg (RBX) +oR8 mreg (R8) +oR9 mreg (R9) +oR10 mreg (R10) +oR11 mreg (R11) +oR12 mreg (R12) +oR13 mreg (R13) +oR14 mreg (R14) +oR15 mreg (R15) +oRDI mreg (RDI) +oRSI mreg (RSI) +oRDX mreg (RDX) +oRAX mreg (RAX) +oRCX mreg (RCX) +oRIP mreg (RIP) +oRFL mreg (RFL) +oFPREGS mcontext (fpregs) +oSIGMASK ucontext (uc_sigmask) +oFPREGSMEM ucontext (__fpregs_mem) +oMXCSR ucontext (__fpregs_mem.mxcsr) +oSSP ucontext (__ssp) From patchwork Sun Mar 19 15:10:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66600 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 B77F73895FEF for ; Sun, 19 Mar 2023 15:14:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B77F73895FEF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238881; bh=39Pod3VWUVa9RpFZLODEfsQkAsDjZrD5YqBfyLKHH28=; 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=VMB/PfszXYLOvuNPvfXGh0NtcqyL/6F1uns2cQhM4AFBGoY4bxpXIyelMriio/KUf XCqcQo+N3a817037QGPEcz3V7yZB0b6qCovQZTCqPRwollxSnJeVtsjJ/Sm0UrcIuV syHl2uLit/nORye/88D2rrgUd0gfp+ZPKy5jVR3Q= 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 DACE63854830 for ; Sun, 19 Mar 2023 15:11:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DACE63854830 Received: by mail-lf1-x135.google.com with SMTP id bi9so11992114lfb.12 for ; Sun, 19 Mar 2023 08:11:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238672; 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=39Pod3VWUVa9RpFZLODEfsQkAsDjZrD5YqBfyLKHH28=; b=2oiKbwodqke9PyG9iTZbebY0zrKyicrENafT/JcbqdIJ864wQOvGKb7JS01PkVBd2A CnTMPfhbOuZsE0pt/4su4Q7mA5UjTB3pRuUNAkO1sE0sRI35wHPHJT0EMh6eIsX/31ED 54lu6gYyH3D5bSXE910fBLA76PPOkXElr+UV4dfbZGA+he9wMufM62ra3ZIvjv3XlkDa vdAM6xmkEB1zWXqu/A/EJosrsr1+kob2IKsBV446g8BXNnnyFGAE6W1S/3xEJLje5tKg qpbasRNlhANluRvxL/ZujD+tgxGB+CvqYX2sea89mascgJ2Da2BjOac/CJcBE+4hAVqk uknA== X-Gm-Message-State: AO0yUKUJ1MUwcQ3Vs1Dguvq9BCs+qJrq+EPAlJX/K4S96MuESd3zbTSG hEsk05imDUSXymoHH6KIvMB/si5VS+7Bbg== X-Google-Smtp-Source: AK7set+Ov07lXNEjr+ReX68PCEBU/LWfYjKg7l0hVDeCfkNeddRMae2at2pLl8hXKlVdmBy8xaaiWQ== X-Received: by 2002:a19:f508:0:b0:4cc:e981:84a with SMTP id j8-20020a19f508000000b004cce981084amr5688126lfb.25.1679238672061; Sun, 19 Mar 2023 08:11:12 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:11 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 17/34] hurd: Implement x86_64/intr-msg.h Date: Sun, 19 Mar 2023 18:10:00 +0300 Message-Id: <20230319151017.531737-18-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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 is a prelimenary version of intr-msg.h. I can't know whether or not it works until we can test it. The code relies on syscall preserving values of the registers used to pass syscall arguments. The code in SYSCALL_EXAMINE that just compares two bytes to the encoded syscall instruction is sure to give many false positives; we're going to need to come up with a more reliable scheme. sysdeps/mach/hurd/x86_64/intr-msg.h | 119 ++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 sysdeps/mach/hurd/x86_64/intr-msg.h diff --git a/sysdeps/mach/hurd/x86_64/intr-msg.h b/sysdeps/mach/hurd/x86_64/intr-msg.h new file mode 100644 index 00000000..5d94c85f --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/intr-msg.h @@ -0,0 +1,119 @@ +/* Machine-dependent details of interruptible RPC messaging. x86_64 version. + Copyright (C) 1995-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 + . */ + + +/* Note that we must mark OPTION and TIMEOUT as outputs of this operation, + to indicate that the signal thread might mutate them as part + of sending us to a signal handler. */ + +#define INTR_MSG_TRAP(msg, option, send_size, rcv_size, rcv_name, timeout, notify, cancel_p, intr_port_p) \ +({ \ + error_t err; \ + register uintptr_t rcv_size_r10 asm ("r10") = rcv_size; \ + register uintptr_t rcv_name_r8 asm ("r8") = rcv_name; \ + register uintptr_t timeout_r9 asm ("r9") = timeout; \ + asm volatile ( \ + ".globl _hurd_intr_rpc_msg_about_to\n" \ + ".globl _hurd_intr_rpc_msg_setup_done\n" \ + ".globl _hurd_intr_rpc_msg_in_trap\n" \ + /* Clear rax before we do the check for cancel below. This is to + detect rax being set to non-zero (actually MACH_SEND_INTERRUPTED) + from the outside (namely, _hurdsig_abort_rpcs), which signals us + to skip the trap we were about to enter. */ \ + " xor %[err], %[err]\n" \ + "_hurd_intr_rpc_msg_about_to:" \ + /* We need to make a last check of cancel, in case we got interrupted + right before _hurd_intr_rpc_msg_about_to. */ \ + " cmpl $0, %[cancel]\n" \ + " jz _hurd_intr_rpc_msg_do\n" \ + /* We got interrupted, note so and return EINTR. */ \ + " movl $0, %[intr_port]\n" \ + " movl %[eintr], %[err]\n" \ + " jmp _hurd_intr_rpc_msg_sp_restored\n" \ + "_hurd_intr_rpc_msg_do:" \ + /* Ok, prepare the mach_msg_trap arguments. We pass the first 6 args + in registers, and push the last one and a fake return address. */ \ + " pushq %[notify]\n" \ + " pushq $0\n" \ + "_hurd_intr_rpc_msg_setup_done:" \ + /* From here on, it is safe to make us jump over the syscall. Now + check if we have been told to skip the syscall while running + the above. */ \ + " test %[err], %[err]\n" \ + " jnz _hurd_intr_rpc_msg_in_trap\n" \ + /* Do the actual syscall. */ \ + " movq $-25, %%rax\n" \ + "_hurd_intr_rpc_msg_do_trap: syscall # status in %[err]\n" \ + "_hurd_intr_rpc_msg_in_trap:" \ + /* Clean the arguments. */ \ + " addq $16, %%rsp\n" \ + "_hurd_intr_rpc_msg_sp_restored:" \ + : [err] "=&a" (err), "+S" (option), [intr_port] "=m" (*intr_port_p), \ + "+r" (timeout_r9) \ + : "D" (msg), "d" (send_size), "r" (rcv_size_r10), "r" (rcv_name_r8), \ + [notify] "rm" ((uintptr_t) notify), [cancel] "m" (*cancel_p), \ + [eintr] "i" (EINTR) \ + : "rcx", "r11"); \ + timeout = timeout_r9; \ + err; \ +}) + +#include "hurdfault.h" + +/* This cannot be an inline function because it calls setjmp. */ +#define SYSCALL_EXAMINE(state, callno) \ +({ \ + struct { unsigned char c[2]; } *p = (void *) ((state)->rip - 2); \ + int result; \ + if (_hurdsig_catch_memory_fault (p)) \ + return 0; \ + if (result = p->c[0] == 0xf && p->c[1] == 0x5) \ + /* The PC appears to be just after a `syscall' instruction. \ + This is a system call in progress; %rax holds the call number. */ \ + *(callno) = (state)->rax; \ + _hurdsig_end_catch_fault (); \ + result; \ +}) + + +/* This cannot be an inline function because it calls setjmp. */ +#define MSG_EXAMINE(state, msgid, rcvname, send_name, opt, tmout) \ +({ \ + int ret = 0; \ + const struct machine_thread_state *s = (state); \ + const mach_msg_header_t *msg = (const void *) s->rdi; \ + *(rcvname) = s->r8; \ + *(opt) = s->rsi; \ + *(tmout) = s->r9; \ + if (msg == 0) \ + { \ + *(send_name) = MACH_PORT_NULL; \ + *(msgid) = 0; \ + } \ + else \ + { \ + ret = _hurdsig_catch_memory_fault (msg) ? -1 : 0; \ + if (ret == 0) \ + { \ + *(send_name) = msg->msgh_remote_port; \ + *(msgid) = msg->msgh_id; \ + _hurdsig_end_catch_fault (); \ + } \ + } \ + ret; \ +}) From patchwork Sun Mar 19 15:10:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66604 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 372BB38AA250 for ; Sun, 19 Mar 2023 15:15:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 372BB38AA250 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238924; bh=fE6lxyZVsAlVX6ABhm5anbru3U/gLTYUgII5CFOx2ug=; 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=aMIogHNlfmDnd635EYnbGLNv6QRwsvvCmvfA+FtCFzW1lQlxPYKJ35dd/BO9ma28a e/XWgqxdyaXMVW+1c6YvJoDHgOtklYpqMAVdZTyUER1PrDCLSPflpqUhUYOOxEtNLZ DcLCfIbX0I/tPESdwZcF9wA1dpAoKkREl0QTDdP4= 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 D27253857400 for ; Sun, 19 Mar 2023 15:11:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D27253857400 Received: by mail-lf1-x12a.google.com with SMTP id g17so12039589lfv.4 for ; Sun, 19 Mar 2023 08:11:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238673; 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=fE6lxyZVsAlVX6ABhm5anbru3U/gLTYUgII5CFOx2ug=; b=veNjvxdud87XOGXs1ZO0OueheOkviRBDrpay2iJ4pVIip3C1IivaTbi6a2522RGjcs jMU7c3yzf1/Sikco+YSj5QUGCDktooufzu+xNjX7i57bZZ2+f/l3WLnhyUI2rnBNfX5J DsPJaR/qxq5sMgFtMk9aMKKeSPR/iyWbUHA2CkqUHEXVvjklZTdZ7svpTyvdqrXABMgJ 7AFSURlqGOCRmnOguR5s5pxqTI15A4N1YlcYC5RBc7LZ7MbDpiRPYvJSAzMF9uLRQGwq 3FAjaDh4BEQOqAmEsLY3P+sZRLlNrHbCOGg3VZlE9edPQOPda6ngWk2wK1f8IwY6QtTe 76OQ== X-Gm-Message-State: AO0yUKWxkj/xs/RNjZnyORCCmVfQbYTP6mIY7TtjXEZznzrqRPcL3yU4 vNG4/sjQ9X3L5qha6NFGwj0yIkzmLPV2ng== X-Google-Smtp-Source: AK7set9MRDxg/3goeUnKi+F2Drl5zb252ZuckB1wU9+ryTVoaIqVaL2a3mb1Mdc07GIkdNeXO0ypHg== X-Received: by 2002:ac2:4c0b:0:b0:4e8:3f35:6844 with SMTP id t11-20020ac24c0b000000b004e83f356844mr6034428lfq.19.1679238673072; Sun, 19 Mar 2023 08:11:13 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:12 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 18/34] hurd: Port trampoline.c to x86_64 Date: Sun, 19 Mar 2023 18:10:01 +0300 Message-Id: <20230319151017.531737-19-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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 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 --- Same as for intr-msg.h, can't know whether this works until we try it. sysdeps/mach/hurd/{i386 => x86}/trampoline.c | 139 ++++++++++++++++++- 1 file changed, 132 insertions(+), 7 deletions(-) rename sysdeps/mach/hurd/{i386 => x86}/trampoline.c (71%) diff --git a/sysdeps/mach/hurd/i386/trampoline.c b/sysdeps/mach/hurd/x86/trampoline.c similarity index 71% rename from sysdeps/mach/hurd/i386/trampoline.c rename to sysdeps/mach/hurd/x86/trampoline.c index ab67fb9c..894c9f2c 100644 --- a/sysdeps/mach/hurd/i386/trampoline.c +++ b/sysdeps/mach/hurd/x86/trampoline.c @@ -1,4 +1,4 @@ -/* Set thread_state for sighandler, and sigcontext to recover. i386 version. +/* Set thread_state for sighandler, and sigcontext to recover. x86 version. Copyright (C) 1994-2023 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -46,7 +46,13 @@ static void fill_siginfo (siginfo_t *si, int signo, if (detail->exc == EXC_BAD_ACCESS) si->si_addr = (void *) detail->exc_subcode; else - si->si_addr = (void *) state->basic.eip; + { +#ifdef __x86_64__ + si->si_addr = (void *) state->basic.rip; +#else + si->si_addr = (void *) state->basic.eip; +#endif + } /* XXX On SIGCHLD, this should be the exit status of the child * process. We would need a protocol change for the proc server @@ -63,17 +69,26 @@ static void fill_ucontext (ucontext_t *uc, const struct sigcontext *sc) uc->uc_flags = 0; uc->uc_link = NULL; uc->uc_sigmask = sc->sc_mask; +#ifdef __x86_64__ + uc->uc_stack.ss_sp = (__ptr_t) sc->sc_ursp; +#else uc->uc_stack.ss_sp = (__ptr_t) sc->sc_uesp; +#endif uc->uc_stack.ss_size = 0; uc->uc_stack.ss_flags = 0; /* Registers. */ +#ifdef __x86_64__ + memcpy (&uc->uc_mcontext.gregs[REG_GSFS], &sc->sc_gs, + (REG_ERR - REG_GSFS) * sizeof (long)); +#else memcpy (&uc->uc_mcontext.gregs[REG_GS], &sc->sc_gs, - (REG_TRAPNO - REG_GS) * sizeof (int)); - uc->uc_mcontext.gregs[REG_TRAPNO] = 0; - uc->uc_mcontext.gregs[REG_ERR] = 0; + (REG_TRAPNO - REG_GS) * sizeof (int)); memcpy (&uc->uc_mcontext.gregs[REG_EIP], &sc->sc_eip, (NGREG - REG_EIP) * sizeof (int)); +#endif + uc->uc_mcontext.gregs[REG_TRAPNO] = 0; + uc->uc_mcontext.gregs[REG_ERR] = 0; /* XXX FPU state. */ memset (&uc->uc_mcontext.fpregs, 0, sizeof (fpregset_t)); @@ -93,7 +108,14 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action struct sigcontext *scp; struct { - int signo; + union + { + int signo; + /* Make sure signo takes up a pointer-sized slot on the stack. + (This should already be the case considering the siginfop + pointer below, but better be explicit.) */ + void *_pointer_sized; + }; union { /* Extra arguments for traditional signal handlers */ @@ -142,7 +164,11 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action /* Save the original SP in the gratuitous `esp' slot. We may need to reset the SP (the `uesp' slot) to avoid clobbering an interrupted RPC frame. */ +#ifdef __x86_64__ + state->basic.rsp = state->basic.ursp; +#else state->basic.esp = state->basic.uesp; +#endif if ((action->sa_flags & SA_ONSTACK) && !(ss->sigaltstack.ss_flags & (SS_DISABLE|SS_ONSTACK))) @@ -151,7 +177,15 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action ss->sigaltstack.ss_flags |= SS_ONSTACK; } else - sigsp = (char *) state->basic.uesp; + { +#ifdef __x86_64__ + /* Per the ABI, we're not supposed to clobber 128 bytes below + SP -- the red zone. */ + sigsp = (char *) state->basic.ursp - 128; +#else + sigsp = (char *) state->basic.uesp; +#endif + } /* Push the arguments to call `trampoline' on the stack. */ sigsp -= sizeof (*stackframe); @@ -238,6 +272,52 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action } /* Modify the thread state to call the trampoline code on the new stack. */ +#ifdef __x86_64__ + if (rpc_wait) + { + /* The signalee thread was blocked in a mach_msg_trap system call, + still waiting for a reply. We will have it run the special + trampoline code which retries the message receive before running + the signal handler. + + To do this we change the OPTION argument (in rsi) to enable only + message reception, since the request message has already been + sent. */ + + assert (state->basic.rsi & MACH_RCV_MSG); + /* Disable the message-send, since it has already completed. The + calls we retry need only wait to receive the reply message. */ + state->basic.rsi &= ~MACH_SEND_MSG; + + /* Limit the time to receive the reply message, in case the server + claimed that `interrupt_operation' succeeded but in fact the RPC + is hung. */ + state->basic.rsi |= MACH_RCV_TIMEOUT; + state->basic.r9 = _hurd_interrupted_rpc_timeout; + + state->basic.rip = (uintptr_t) rpc_wait_trampoline; + /* The reply-receiving trampoline code runs initially on the original + user stack. We pass it the signal stack pointer in %rbx. */ + state->basic.rbx = (uintptr_t) sigsp; + /* After doing the message receive, the trampoline code will need to + update the %rax value to be restored by sigreturn. To simplify + the assembly code, we pass the address of its slot in SCP to the + trampoline code in %r12. */ + state->basic.r12 = (uintptr_t) &scp->sc_rax; + } + else + { + state->basic.rip = (uintptr_t) trampoline; + state->basic.ursp = (uintptr_t) sigsp; + } + /* We pass the handler function to the trampoline code in %r13. */ + state->basic.r13 = (uintptr_t) handler; + + /* The x86 ABI says the DF bit is clear on entry to any function. */ + state->basic.rfl &= ~EFL_DF; + +#else + if (rpc_wait) { /* The signalee thread was blocked in a mach_msg_trap system call, @@ -290,6 +370,7 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action /* The x86 ABI says the DF bit is clear on entry to any function. */ state->basic.efl &= ~EFL_DF; +#endif return scp; } @@ -301,6 +382,49 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, const struct sigaction *action - in gcc: libgcc/config/i386/gnu-unwind.h x86_gnu_fallback_frame_state, - in gdb: gdb/i386-gnu-tdep.c gnu_sigtramp_code. */ +#ifdef __x86_64__ +asm ("rpc_wait_trampoline:\n" + /* This is the entry point when we have an RPC reply message to receive + before running the handler. The MACH_MSG_SEND bit has already been + cleared in the OPTION argument on our stack. The interrupted user + stack pointer has not been changed, so the system call can find its + arguments; the signal stack pointer is in %rbx. For our convenience, + %r12 points to the sc_rax member of the sigcontext. */ + "movq $-25, %rax\n" /* mach_msg_trap */ + "syscall\n" + /* When the sigcontext was saved, %rax was MACH_RCV_INTERRUPTED. But + now the message receive has completed and the original caller of + the RPC (i.e. the code running when the signal arrived) needs to + see the final return value of the message receive in %rax. So + store the new %rax value into the sc_rax member of the sigcontext + (whose address is in %r12 to make this code simpler). */ + "movq %rax, (%r12)\n" + /* Switch to the signal stack. */ + "movq %rbx, %rsp\n" + + "trampoline:\n" + /* Entry point for running the handler normally. The arguments to the + handler function are on the top of the stack, same as in the i386 + version: + + 0(%rsp) SIGNO + 8(%rsp) SIGCODE + 16(%rsp) SCP + + Pop them off to the registers, to pass as arguments to the handler. + */ + "popq %rdi\n" + "popq %rsi\n" + "popq %rdx\n" + "call *%r13\n" /* Call the handler function. */ + /* The word at the top of stack is &__sigreturn; following are a dummy + word to fill the slot for the address for __sigreturn to return to, + and a copy of SCP for __sigreturn's argument. Load the SCP as for a + call, and "return" to calling __sigreturn (SCP); this call never + returns. */ + "movq 16(%rsp), %rdi\n" + "ret"); +#else asm ("rpc_wait_trampoline:\n"); /* This is the entry point when we have an RPC reply message to receive before running the handler. The MACH_MSG_SEND bit has already been @@ -336,6 +460,7 @@ asm ("call *%edx\n" /* Call the handler function. */ and a copy of SCP for __sigreturn's argument. "Return" to calling __sigreturn (SCP); this call never returns. */ "ret"); +#endif asm ("firewall:\n" "hlt"); From patchwork Sun Mar 19 15:10:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66589 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 1F475384842E for ; Sun, 19 Mar 2023 15:12:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1F475384842E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238747; bh=5GSyLBtU041vPq0BHlIKyeEK8zWUbm1aj1CI3pPz8mI=; 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=qBPrpgByz+DLCvVzdNqrJG7nqQ8R5hoTZLyXiOP2asQpPv+lCPUJMooNaQaa/LAYb +/Mmq2lf6uzuAZcPcEVyI967G3/Lkpt8Vg1qeOtpW8at3xWr3lyF9D+Hrb3YRNeeef cCIfRwWnwTW9AQNsm9GwW/wkol+cuE/2PwEo6gd8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by sourceware.org (Postfix) with ESMTPS id E08A43857C71 for ; Sun, 19 Mar 2023 15:11:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E08A43857C71 Received: by mail-lf1-x130.google.com with SMTP id h25so355394lfv.6 for ; Sun, 19 Mar 2023 08:11:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238674; 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=5GSyLBtU041vPq0BHlIKyeEK8zWUbm1aj1CI3pPz8mI=; b=PpfbRyyuroUBTGfPY6s8keRyl0/Eh8HVN4y+LfzroT/wg0+I3fa7XU44pZmOGmW5n5 JBpZzR3EA5rYnHmJm5qnKEdtHq4h0ULq45UqHdM/bi5Em81BncJRzqNFDt36wOSN8dhy BYYf0YmZF8UOsnMVNOqMRreYiyw+trj8XVc0+txDzQw0/IlH7GKGJr2LTs3UaheYvW2u 5Q754iwL+BhP0Kh2qt0LLaBilyI5KUBS8EHySeSF31HS3ZlB/MwFxv+nqQ55JqaNJ//v V+pNNe2KJ8L75/q6uItXoNlilN7R2qseoaSFv8bzmTp35Vc02ZXh1weJllMPjB55ktyN mjEg== X-Gm-Message-State: AO0yUKXB4iJd5OSz8tOFvgNpNjU0+H303vpUsYp9kFT0PacpcVbs8Ts/ muiJQ8IahP1DWfQIfc0GUCQjg3RDi2t5Xw== X-Google-Smtp-Source: AK7set/00B4J448s4y2T1ASteuZguYh1+5vTKsCO4xcQpV33OEX0cis8jvb4bPkGyr6r6fMxHMdQeg== X-Received: by 2002:a05:6512:21d:b0:4e8:3cf8:5d64 with SMTP id a29-20020a056512021d00b004e83cf85d64mr5604697lfo.37.1679238674223; Sun, 19 Mar 2023 08:11:14 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:13 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 19/34] hurd: Move a couple of singal-related files to x86 Date: Sun, 19 Mar 2023 18:10:02 +0300 Message-Id: <20230319151017.531737-20-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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 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 do not need any changes to be used on x86_64. Signed-off-by: Sergey Bugaev --- sysdeps/mach/hurd/{i386 => x86}/exc2signal.c | 0 sysdeps/mach/hurd/{i386 => x86}/signal-defines.sym | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename sysdeps/mach/hurd/{i386 => x86}/exc2signal.c (100%) rename sysdeps/mach/hurd/{i386 => x86}/signal-defines.sym (100%) diff --git a/sysdeps/mach/hurd/i386/exc2signal.c b/sysdeps/mach/hurd/x86/exc2signal.c similarity index 100% rename from sysdeps/mach/hurd/i386/exc2signal.c rename to sysdeps/mach/hurd/x86/exc2signal.c diff --git a/sysdeps/mach/hurd/i386/signal-defines.sym b/sysdeps/mach/hurd/x86/signal-defines.sym similarity index 100% rename from sysdeps/mach/hurd/i386/signal-defines.sym rename to sysdeps/mach/hurd/x86/signal-defines.sym From patchwork Sun Mar 19 15:10:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66603 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 BCCC338A9080 for ; Sun, 19 Mar 2023 15:15:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BCCC338A9080 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238916; bh=1s/3IDPxIftGRKUvIDCZcIn2gksJomjJG+CXeCNKXQI=; 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=OhcImGmuOpuTj8YF+s/P+03TOFag3tFk5MdSX+iVtNl74hLAzt5brYQgiTaJdaR3F XIJplgtlTr6lfg36MFewi7G7WHr7+YNj846ED1XSSFgHUQFR1Pa6VD9kRB4wNxGKzL 3t+sjb+WBgHTkNBufPT6hOjKjAnD0HWBQ8KqZQH8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by sourceware.org (Postfix) with ESMTPS id 140F1385B530 for ; Sun, 19 Mar 2023 15:11:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 140F1385B530 Received: by mail-lf1-x12b.google.com with SMTP id bi9so11992200lfb.12 for ; Sun, 19 Mar 2023 08:11:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238675; 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=1s/3IDPxIftGRKUvIDCZcIn2gksJomjJG+CXeCNKXQI=; b=EDangUeAFHAOZ1yCY4HnJppTKFuWS1/N97WmFE/NFG8imW5vj8xwfMLTLbbrHeOwBP jfcia2/ZC0gt+VNhk/irK7lAw/OQriB1UitZdUy68S/A+fxtSG5n8JtUOAPVQ5KWJCQL CDg768cZm2VYtbZqEcpmTDTYa7kjzKg0OueLM8AiTpqUnrLYwC0g56VdPDFiieZ6FIMo a8NhfWnrpdRk22SaavxNdxMoDEPfBCU2ayjGGwp/iKlOfWxr0c3e70eb5PSaYJr2cKXq YyQw8t/dXD2KIBZ6TpbGKuSKMm1If2hXxxEi/W2gwbxag565AAUunKygrKqoxjzH6ZPu ufLA== X-Gm-Message-State: AO0yUKWJ9n6JcbceV2UMNWgGRZlCjX3iQGknfr2/2ILc8o9zLC6D0YJm CD1LB6fGz68D5vLaSOuNpUNu4j7GJxKm8g== X-Google-Smtp-Source: AK7set+rlc66+vPB1TVU8EMvEabH1Q9z0o9cQX1HqEB3i3nIV+Yv2ci/zqWg4t26AdGmBN1NoOCnsA== X-Received: by 2002:ac2:5583:0:b0:4dd:a025:d83 with SMTP id v3-20020ac25583000000b004dda0250d83mr5878766lfg.9.1679238675173; Sun, 19 Mar 2023 08:11:15 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:14 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 20/34] htl: Add tcb-offsets.sym for x86_64 Date: Sun, 19 Mar 2023 18:10:03 +0300 Message-Id: <20230319151017.531737-21-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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 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" The source code is the same as sysdeps/i386/htl/tcb-offsets.sym, but of course the produced tcb-offsets.h will be different. Signed-off-by: Sergey Bugaev --- sysdeps/x86_64/htl/Makefile | 20 ++++++++++++++++++++ sysdeps/x86_64/htl/tcb-offsets.sym | 8 ++++++++ 2 files changed, 28 insertions(+) create mode 100644 sysdeps/x86_64/htl/Makefile create mode 100644 sysdeps/x86_64/htl/tcb-offsets.sym diff --git a/sysdeps/x86_64/htl/Makefile b/sysdeps/x86_64/htl/Makefile new file mode 100644 index 00000000..1ced1d12 --- /dev/null +++ b/sysdeps/x86_64/htl/Makefile @@ -0,0 +1,20 @@ +# Copyright (C) 2020-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 +# . + +ifeq ($(subdir),csu) +gen-as-const-headers += tcb-offsets.sym +endif diff --git a/sysdeps/x86_64/htl/tcb-offsets.sym b/sysdeps/x86_64/htl/tcb-offsets.sym new file mode 100644 index 00000000..7b7c7193 --- /dev/null +++ b/sysdeps/x86_64/htl/tcb-offsets.sym @@ -0,0 +1,8 @@ +#include +#include +#include + +MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads) +SYSINFO_OFFSET offsetof (tcbhead_t, sysinfo) +POINTER_GUARD offsetof (tcbhead_t, pointer_guard) +SIGSTATE_OFFSET offsetof (tcbhead_t, _hurd_sigstate) From patchwork Sun Mar 19 15:10:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66612 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 ADC7F3826FDA for ; Sun, 19 Mar 2023 15:17:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ADC7F3826FDA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679239041; bh=chWMAC9UUXBhF6BCwf0aNHH+U12GEWzdapM7A6/oqso=; 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=QnV4d/rnDwfBLo59r4tIpM8y48v2z3Gjb7bIP1arYtqtdy7w/SG9rxce9rALb7YrT BH1PDobzFojdOBeYDxsPsGKWPj8h6zZXBvSoi0PK3M9dIqT5zV76rbcvbpkDa5FYlw 63kZyvyEI6i98HN3ErjM2HC3PB3Er2r85m4niDXY= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by sourceware.org (Postfix) with ESMTPS id CA9CC3858C2B for ; Sun, 19 Mar 2023 15:11:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CA9CC3858C2B Received: by mail-lf1-x133.google.com with SMTP id br6so12000047lfb.11 for ; Sun, 19 Mar 2023 08:11:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238676; 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=chWMAC9UUXBhF6BCwf0aNHH+U12GEWzdapM7A6/oqso=; b=8HVAS7J3PBbztopcX3sTL5XTkMU3nDgZyXz7azI64RpKvfGLY+7k71oW9erdUpsyV1 JJTW2MHNQbi1O9Jig5xRF09BpRPmJOkCE2ZAhSMjzpmUwDSuGR9F1QedWcu09RBMDbN3 bQcfW2sRJfx5gf3SZwDjWb4/o8FU5e/reRRT2vJ0yQO579KiKgp0bkwg5h4Rc0FJQrMz SKgpyUZpbEbEOUB+v82lETlC09gb/Fsg4jWTRJ64vulEi6jKDVA/tdK1oNNm+jIP9Kjj 0gblBtMpM+2JIbOn30QkBilTVCA1J6iDD/oW3ApEcoA4wkQD6xZ7joRW0EZUrfDkUvJ4 CdXA== X-Gm-Message-State: AO0yUKVlDZ9810LeyJmcOXJp0Fq0IqLz9xUWLld5L39Es7qUm7chTzRC bBtLjNNGAlPV16R4921pNbqIe5wTUXHmww== X-Google-Smtp-Source: AK7set9T0oVZNw/aw058km8X+h4+Qyp0PmbafTTIYxl0Cn0gB213swg2Vxuw+E7tMAdkZswQV8KlbQ== X-Received: by 2002:a05:6512:374d:b0:4e8:410d:9aef with SMTP id a13-20020a056512374d00b004e8410d9aefmr6085006lfs.54.1679238676173; Sun, 19 Mar 2023 08:11:16 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:15 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 21/34] x86_64: Add rtld-stpncpy & rtld-strncpy Date: Sun, 19 Mar 2023 18:10:04 +0300 Message-Id: <20230319151017.531737-22-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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" Just like the other existing rtld-str* files, this provides rtld with usable versions of stpncpy and strncpy. Signed-off-by: Sergey Bugaev --- sysdeps/x86_64/multiarch/rtld-stpncpy.S | 18 ++++++++++++++++++ sysdeps/x86_64/multiarch/rtld-strncpy.S | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 sysdeps/x86_64/multiarch/rtld-stpncpy.S create mode 100644 sysdeps/x86_64/multiarch/rtld-strncpy.S diff --git a/sysdeps/x86_64/multiarch/rtld-stpncpy.S b/sysdeps/x86_64/multiarch/rtld-stpncpy.S new file mode 100644 index 00000000..1c6780a1 --- /dev/null +++ b/sysdeps/x86_64/multiarch/rtld-stpncpy.S @@ -0,0 +1,18 @@ +/* Copyright (C) 2022-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 "../stpncpy.S" diff --git a/sysdeps/x86_64/multiarch/rtld-strncpy.S b/sysdeps/x86_64/multiarch/rtld-strncpy.S new file mode 100644 index 00000000..500a1002 --- /dev/null +++ b/sysdeps/x86_64/multiarch/rtld-strncpy.S @@ -0,0 +1,18 @@ +/* Copyright (C) 2022-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 "../strncpy.S" From patchwork Sun Mar 19 15:10:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66607 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 1FF313885C20 for ; Sun, 19 Mar 2023 15:15:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1FF313885C20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238959; bh=PuNTEMo+upG57twKXDyN8ZRSb+xP1T3ItPyWXtT3Rus=; 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=wWWrgvW87hE5rIRNYDgg2nd1wab3kJVNOTiWDvZOFjxWGNrf5QlyQfa6Y6a1vDdyP iI5MLdKMQxjoaY0E0yp6JR9BrfHEQ/3/+JCcWu0rrlB4wtQjwcU3eZltfwf6Wkd9EI Xg5X+zsJyeIuN4QdgStO9fGssHZfI7PPrG8dyKkU= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by sourceware.org (Postfix) with ESMTPS id D202A38515E4 for ; Sun, 19 Mar 2023 15:11:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D202A38515E4 Received: by mail-lf1-x12f.google.com with SMTP id y20so12036802lfj.2 for ; Sun, 19 Mar 2023 08:11:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238677; 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=PuNTEMo+upG57twKXDyN8ZRSb+xP1T3ItPyWXtT3Rus=; b=Ts3EJx5OeZ5ZIxlejMmSu1zGe/isHeyMeCZhfRr/IquIYryro1+7wW/Jk826wvP8nu GjQO0IM+42L96llj/MItylmqlR7eccAbNssv3zMYta+nNcGU/gczJIx6bhFtPGazT4PZ 14TsXuoio4v+PNXyWnJdKvVU57WmEQgbQvXTbfJg2O34xBKbeAPUNJdJmpDJpemRrlhR nFsnpwWhpc23/9tjFs1SQAji3QlKVz4HmWMNKG4/XD9ManowjcJEaf1Jpd5x08c8u7WX Q2mC2oDSiH0NhILqQ06uyNfoR6T4kfK1O0k3fPkUuhkQrNTKNvLW0M4D7zmRzf8HXy/p xbMA== X-Gm-Message-State: AO0yUKWg8yoEAbC0GI6pF4pYqWvHYUpXfgkPYbeireMm4EWitC0q4eJ+ TXpo9wM6TNxrYdE2o5oQKI2L8+e50s46TA== X-Google-Smtp-Source: AK7set+ypsyBla4QepJxtXkZ0rJ5Ekopx7mTNaAFVS5N9Z30OgFfw9Dd4LnnZmDr61/iW6XmDfWKvw== X-Received: by 2002:ac2:5623:0:b0:4db:38a2:e985 with SMTP id b3-20020ac25623000000b004db38a2e985mr5901340lff.62.1679238677241; Sun, 19 Mar 2023 08:11:17 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:16 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 22/34] htl: Implement thread_set_pcsptp for x86_64 Date: Sun, 19 Mar 2023 18:10:05 +0300 Message-Id: <20230319151017.531737-23-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.2 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 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 --- sysdeps/mach/hurd/x86_64/htl/pt-machdep.c | 73 +++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 sysdeps/mach/hurd/x86_64/htl/pt-machdep.c diff --git a/sysdeps/mach/hurd/x86_64/htl/pt-machdep.c b/sysdeps/mach/hurd/x86_64/htl/pt-machdep.c new file mode 100644 index 00000000..69094d3b --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/htl/pt-machdep.c @@ -0,0 +1,73 @@ +/* Machine dependent pthreads code. Hurd/x86_64 version. + Copyright (C) 2000-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 + +int +__thread_set_pcsptp (thread_t thread, + int set_ip, void *ip, + int set_sp, void *sp, + int set_tp, void *tp) +{ + error_t err; + struct i386_thread_state state; + struct i386_fsgs_base_state fsgs_state; + mach_msg_type_number_t state_count; + + state_count = i386_THREAD_STATE_COUNT; + + err = __thread_get_state (thread, i386_REGS_SEGS_STATE, + (thread_state_t) &state, &state_count); + if (err) + return err; + assert (state_count == i386_THREAD_STATE_COUNT); + + if (set_sp) + state.ursp = (uintptr_t) sp; + if (set_ip) + state.rip = (uintptr_t) ip; + + err = __thread_set_state (thread, i386_REGS_SEGS_STATE, + (thread_state_t) &state, i386_THREAD_STATE_COUNT); + if (err) + return err; + + if (set_tp) + { + state_count = i386_FSGS_BASE_STATE_COUNT; + err = __thread_get_state (thread, i386_FSGS_BASE_STATE, + (thread_state_t) &fsgs_state, &state_count); + if (err) + return err; + assert (state_count == i386_FSGS_BASE_STATE_COUNT); + fsgs_state.fs_base = (uintptr_t) tp; + err = __thread_set_state (thread, i386_FSGS_BASE_STATE, + (thread_state_t) &fsgs_state, state_count); + if (err) + return err; + } + + return 0; +} From patchwork Sun Mar 19 15:10:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66608 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 DBAE13948829 for ; Sun, 19 Mar 2023 15:16:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DBAE13948829 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238966; bh=16MJsJScpYPA0KQa4Y/NKWPT1vq+jdOV8WSMLONJpZ8=; 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=lYZZxc60WLrnm7iIU1z28nhZAtlzsBc5tHZTPns9nQoVeJISADOpbM9MGdGg4V/Ce zJXKrpbC2IC5oPh0Dhg4DtRS75+47FRVz6i13wLKb6JzlYcKrOapWyvnJtW+2+1Uzm E8U1hOcvjPZ3FbSqMP5Xtb1E/gScEzDzO6JK9wug= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by sourceware.org (Postfix) with ESMTPS id 0D26738555B6 for ; Sun, 19 Mar 2023 15:11:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0D26738555B6 Received: by mail-lf1-x12f.google.com with SMTP id s8so11743484lfr.8 for ; Sun, 19 Mar 2023 08:11:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238678; 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=16MJsJScpYPA0KQa4Y/NKWPT1vq+jdOV8WSMLONJpZ8=; b=JO+eTe5WtRhBrTzp7AadurP6vYh7fgUJyApWvbkPZfLNMei0yI8Luv/ICr2Tb60PiO +rOkoTAmQvPnXqe+RfCnxoq2gGfEyB8CKJH6r+t00VL986yWE5UW10g5LI2yiWqN5fnj Cy/jq0aqNfkCN1jIuRdAi8QFmDbnCp0qT92I+QxmFjXraa1dwgxRkRS3s2nteImdnL32 EpmCAbHrW2uX6LuovbMI5SQr1y/tSGfXxqeseICnSssIXPWWEgkpDcIdutjaP/qKHW0W Bv+AwATZ0UEFrKPczSjc7hy9NHLyEpesUQ2dMUoipk8egIBvmLDhWJPIbQfRAQuDilPr ZI4A== X-Gm-Message-State: AO0yUKUdQqNyhCrKmIqGk04ytK8Ug0bBwkUAwndscTAHWm97fayHVO/4 RyAojML+3mbrd3oQDXpnwnpn1WyTt/7dFg== X-Google-Smtp-Source: AK7set/sCTlXBFG3hT6fC4rjdX/GH2oxbAJy5vr/vVcnxU37bw23gS4gr1B/yjXi9zCCsp3XC5ZF7g== X-Received: by 2002:ac2:5621:0:b0:4cd:47e:47a9 with SMTP id b1-20020ac25621000000b004cd047e47a9mr5208923lff.58.1679238678188; Sun, 19 Mar 2023 08:11:18 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:17 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 23/34] elf: Stop including tls.h in ldsodefs.h Date: Sun, 19 Mar 2023 18:10:06 +0300 Message-Id: <20230319151017.531737-24-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.5 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 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" Nothing in there needs tls.h Signed-off-by: Sergey Bugaev --- sysdeps/generic/ldsodefs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index c99dad77..5f21bc63 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -38,7 +38,6 @@ #include #include #include -#include #include __BEGIN_DECLS From patchwork Sun Mar 19 15:10:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66610 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 0A8C33947C3D for ; Sun, 19 Mar 2023 15:16:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0A8C33947C3D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679239002; bh=lulHsK2vpaxjIqOHpBApkSHcTfiMkO/3EFWLP2d77ME=; 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=qyILWLlbHWMu8f+6SHeQKrwX3xFOlzdVmpmmdH5LRmLlx585i4QvG+A7KeoOdR0j/ dRaCM7WuppVuWPIVHQmDTby1G+8ghX/9KPmaHJObma96KDg+tw7Sxyr5GZSEncFJNb XCyAtOAaKmAZ9o+IyoRQ+A1BS617f0MmvJ/ty3iA= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by sourceware.org (Postfix) with ESMTPS id 260AE3858032 for ; Sun, 19 Mar 2023 15:11:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 260AE3858032 Received: by mail-lf1-x12c.google.com with SMTP id b10so10841933lfb.9 for ; Sun, 19 Mar 2023 08:11:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238679; 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=lulHsK2vpaxjIqOHpBApkSHcTfiMkO/3EFWLP2d77ME=; b=A2VXykoXN+MDG0NFm8WAZEGY2/I/zbIv4y1s7nxWW7m5Y7++RQ6M7YvAiYuNQEmTrP DzKVYlicInFKFVHLzEW3aQz9obxbZf2xcQqi1rHUxWNt+FXo6xQd4Vy8BuB2OPAbMRMJ Tfa7MKd3ku7Tx65XdyjNknHs/XOLFpymIhPuaRHvzepQS/Q92jkBDC08NqySjV/3Fbwz rvDYMBYCY07bop0QV9q8M8pnfye5109pUliMI9sICwWxs96FwlYp3QzzwCUkh0zRc7oD l7URVn8NFyNYHzzPTk4avb06v+9qqaGgNurDFH9e1ioDBBMjZqWS3qdZ1MTpQEBbBxxQ DS2g== X-Gm-Message-State: AO0yUKUJx80kVE7SWSav4Cb55v19a6Hww3Vx56BROTwIioyLi1ujnlxk V4IJSdttyRKnw81AV+dQi7ibQ2veweanZQ== X-Google-Smtp-Source: AK7set91UV6YrgXVMTx6HgCb3kiU/AdWBQ3Uq4qvFBu6StbYXpvAWa3HtIwceC115Ta0dCLLFgvjcA== X-Received: by 2002:a19:7003:0:b0:4e8:a0a3:e242 with SMTP id h3-20020a197003000000b004e8a0a3e242mr3316325lfc.7.1679238679320; Sun, 19 Mar 2023 08:11:19 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:19 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 24/34] hurd: Only check for TLS initialization inside rtld or in static builds Date: Sun, 19 Mar 2023 18:10:07 +0300 Message-Id: <20230319151017.531737-25-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_BLACK 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" When glibc is built as a shared library, TLS is always initialized by the call of TLS_INIT_TP () macro made inside the dynamic loader, prior to running the main program (see dl-call_tls_init_tp.h). We can take advantage of this: we know for sure that __LIBC_NO_TLS () will evaluate to 0 in all other cases, so let the compiler know that explicitly too. Also, only define _hurd_tls_init () and TLS_INIT_TP () under the same conditions (either !SHARED or inside rtld), to statically assert that this is the case. Other than a microoptimization, this also helps with avoiding awkward sharing of the __libc_tls_initialized variable between ld.so and libc.so that we would have to do otherwise -- we know for sure that no sharing is required, simply because __libc_tls_initialized would always be set to true inside libc.so. Signed-off-by: Sergey Bugaev --- sysdeps/mach/hurd/Makefile | 4 ++ sysdeps/mach/hurd/i386/dl-tls-initialized.c | 21 +++++++++ sysdeps/mach/hurd/i386/tls.h | 43 +++++++++++-------- sysdeps/mach/hurd/x86/init-first.c | 11 +---- sysdeps/mach/hurd/x86_64/dl-tls-initialized.c | 21 +++++++++ sysdeps/mach/hurd/x86_64/tls.h | 19 +++++--- 6 files changed, 85 insertions(+), 34 deletions(-) create mode 100644 sysdeps/mach/hurd/i386/dl-tls-initialized.c create mode 100644 sysdeps/mach/hurd/x86_64/dl-tls-initialized.c diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile index d5584930..f43e92ba 100644 --- a/sysdeps/mach/hurd/Makefile +++ b/sysdeps/mach/hurd/Makefile @@ -197,6 +197,10 @@ ifeq (hurd, $(subdir)) sysdep_routines += cthreads endif +ifeq (elf, $(subdir)) +sysdep-dl-routines += dl-tls-initialized +endif + ifeq (io, $(subdir)) sysdep_routines += f_setlk close_nocancel close_nocancel_nostatus \ fcntl_nocancel open_nocancel openat_nocancel read_nocancel \ diff --git a/sysdeps/mach/hurd/i386/dl-tls-initialized.c b/sysdeps/mach/hurd/i386/dl-tls-initialized.c new file mode 100644 index 00000000..493ec239 --- /dev/null +++ b/sysdeps/mach/hurd/i386/dl-tls-initialized.c @@ -0,0 +1,21 @@ +/* Determine whether TLS is initialized, for i386/Hurd. + Copyright (C) 1995-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 + . */ + +#ifndef SHARED +unsigned short __init1_desc; +#endif diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h index 0f8dd241..ee7b8004 100644 --- a/sysdeps/mach/hurd/i386/tls.h +++ b/sysdeps/mach/hurd/i386/tls.h @@ -69,18 +69,6 @@ _Static_assert (offsetof (tcbhead_t, __private_ss) == 0x30, | (desc->high_word & 0xff000000)); \ }) -/* Return 1 if TLS is not initialized yet. */ -#ifndef SHARED -extern unsigned short __init1_desc; -#define __HURD_DESC_INITIAL(gs, ds) ((gs) == (ds) || (gs) == __init1_desc) -#else -#define __HURD_DESC_INITIAL(gs, ds) ((gs) == (ds)) -#endif - -#define __LIBC_NO_TLS() \ - ({ unsigned short ds, gs; \ - asm ("movw %%ds,%w0; movw %%gs,%w1" : "=q" (ds), "=q" (gs)); \ - __builtin_expect(__HURD_DESC_INITIAL(gs, ds), 0); }) #endif /* The TCB can have any size and the memory following the address the @@ -125,6 +113,28 @@ extern unsigned short __init1_desc; # define HURD_SEL_LDT(sel) (__builtin_expect ((sel) & 4, 0)) +#ifndef SHARED +extern unsigned short __init1_desc; +# define __HURD_DESC_INITIAL(gs, ds) ((gs) == (ds) || (gs) == __init1_desc) +#else +# define __HURD_DESC_INITIAL(gs, ds) ((gs) == (ds)) +#endif + +#if !defined (SHARED) || IS_IN (rtld) +/* Return 1 if TLS is not initialized yet. */ +extern inline bool __attribute__ ((unused)) +__LIBC_NO_TLS (void) +{ + unsigned short ds, gs; + asm ("movw %%ds, %w0\n" + "movw %%gs, %w1" + : "=q" (ds), "=q" (gs)); + return __glibc_unlikely (__HURD_DESC_INITIAL (gs, ds)); +} + +/* Code to initially initialize the thread pointer. This might need + special attention since 'errno' is not yet available and if the + operation can cause a failure 'errno' must not be touched. */ static inline bool __attribute__ ((unused)) _hurd_tls_init (tcbhead_t *tcb) { @@ -168,11 +178,10 @@ out: return success; } -/* Code to initially initialize the thread pointer. This might need - special attention since 'errno' is not yet available and if the - operation can cause a failure 'errno' must not be touched. */ -# define TLS_INIT_TP(descr) \ - _hurd_tls_init ((tcbhead_t *) (descr)) +# define TLS_INIT_TP(descr) _hurd_tls_init ((tcbhead_t *) (descr)) +#else /* defined (SHARED) && !IS_IN (rtld) */ +# define __LIBC_NO_TLS() 0 +#endif # if __GNUC_PREREQ (6, 0) diff --git a/sysdeps/mach/hurd/x86/init-first.c b/sysdeps/mach/hurd/x86/init-first.c index 48c330ec..89a5f44c 100644 --- a/sysdeps/mach/hurd/x86/init-first.c +++ b/sysdeps/mach/hurd/x86/init-first.c @@ -40,13 +40,6 @@ extern char **_dl_argv; #ifndef SHARED static tcbhead_t __init1_tcbhead; -# ifndef __x86_64__ -unsigned short __init1_desc; -# endif -#endif - -#ifdef __x86_64__ -unsigned char __libc_tls_initialized; #endif /* Things that want to be run before _hurd_init or much anything else. @@ -166,9 +159,7 @@ first_init (void) _hurd_tls_init (&__init1_tcbhead); /* Make sure __LIBC_NO_TLS () keeps evaluating to 1. */ -# ifdef __x86_64__ - __libc_tls_initialized = 0; -# else +# ifndef __x86_64__ asm ("movw %%gs,%w0" : "=m" (__init1_desc)); # endif #endif diff --git a/sysdeps/mach/hurd/x86_64/dl-tls-initialized.c b/sysdeps/mach/hurd/x86_64/dl-tls-initialized.c new file mode 100644 index 00000000..d0766f95 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/dl-tls-initialized.c @@ -0,0 +1,21 @@ +/* Determine whether TLS is initialized, for x86_64/Hurd. + Copyright (C) 1995-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 + . */ + +#if !defined (SHARED) || IS_IN (rtld) +unsigned short __libc_tls_initialized; +#endif diff --git a/sysdeps/mach/hurd/x86_64/tls.h b/sysdeps/mach/hurd/x86_64/tls.h index cf74e1f4..da504d9c 100644 --- a/sysdeps/mach/hurd/x86_64/tls.h +++ b/sysdeps/mach/hurd/x86_64/tls.h @@ -68,10 +68,6 @@ _Static_assert (offsetof (tcbhead_t, stack_guard) == 0x28, _Static_assert (offsetof (tcbhead_t, __private_ss) == 0x70, "split stack pointer offset"); -extern unsigned char __libc_tls_initialized; - -# define __LIBC_NO_TLS() __builtin_expect (!__libc_tls_initialized, 0) - /* The TCB can have any size and the memory following the address the thread pointer points to is unspecified. Allocate the TCB there. */ # define TLS_TCB_AT_TP 1 @@ -87,8 +83,6 @@ extern unsigned char __libc_tls_initialized; # define TCB_ALIGNMENT 64 -# define TLS_INIT_TP(descr) _hurd_tls_init ((tcbhead_t *) (descr)) - # define THREAD_SELF \ (*(tcbhead_t * __seg_fs *) offsetof (tcbhead_t, tcb)) /* Read member of the thread descriptor directly. */ @@ -174,6 +168,10 @@ _hurd_tls_new (thread_t child, tcbhead_t *tcb) i386_FSGS_BASE_STATE_COUNT); } +# if !defined (SHARED) || IS_IN (rtld) +extern unsigned char __libc_tls_initialized; +# define __LIBC_NO_TLS() __builtin_expect (!__libc_tls_initialized, 0) + static inline bool __attribute__ ((unused)) _hurd_tls_init (tcbhead_t *tcb) { @@ -184,11 +182,18 @@ _hurd_tls_init (tcbhead_t *tcb) tcb->multiple_threads = 1; err = _hurd_tls_new (self, tcb); + if (err == 0) + __libc_tls_initialized = 1; __mach_port_deallocate (__mach_task_self (), self); - __libc_tls_initialized = 1; return err == 0; } +# define TLS_INIT_TP(descr) _hurd_tls_init ((tcbhead_t *) (descr)) +# else /* defined (SHARED) && !IS_IN (rtld) */ +# define __LIBC_NO_TLS() 0 +# endif + + /* Global scope switch support. */ # define THREAD_GSCOPE_FLAG_UNUSED 0 From patchwork Sun Mar 19 15:10:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66593 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 B886E383E6B6 for ; Sun, 19 Mar 2023 15:13:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B886E383E6B6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238797; bh=UMwGX8IleCAQ6kxyanGTidmEZWOfs4n+goCewc703hY=; 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=Ygya5LNIbx19pdcZnPd+1aA4bkQ3W2Abumegq7Ew2SH0Bh3sw/0r9G83UgalOsH2A gCUxmYj4vjPfkS8WagHtTpt06UTbLFjrn28+5fx1fthboewdQF4vVVBl09Lst3P4/D EV9QG5kD69p1lgMSdxxiLFhydt1WS/aLb8vKQB+4= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by sourceware.org (Postfix) with ESMTPS id EA0483858D1E for ; Sun, 19 Mar 2023 15:11:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EA0483858D1E Received: by mail-lf1-x12f.google.com with SMTP id y20so12036909lfj.2 for ; Sun, 19 Mar 2023 08:11:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238680; 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=UMwGX8IleCAQ6kxyanGTidmEZWOfs4n+goCewc703hY=; b=F1N+AxJjdEfYEjsufVxe4H2rt3Jr54LY3H1CCgAMRMdoYe3WzPzcyBrY82gHdlMGtQ TNOgN54q1Obu0aQn4beEI76y/ii3DaHHHLhbIiGBJalVMNMfuRQFI9m1z6qarNPUzUMB n97jUcf8zMGZxkqyq1jouVnYPaeW0Gl4Ww2rdDvqUUOzWhA0dj9YHmDvyeUbD8riE9XJ l01fKu9g5DLH4nyoR/f3Y0A7FBnr0v8qNRv9ZtFwm9m39USsmx1pmHSy26/a0RBFs2ig kyVgAcMxGVNeqOGeLI0O5Cx6jLUpnV87JvyOIrCUrwMPmiksmXZYj6Lk0G6R9l7ESLDz R2PA== X-Gm-Message-State: AO0yUKUabOTgD5lvdLkbcmadfIxXvebCM6UHbz17sxLpseR6SsKNWrFs GK6ZE0KVnXxzR52hTWNLVVqdUSGNmbRPcw== X-Google-Smtp-Source: AK7set8PLKHHOMxHGNuIWqmK7IEuI/IhZMOnValv6N4uqTiObVK5IHrQp2hxAYWM51Pwb9Yn6/Alwg== X-Received: by 2002:ac2:410b:0:b0:4e9:638d:8438 with SMTP id b11-20020ac2410b000000b004e9638d8438mr2666461lfi.6.1679238680234; Sun, 19 Mar 2023 08:11:20 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:19 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 25/34] hurd: Improve reply port handling when exiting signal handlers Date: Sun, 19 Mar 2023 18:10:08 +0300 Message-Id: <20230319151017.531737-26-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.5 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 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 doing signals, that means we've already got the signal thread running, and that implies TLS having been set up. So we know that __hurd_local_reply_port will resolve to THREAD_SELF->reply_port, and can access that directly using the THREAD_GETMEM and THREAD_SETMEM macros. This avoids potential miscompilations, and should also be a tiny bit faster. Also, use mach_port_mod_refs () and not mach_port_destroy () to destroy the receive right. mach_port_destroy () should *never* be used on mach_task_self (); this can easily lead to port use-after-free vulnerabilities if the task has any other references to the same port. Signed-off-by: Sergey Bugaev --- NOTE: I don't really understand why sigunwind wants to destroy both its current reply port and user's reply port. Prior to commit fb304035c41c7ee2afede51e5e8568974549ba5e, it was *restoring* the user's reply port, in which case it actually made sense to destroy the current reply port. Post-fb304035c41c7ee2afede51e5e8568974549ba5e, wouldn't it be better to just keep using the current reply port, destroying the user's one? hurd/sigunwind.c | 24 +++++++++++------------- sysdeps/mach/hurd/i386/sigreturn.c | 21 +++++---------------- 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/hurd/sigunwind.c b/hurd/sigunwind.c index edd40b14..399e6900 100644 --- a/hurd/sigunwind.c +++ b/hurd/sigunwind.c @@ -18,7 +18,6 @@ #include #include -#include #include #include #include @@ -39,19 +38,18 @@ _hurdsig_longjmp_from_handler (void *data, jmp_buf env, int val) { /* Destroy the MiG reply port used by the signal handler, and restore the reply port in use by the thread when interrupted. */ - mach_port_t *reply_port = &__hurd_local_reply_port; - if (*reply_port) - { - mach_port_t port = *reply_port; - /* Assigning MACH_PORT_DEAD here tells libc's mig_get_reply_port - not to get another reply port, but avoids mig_dealloc_reply_port - trying to deallocate it after the receive fails (which it will, - because the reply port will be bogus, regardless). */ - *reply_port = MACH_PORT_DEAD; - __mach_port_destroy (__mach_task_self (), port); - } + mach_port_t reply_port = THREAD_GETMEM (THREAD_SELF, reply_port); + /* Assigning MACH_PORT_DEAD here tells libc's mig_get_reply_port not to + get another reply port, but avoids mig_dealloc_reply_port trying to + deallocate it after the receive fails (which it will, because the + reply port will be bogus, regardless). */ + THREAD_SETMEM (THREAD_SELF, reply_port, MACH_PORT_DEAD); + if (MACH_PORT_VALID (reply_port)) + __mach_port_mod_refs (__mach_task_self (), reply_port, + MACH_PORT_RIGHT_RECEIVE, -1); if (scp->sc_reply_port) - __mach_port_destroy (__mach_task_self (), scp->sc_reply_port); + __mach_port_mod_refs (__mach_task_self (), scp->sc_reply_port, + MACH_PORT_RIGHT_RECEIVE, -1); } __spin_lock (&ss->lock); diff --git a/sysdeps/mach/hurd/i386/sigreturn.c b/sysdeps/mach/hurd/i386/sigreturn.c index db1a01f3..29c9629f 100644 --- a/sysdeps/mach/hurd/i386/sigreturn.c +++ b/sysdeps/mach/hurd/i386/sigreturn.c @@ -19,7 +19,6 @@ register int *sp asm ("%esp"); #include #include -#include #include #include #include @@ -59,7 +58,7 @@ __sigreturn (struct sigcontext *scp) { struct hurd_sigstate *ss; struct hurd_userlink *link = (void *) &scp[1]; - mach_port_t *reply_port; + mach_port_t reply_port; if (scp == NULL || (scp->sc_mask & _SIG_CANT_MASK)) { @@ -101,20 +100,10 @@ __sigreturn (struct sigcontext *scp) /* Destroy the MiG reply port used by the signal handler, and restore the reply port in use by the thread when interrupted. */ - reply_port = &__hurd_local_reply_port; - if (*reply_port) - { - mach_port_t port = *reply_port; - - /* Assigning MACH_PORT_DEAD here tells libc's mig_get_reply_port not to - get another reply port, but avoids mig_dealloc_reply_port trying to - deallocate it after the receive fails (which it will, because the - reply port will be bogus, whether we do this or not). */ - *reply_port = MACH_PORT_DEAD; - - __mach_port_destroy (__mach_task_self (), port); - } - *reply_port = scp->sc_reply_port; + reply_port = THREAD_GETMEM (THREAD_SELF, reply_port); + THREAD_SETMEM (THREAD_SELF, reply_port, scp->sc_reply_port); + __mach_port_mod_refs (__mach_task_self (), reply_port, + MACH_PORT_RIGHT_RECEIVE, -1); if (scp->sc_fpused) /* Restore the FPU state. Mach conveniently stores the state From patchwork Sun Mar 19 15:10:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66614 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 DDFB9384D173 for ; Sun, 19 Mar 2023 15:18:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DDFB9384D173 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679239083; bh=2l1QBzJBEUQDTi5+VQORDYoRpQuSG+WDFSBo+XhNFDo=; 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=v4zTH6h28Yq98Kym90Hb8jdn8vCwxrSNcQ6tWhtO+kHPFPhzL5zFiYrN9dyGwXudR o1N5L28nf/EG6AsfeVt1J1FU2AzY0q0ClBvUVRufVLwMtVAdEwqbHfJ6+AFUzfwe18 n1Od0rw4wdp2qlc9BPdi9eoZ2FbuZPH9k72cHTm0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by sourceware.org (Postfix) with ESMTPS id CB2033851141 for ; Sun, 19 Mar 2023 15:11:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CB2033851141 Received: by mail-lf1-x130.google.com with SMTP id q16so1179204lfe.10 for ; Sun, 19 Mar 2023 08:11:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238681; 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=2l1QBzJBEUQDTi5+VQORDYoRpQuSG+WDFSBo+XhNFDo=; b=vwAt/eZDXxgboZpAOqWJQS2lsh9xrC7RV7QQ6tLjsQUVokfo0h0lvBVaq4PsMb/+hj 8WbBRYIFcJ0797oAOw7k8zNGaV3idAT16g+S8OzTHehv57eAdHr0rH5jag+ft7v5xhsM MyTLwLuMrGj6ufa7wvgFgwWeUWr31SZ//n1JRhpqEHToeIVVFn+Jfrdl8c5lc+JYJGxm toigsRlOxcFDju9YXtbSvB3Ok38+6jKJ+ISYXyZ7lazPYuyH3ju9Xnt6f85k1Y+0PGeV UPnduUAPGObbbVj+A4dQhsFX6lLvN6v5AfweXEzdve7cH4LykLgjNZu+0zuJAk7pGTuv kygQ== X-Gm-Message-State: AO0yUKUbIHtJPL5x0bTVBRJdhjat4zA6VyTZdAyMRuQ4hqK6vf+OBz22 fTXovy6O3oJ7CMIuibDFH6cTKBzwrmTL+w== X-Google-Smtp-Source: AK7set9VnWjVXH6O0lcH+ZYhGgjI5nTVZDSeI1yn3p/lQyzR3BuRm8dAZ+ofyO/VWgtQ4e6FIiU/kg== X-Received: by 2002:ac2:4145:0:b0:4b5:2cf4:cc1d with SMTP id c5-20020ac24145000000b004b52cf4cc1dmr5636325lfi.68.1679238681210; Sun, 19 Mar 2023 08:11:21 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:20 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 26/34] hurd: Remove __hurd_local_reply_port Date: Sun, 19 Mar 2023 18:10:09 +0300 Message-Id: <20230319151017.531737-27-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.5 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 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" Now that the signal code no longer accesses it, the only real user of it was mig-reply.c, so move the logic for managing the port there. If we're in SHARED and outside of rtld, we know that __LIBC_NO_TLS () always evaluates to 0, and a TLS reply port will always be used, not __hurd_reply_port0. Still, the compiler does not see that __hurd_reply_port0 is never used due to its address being taken. To deal with this, explicitly compile out __hurd_reply_port0 when we know we won't use it. Also, instead of accessing the port via THREAD_SELF->reply_port, this uses THREAD_GETMEM and THREAD_SETMEM directly, avoiding possible miscompilations. Signed-off-by: Sergey Bugaev --- hurd/hurd/threadvar.h | 7 ------ sysdeps/mach/hurd/mig-reply.c | 43 +++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/hurd/hurd/threadvar.h b/hurd/hurd/threadvar.h index f5c6a278..c476d988 100644 --- a/hurd/hurd/threadvar.h +++ b/hurd/hurd/threadvar.h @@ -29,11 +29,4 @@ extern unsigned long int __hurd_sigthread_stack_base; extern unsigned long int __hurd_sigthread_stack_end; -/* Store the MiG reply port reply port until we enable TLS. */ -extern mach_port_t __hurd_reply_port0; - -/* This returns either the TLS reply port variable, or a single-thread variable - when TLS is not initialized yet. */ -#define __hurd_local_reply_port (*(__LIBC_NO_TLS () ? &__hurd_reply_port0 : &THREAD_SELF->reply_port)) - #endif /* hurd/threadvar.h */ diff --git a/sysdeps/mach/hurd/mig-reply.c b/sysdeps/mach/hurd/mig-reply.c index 33ff260e..d3c5a958 100644 --- a/sysdeps/mach/hurd/mig-reply.c +++ b/sysdeps/mach/hurd/mig-reply.c @@ -17,32 +17,55 @@ #include #include -#include +#include /* These functions are called by MiG-generated code. */ +#if !defined (SHARED) || IS_IN (rtld) mach_port_t __hurd_reply_port0; +#endif + +static mach_port_t +get_reply_port (void) +{ +#if !defined (SHARED) || IS_IN (rtld) + if (__LIBC_NO_TLS ()) + return __hurd_reply_port0; +#endif + return THREAD_GETMEM (THREAD_SELF, reply_port); +} + +static void +set_reply_port (mach_port_t port) +{ +#if !defined (SHARED) || IS_IN (rtld) + if (__LIBC_NO_TLS ()) + __hurd_reply_port0 = port; + else +#endif + THREAD_SETMEM (THREAD_SELF, reply_port, port); +} /* Called by MiG to get a reply port. */ mach_port_t __mig_get_reply_port (void) { - if (__hurd_local_reply_port == MACH_PORT_NULL - || (&__hurd_local_reply_port != &__hurd_reply_port0 - && __hurd_local_reply_port == __hurd_reply_port0)) - __hurd_local_reply_port = __mach_reply_port (); - - return __hurd_local_reply_port; + mach_port_t port = get_reply_port (); + if (__glibc_unlikely (port == MACH_PORT_NULL)) + { + port = __mach_reply_port (); + set_reply_port (port); + } + return port; } weak_alias (__mig_get_reply_port, mig_get_reply_port) libc_hidden_def (__mig_get_reply_port) /* Called by MiG to deallocate the reply port. */ void -__mig_dealloc_reply_port (mach_port_t arg) +__mig_dealloc_reply_port (mach_port_t port) { - mach_port_t port = __hurd_local_reply_port; - __hurd_local_reply_port = MACH_PORT_NULL; /* So the mod_refs RPC won't use it. */ + set_reply_port (MACH_PORT_NULL); /* So the mod_refs RPC won't use it. */ if (MACH_PORT_VALID (port)) __mach_port_mod_refs (__mach_task_self (), port, From patchwork Sun Mar 19 15:10:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66615 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 DB8783894C22 for ; Sun, 19 Mar 2023 15:18:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DB8783894C22 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679239125; bh=fbhKkyIUvwVhQIgWpcDaBhcFO5Q7BdDsWkFnV/fJdoo=; 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=FFuo1I9Pg6BaavICIqQNkP8uasoIfVu5L+sFDuFPCqRYt9AwMuYm2fY/c/TXGC4b1 WEa5nUZXHUU8f7wF+yTXAd+pfxihOv0gfuoWOkUv4xTbOFlwfWJODdf9KKoZPPhUVc V8tbDBlMke4pQq9UMpgf6rhXXojI6K05mTuvjYWc= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by sourceware.org (Postfix) with ESMTPS id D5E13385828D for ; Sun, 19 Mar 2023 15:11:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D5E13385828D Received: by mail-lf1-x12f.google.com with SMTP id y15so12011515lfa.7 for ; Sun, 19 Mar 2023 08:11:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238682; 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=fbhKkyIUvwVhQIgWpcDaBhcFO5Q7BdDsWkFnV/fJdoo=; b=IsY679g+Rj+goBtlM3jYxcGmjbqYfooZnx5NZELduKXKNbXlUMFnMHd9ce9KzpWK2g wkdM4HmpJ94uUtGnDccq8wduUW3wnqkBzDPdc0k5NBP0xCkX8phvNKVwozmImST+0tSt iwBKeBCBqrel/Dp3hjxtEI8yFLltzMKu17AmY+87o2DrJ8afilr8Qdz4rcdcYI+EcwV4 lRK8n2+MQ3KHrFah9TtmsRBs2f0lsMAjHieztEw8uLXQFkYjzQVrQpnhczPqInG6GCkl fmIgD0iGstrbRPoyS+BoIs7lREL+iYgejKE1kgNYNvjiASl1F74uyhVl8z4BtD8vos/k V+2w== X-Gm-Message-State: AO0yUKUKIxdrzs1VOYZfK/QDkQHUwLk7BRRe3Nd/RKzbL657P4vK+c6V TRXVQbZoHok3RFbYzMD8EC4i0ZOcwKXqEQ== X-Google-Smtp-Source: AK7set9zzl8NVU2HKow4JsDDq6PzJU+EvkfknmcCIkMonH/vBoqB0OS1yITr6j7/Z1Od8rrSAwYnLg== X-Received: by 2002:ac2:4282:0:b0:4a9:39f4:579a with SMTP id m2-20020ac24282000000b004a939f4579amr6134351lfh.66.1679238682218; Sun, 19 Mar 2023 08:11:22 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:21 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 27/34] hurd: Don't leak __hurd_reply_port0 Date: Sun, 19 Mar 2023 18:10:10 +0300 Message-Id: <20230319151017.531737-28-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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" Previously, once we set up TLS, we would implicitly switch from using __hurd_reply_port0 to reply_port inside the TCB, leaving the former unused. But we never deallocated it, so it got leaked. Instead, migrate the port into the new TCB's reply_port slot. This avoids both the port leak and an extra syscall to create a new reply port for the TCB. Signed-off-by: Sergey Bugaev --- sysdeps/mach/hurd/i386/tls.h | 5 +++++ sysdeps/mach/hurd/x86_64/tls.h | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h index ee7b8004..0ac8917a 100644 --- a/sysdeps/mach/hurd/i386/tls.h +++ b/sysdeps/mach/hurd/i386/tls.h @@ -141,12 +141,15 @@ _hurd_tls_init (tcbhead_t *tcb) HURD_TLS_DESC_DECL (desc, tcb); thread_t self = __mach_thread_self (); bool success = true; + extern mach_port_t __hurd_reply_port0; /* This field is used by TLS accesses to get our "thread pointer" from the TLS point of view. */ tcb->tcb = tcb; /* We always at least start the sigthread anyway. */ tcb->multiple_threads = 1; + /* Take over the reply port we've been using. */ + tcb->reply_port = __hurd_reply_port0; /* Get the first available selector. */ int sel = -1; @@ -172,6 +175,8 @@ _hurd_tls_init (tcbhead_t *tcb) /* Now install the new selector. */ asm volatile ("mov %w0, %%gs" :: "q" (sel)); + /* This port is now owned by the TCB. */ + __hurd_reply_port0 = MACH_PORT_NULL; out: __mach_port_deallocate (__mach_task_self (), self); diff --git a/sysdeps/mach/hurd/x86_64/tls.h b/sysdeps/mach/hurd/x86_64/tls.h index da504d9c..2b7135f6 100644 --- a/sysdeps/mach/hurd/x86_64/tls.h +++ b/sysdeps/mach/hurd/x86_64/tls.h @@ -177,13 +177,20 @@ _hurd_tls_init (tcbhead_t *tcb) { error_t err; thread_t self = __mach_thread_self (); + extern mach_port_t __hurd_reply_port0; /* We always at least start the sigthread anyway. */ tcb->multiple_threads = 1; + /* Take over the reply port we've been using. */ + tcb->reply_port = __hurd_reply_port0; err = _hurd_tls_new (self, tcb); if (err == 0) - __libc_tls_initialized = 1; + { + __libc_tls_initialized = 1; + /* This port is now owned by the TCB. */ + __hurd_reply_port0 = MACH_PORT_NULL; + } __mach_port_deallocate (__mach_task_self (), self); return err == 0; } From patchwork Sun Mar 19 15:10:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66597 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 B9118384B803 for ; Sun, 19 Mar 2023 15:14:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B9118384B803 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238844; bh=qbEat5LJ2mUp6bhK1jdbPJm+yAdnReTesvMhGVXU4bs=; 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=t+xDLp4f7lvMC+0OjJu8OWcMabS87WQH7wjuZgd74act4mpEzAPwFNHGaizEfJ+xo wQ4jxukLyT289rHNsQhByhr3AabKvXnNfjMPbm8ILYzYf+FpH4KIc2FkKjs15UXMcQ 6jkYORsFWcuYGXhzCypRCGn+uy4pXFgtPoh2QQ8c= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by sourceware.org (Postfix) with ESMTPS id 0B5D93850849 for ; Sun, 19 Mar 2023 15:11:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0B5D93850849 Received: by mail-lf1-x130.google.com with SMTP id h25so355664lfv.6 for ; Sun, 19 Mar 2023 08:11:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238683; 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=qbEat5LJ2mUp6bhK1jdbPJm+yAdnReTesvMhGVXU4bs=; b=TJ8vrpPejEHQ6QapNmcasJo77PqJAqWz46ycXXiHwwaAsEbUfFFxIh9dQhJZPrbYbt oquetJVCoUmnAV7QQP8jRuvcsASbs0QM/+m08MD9yyRH2ORtqQktAA7DBlmEi6ld3L7H ZUjLCPwsBta1kxXleuMBdxOyC2C3iNmeCUs5eTqUvngKiZIu4D4J1nXCFtG/S0aszdtr Jt7oLMqZ9gSJlBLLbeoKoQajmpbDHcKfhCF3pWa8aBldXON1iS7FKFvHuCeJjriit46j mbTJzvtt7DSBwhAHxzsjKMhzZoSlHNtaCk+GR4/NCEJFTY3kn5vLPscewMhsQWQ/ll2t fHiA== X-Gm-Message-State: AO0yUKXEszlMaMEDw6CwbPv4cgRO5RyRP+EphVu064Y86m11R6poIDfJ xIX/SuogPU0BX11F0PcTMGar9hYsUvREew== X-Google-Smtp-Source: AK7set+bKIWdLvpd84wFUQ/kKys6UpBH3Q5GhYaMSLYaG27JFCKmGwMud44U0ybIuIkQVx4eft0cJQ== X-Received: by 2002:a05:6512:25a:b0:4e9:609f:256d with SMTP id b26-20020a056512025a00b004e9609f256dmr2762211lfo.13.1679238683325; Sun, 19 Mar 2023 08:11:23 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:22 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 28/34] hurd: Implement _hurd_longjmp_thread_state for x86_64 Date: Sun, 19 Mar 2023 18:10:11 +0300 Message-Id: <20230319151017.531737-29-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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 --- sysdeps/mach/hurd/x86_64/longjmp-ts.c | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 sysdeps/mach/hurd/x86_64/longjmp-ts.c diff --git a/sysdeps/mach/hurd/x86_64/longjmp-ts.c b/sysdeps/mach/hurd/x86_64/longjmp-ts.c new file mode 100644 index 00000000..2c57d26a --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/longjmp-ts.c @@ -0,0 +1,41 @@ +/* Perform a `longjmp' on a Mach thread_state. x86_64 version. + 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 + + +/* Set up STATE to do the equivalent of `longjmp (ENV, VAL);'. */ + +void +_hurd_longjmp_thread_state (void *state, jmp_buf env, int val) +{ + struct i386_thread_state *ts = state; + + ts->rbx = env[0].__jmpbuf[JB_RBX]; + ts->rbp = env[0].__jmpbuf[JB_RBP]; + ts->r12 = env[0].__jmpbuf[JB_R12]; + ts->r13 = env[0].__jmpbuf[JB_R13]; + ts->r14 = env[0].__jmpbuf[JB_R14]; + ts->r15 = env[0].__jmpbuf[JB_R15]; + ts->ursp = env[0].__jmpbuf[JB_RSP]; + ts->rip = env[0].__jmpbuf[JB_PC]; + ts->rax = val ?: 1; +} From patchwork Sun Mar 19 15:10:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66601 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 19E4E3894C24 for ; Sun, 19 Mar 2023 15:14:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 19E4E3894C24 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238887; bh=AjOfR6o7JUDVJsI6UHcYoV/ASajIfZEfchJCcJf74l8=; 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=OXQjuuseGbD/xokCSN8dhRC1PbrbOHvIiKOGeBhqo6fFCUF0cWWsKXL6SXzam6ItE Z7UjHikmkV/2/8PmhhA0FE6dWX6cdvL+R+t7HwE+FUjfl7i59KzSR/scAU/Jr4z1jj ofvXGge+nTMRAtER5DcOhU+2dspDtx33kSs4Sxgc= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com [IPv6:2a00:1450:4864:20::22f]) by sourceware.org (Postfix) with ESMTPS id EEB0138515FD for ; Sun, 19 Mar 2023 15:11:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EEB0138515FD Received: by mail-lj1-x22f.google.com with SMTP id a32so9695939ljr.9 for ; Sun, 19 Mar 2023 08:11:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238684; 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=AjOfR6o7JUDVJsI6UHcYoV/ASajIfZEfchJCcJf74l8=; b=B+T6NJPRTIQEqMVDa5buNmXNpMVBXWo4S9gEYs2smra8lkyaXVaGUMGFUwpQWPV9jv 8VDO+O+c7Mvqa2eq4/lxA75LRUSZ0eqWOyxG2K+StFiAi8EKpKHgbfwicR/xNGmLrnNl HX0GxiFihao/NbfgipIPA1ZPirTt8fcPYNf/9Noc5U225xcweg6Lt0fhS9fDGuDzjzjt vSq4Xd7jhIzdIAbe88iA1l+HP4JdzGTIgrAmnv63uataL20KeRvIjNij6iHpg3d9UTfc AoEoAhfKxctWWzg6n63xneqbIaJhf6v8I7Ef00FXc8abYtPBLkhnCsZQyySy6LiIItqj fvJg== X-Gm-Message-State: AO0yUKW9Yag/OtP++n9oho36ZwnNlQ3UKGAtz178962hO+CR4GLJhhia eyDWdBmw0K7JQ4hJ89C1sf5T1f4AaWDWpA== X-Google-Smtp-Source: AK7set81LoGDjcxhe1YTa8MaplbObKww4X9CmqESe4+Cfpo8AhvQHe+xjZLjS7ZjUA0Dj0Z7wIkpdw== X-Received: by 2002:a2e:908a:0:b0:29b:d591:9172 with SMTP id l10-20020a2e908a000000b0029bd5919172mr994257ljg.34.1679238684307; Sun, 19 Mar 2023 08:11:24 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:23 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 29/34] hurd: Add vm_param.h for x86_64 Date: Sun, 19 Mar 2023 18:10:12 +0300 Message-Id: <20230319151017.531737-30-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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 --- sysdeps/mach/hurd/x86_64/vm_param.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 sysdeps/mach/hurd/x86_64/vm_param.h diff --git a/sysdeps/mach/hurd/x86_64/vm_param.h b/sysdeps/mach/hurd/x86_64/vm_param.h new file mode 100644 index 00000000..f269afb3 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/vm_param.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2020-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 + . */ + +#ifndef _X86_86_VM_PARAM_H +#define _X86_64_VM_PARAM_H + +/* Arbitrary start of the brk. This is after usual binary and library mappings. */ +#define BRK_START 0x200000000000 + +#endif /* x86_64/vm_param.h */ From patchwork Sun Mar 19 15:10:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66613 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 6C8B3383FBA3 for ; Sun, 19 Mar 2023 15:17:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6C8B3383FBA3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679239044; bh=eY06BUzf/uIluApl37+MC1FUnJt4xIrbQH7Z5dpZC6s=; 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=aBiVDGhAFXuS3X+8wE4IAyTYqGuzCFoJWXdWj/JdKy29EvFMxCmWADIb0GKdkuCHo YRdIDH6ItfDCsbVo4CIO2l8oUfTaQ/2WqWhiLs/23LtEt+Ac1eJeTDo35Ik73ytWkK Uz01xeAE7q6+u/qy6kqR/sM9T3rJ6hx1/7k9MgR4= 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 DCF52385116F for ; Sun, 19 Mar 2023 15:11:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DCF52385116F Received: by mail-lf1-x131.google.com with SMTP id g17so12039941lfv.4 for ; Sun, 19 Mar 2023 08:11:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238685; 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=eY06BUzf/uIluApl37+MC1FUnJt4xIrbQH7Z5dpZC6s=; b=SWKAfyPlL/+P+upriS8UHAQa6EdUp0NIqq7qvrfxWtgcJn9eVaFUS0bi9BzWGB48Hm 19QHhU1Qt0aSKI2EI8ESRdjUiw+KysRkqkGtOoAw/X5NCeQ7SnE0cFCqLmjKsWVDsM8r hFuQPzXWYd7pyLa+BpWCeg89vSXIdwz/xajeMMUUdUXNmiikNYr1e3wbzTPJx5ZsP+VE vp5hL71PFImVUEZ/1698F4zWTxEq9OXbGbzEaizAGSceVirryGHA1LIrZNHxPYzQCJLQ /1Sof+Klcr0Updc2+l2P2hmLsiAaagwC00dL86n1lPuDRLdi+/GcsOXxYfuq75GSa/Gs xVUw== X-Gm-Message-State: AO0yUKUt5yuSo01w0FTTbxjhvVqbNez624NZzAhbeoXU7UIUkTND7TTP m8pXhRU3uNFbJ2U3SHze65G//VUGX4txCw== X-Google-Smtp-Source: AK7set8ydJQZ8m18IuLJ6cU1FnlMeW2bD2h7jN3/O5iHNUAW/7L3IW2lht7JR7Qs4huCGjmc3+LhTQ== X-Received: by 2002:ac2:494b:0:b0:4b5:b06d:4300 with SMTP id o11-20020ac2494b000000b004b5b06d4300mr5200579lfi.29.1679238685167; Sun, 19 Mar 2023 08:11:25 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:24 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 30/34] hurd: Implement longjmp for x86_64 Date: Sun, 19 Mar 2023 18:10:13 +0300 Message-Id: <20230319151017.531737-31-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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 --- sysdeps/mach/hurd/x86_64/____longjmp_chk.S | 134 +++++++++++++++++++++ sysdeps/mach/hurd/x86_64/__longjmp.S | 102 ++++++++++++++++ 2 files changed, 236 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..29f6c8c3 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/____longjmp_chk.S @@ -0,0 +1,134 @@ +/* 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 + + +#ifdef PIC +# 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 +#else +# define CALL_FAIL sub $8, %RSP_LP; \ + cfi_remember_state; \ + cfi_def_cfa_offset(16); \ + mov $longjmp_msg, %RDI_LP; \ + call HIDDEN_JUMPTARGET(__fortify_fail); \ + nop; \ + cfi_restore_state +#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_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) +# ifdef PIC + movb __libc_tls_initialized(%rip), %r10b +# else + mobv $__libc_tls_initialized, %r10b +# endif + testb %r10b, %r10b + 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..9bbcfb2f --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/__longjmp.S @@ -0,0 +1,102 @@ +/* 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) +# ifdef PIC + movb __libc_tls_initialized(%rip), %r10b +# else + mobv $__libc_tls_initialized, %r10b +# endif + testb %r10b, %r10b + 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) -- 2.39.2 From patchwork Sun Mar 19 15:10:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66605 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 341C0392AC18 for ; Sun, 19 Mar 2023 15:15:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 341C0392AC18 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679238929; bh=rXQmKXz6KAthIAyxftRLxsuDtb5rqyotVrKOeanOpIM=; 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=DjZeseJBMU1xu+FSn9hP2Kzt+YKn1uxR3a1Jiitb4ASccOAWMfHd32FiFeL70nlsu umEwIvXuPvlrrQTs51MHRPcbvyi8pRWIGgu6P9CjXcQlF5vOuCGuJosnUOe5RfjXeW Bp99q71W6wckObBVcFyv43J+zeIMu3E3gg9Y5WLo= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by sourceware.org (Postfix) with ESMTPS id DD03E385085B for ; Sun, 19 Mar 2023 15:11:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DD03E385085B Received: by mail-lf1-x12f.google.com with SMTP id y15so12011635lfa.7 for ; Sun, 19 Mar 2023 08:11:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238686; 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=rXQmKXz6KAthIAyxftRLxsuDtb5rqyotVrKOeanOpIM=; b=HmLWVR8NfUh+By7yp9Lcxqjh8ZCFRug+P1+2krTiGFiDWowkO5d43sP09lx0iB9jOQ dx9eIOARmBkLcssmzynnNFYgvOLjjawciP8S/0WOAvCq4qE86y38M2syoVtyT24aA+Y+ mb+3w+ZcjYSXNNage0qgV3g+4QOO6c+8FMkM2/Nf0fgQUuGygwonqghAcAJWVF7HO3Bb T95feOVKx01jYsHHT0zQlq+BlCsIBJyMoO3yaD+SDTCzqBET/hXdPMOG/n4LhEYYgR04 Cqh7Xan1n9l9NoBProO48Aw39MSrLrFlRDQzaz2QiLTUyUhLNsb2mstQNAuE+xAebgay E6gA== X-Gm-Message-State: AO0yUKV4X5ewDG0kSrjWIXBTuda/dNIe9ffh1pXaxbJuqS7kY2w4kgAx caDkvGkI9sbEkJ/crTq4OcWs0cORo5OMQQ== X-Google-Smtp-Source: AK7set/oNdJOa0+s1fw6dP4RNVVewZrHLkxHn6OMW+m4xgc5Y/6ZSQeyI39luoXio4tRMYWCbuhlCQ== X-Received: by 2002:ac2:5fa9:0:b0:4dd:a788:7783 with SMTP id s9-20020ac25fa9000000b004dda7887783mr5278675lfe.61.1679238686189; Sun, 19 Mar 2023 08:11:26 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:25 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 31/34] hurd: Microoptimize _hurd_self_sigstate () Date: Sun, 19 Mar 2023 18:10:14 +0300 Message-Id: <20230319151017.531737-32-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.6 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 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" When THREAD_GETMEM is defined with inline assembly, the compiler may not optimize away the two reads of _hurd_sigstate. Help it out a little bit by only reading it once. This also makes for a slightly cleaner code. Signed-off-by: Sergey Bugaev --- hurd/hurd/signal.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h index c33f974b..662e955e 100644 --- a/hurd/hurd/signal.h +++ b/hurd/hurd/signal.h @@ -166,13 +166,15 @@ extern void _hurd_sigstate_delete (thread_t thread); _HURD_SIGNAL_H_EXTERN_INLINE struct hurd_sigstate * _hurd_self_sigstate (void) { - if (THREAD_GETMEM (THREAD_SELF, _hurd_sigstate) == NULL) + struct hurd_sigstate *ss = THREAD_GETMEM (THREAD_SELF, _hurd_sigstate); + if (__glibc_unlikely (ss == NULL)) { thread_t self = __mach_thread_self (); - THREAD_SETMEM (THREAD_SELF, _hurd_sigstate, _hurd_thread_sigstate (self)); + ss = _hurd_thread_sigstate (self); + THREAD_SETMEM (THREAD_SELF, _hurd_sigstate, ss); __mach_port_deallocate (__mach_task_self (), self); } - return THREAD_GETMEM (THREAD_SELF, _hurd_sigstate); + return ss; } # endif #endif From patchwork Sun Mar 19 15:10:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66611 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 58BF6394D81C for ; Sun, 19 Mar 2023 15:16:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 58BF6394D81C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679239009; bh=nyZfBYc80miKdU/5Y0+oDe6GOTMX6L7uaq94omlCN7M=; 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=AhgpiqDzl5tUOZnyGgQ4DZ2PS6VRP67Kzx2vpzbg7/XHFzo7DO4UWYcY75W7HHSfP TRYywFKrVyQRS9aPJJbyl2rVVwu/Vq1a0cDUzz8VkeXWGXaAvznm361jYwAwRQPmPG fqrpuG25WNIngfp/xZgVhtynPe1P6l9LBF6ddfjs= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by sourceware.org (Postfix) with ESMTPS id D011C3850212 for ; Sun, 19 Mar 2023 15:11:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D011C3850212 Received: by mail-lf1-x130.google.com with SMTP id t11so12043959lfr.1 for ; Sun, 19 Mar 2023 08:11:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238687; 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=nyZfBYc80miKdU/5Y0+oDe6GOTMX6L7uaq94omlCN7M=; b=nezgmjTb3PWLW1udOiqKAirqlou50C3eY5nrC6uukQ0hZ2AYniY8upgryF4h5Kro7b gxaIoWoFqN59SrFl5M+LWKqi3DzTdvJx1Lc+KZK8DPJEAyefC4wK3lnQO8yncVbDlS27 n+WOIe6jlXbYj+i6IRGMl0REVdiedU1I7aeZhrhapsXOZeWHq6ofhESgQHGm6DQQEcih m6bGzSWdW8FfZLJ62H/k+dbb9a3uQwd0towWl6olPjM7TMj578J929TiRPq82lAkNaPf O+ty97Y3gwbEotgpWwaDnD1RRW2PxL4SdfsXnZXKUm71Rc1+vxkrzGiZbWilaqYvxbxq elKg== X-Gm-Message-State: AO0yUKVzf1ESIeXb17vBZiliWvXmyu4O4ALyO6C+hWUUXUwY3TrjZ51r UvRL5B3QaVEIKkCmd9J6wmb9JwAAfsNSyw== X-Google-Smtp-Source: AK7set8NN/2FeKVlmlTGVNvwLKAtbg66wZ4h1kF2Fpxg+5nO1Igrcocq6mESWjllqmOa1HSMIfdrBw== X-Received: by 2002:ac2:57db:0:b0:4de:3f1e:cdc4 with SMTP id k27-20020ac257db000000b004de3f1ecdc4mr5752958lfo.13.1679238687113; Sun, 19 Mar 2023 08:11:27 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:26 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 32/34] hurd: Implement sigreturn for x86_64 Date: Sun, 19 Mar 2023 18:10:15 +0300 Message-Id: <20230319151017.531737-33-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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 --- sysdeps/mach/hurd/x86_64/sigreturn.c | 155 +++++++++++++++++++++++++++ 1 file changed, 155 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..b8c62e53 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/sigreturn.c @@ -0,0 +1,155 @@ +/* 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) +{ + _hurd_sigstate_unlock (ss); + + /* We get jumped into, not called normally. The register dump starts where + our return address would normally be. */ + uintptr_t *usp = (uintptr_t *) __builtin_frame_address (0) + 1; + + 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]; + mach_port_t reply_port; + + if (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; + + /* Destroy the MiG reply port used by the signal handler, and restore the + reply port in use by the thread when interrupted. */ + reply_port = THREAD_GETMEM (THREAD_SELF, reply_port); + THREAD_SETMEM (THREAD_SELF, reply_port, scp->sc_reply_port); + __mach_port_mod_refs (__mach_task_self (), reply_port, + MACH_PORT_RIGHT_RECEIVE, -1); + + 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 jump off to + __sigreturn2. Clobber "memory" to make sure GCC flushes the stack + setup to actual memory. XXX: This ignores stack alignment requirements; + hopefully it's not going to matter since __sigreturn2 must not use the + FPU. */ + asm volatile ("movq %0, %%rsp\n" + "jmp __sigreturn2" : + : "rm" (usp), "D" (ss) + : "memory"); + __builtin_unreachable (); + } +} + +weak_alias (__sigreturn, sigreturn) From patchwork Sun Mar 19 15:10:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 66616 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 9711C384D1B9 for ; Sun, 19 Mar 2023 15:19:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9711C384D1B9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679239168; bh=WKb6e1xZ7RCVni9Ke5Mnfffo5xojcC/6zFgFpRWTs+g=; 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=TEIdRyB3pQ0p7n9BjYmkA2WeWCS3aDleJ4wmKv8wPwrPv2fAMKdUqCL912hM81aVP TPdBIC8wUJkMIqnvGoGL0R3ZSj99TW76gcA8FSB2sbx5UoXdA7I7kgk7dudSgcvwzU 1RJ50JuiNanciydzRfePH12r75ji0uIft8lSyHt8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by sourceware.org (Postfix) with ESMTPS id 27212385087A for ; Sun, 19 Mar 2023 15:11:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 27212385087A Received: by mail-lf1-x12f.google.com with SMTP id s8so11743803lfr.8 for ; Sun, 19 Mar 2023 08:11:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238688; 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=WKb6e1xZ7RCVni9Ke5Mnfffo5xojcC/6zFgFpRWTs+g=; b=cS0XsXQ0VIbyH9TnzcLIY6PamAN+/c1Hgb3WBgizDQ7n2SOjK4EasRb5tJ9HuIxflB /7X8EXSaDy3qjT0pwjcprbfR6tepXKLyNgahHlxPGrr2UkBpMVwWhgpj/RNJLfxurJCG 57688Pk32wB6SU1h+M31PQ7GTRhjz78eov/mGg734Pp+Y5p30o5J3Es1byK+8mVkOfQV oWC79V4vtpRGvUFLfGg1QqiSr9GhMSpgzCaFVUXh/N/8ZZsz45DKvPbj+Cn2i/hjw4/+ PypFIQyBQ1i1vAW0o0bKfEo++dE5a9DX4NgNOdbpeKUduOieGCCFiFZ5aj+SAw9YsPSr tt8g== X-Gm-Message-State: AO0yUKXVAPKYVM0yB3pO/mYPWZNPylL+rA6krvfRFkgikAo/zvs3CcHr Md0EN6SSIit8pS0BbvhQDRFgVigxA78zbA== X-Google-Smtp-Source: AK7set82Qegxm00u72CpjvPnR/b35GVw8S4VzQ/0I+F+iAB6zNAOlgxhdrDnc4yjR7sEl1r8sVgeyg== X-Received: by 2002:a19:ae01:0:b0:4db:25f2:c116 with SMTP id f1-20020a19ae01000000b004db25f2c116mr5771166lfc.18.1679238688215; Sun, 19 Mar 2023 08:11:28 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:27 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 33/34] hurd: Create abilist files for lib{mach, hurd}user Date: Sun, 19 Mar 2023 18:10:16 +0300 Message-Id: <20230319151017.531737-34-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.6 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 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" It looks like each specific port is supposed to provide abilist files for all the built shared objects in its most nested sysdeps directory. Do just that for libmachuser and libhurduser. This was done by running 'make update-abi' and then moving the generated files from sysdeps/mach/ and sysdeps/mach/hurd/ down to sysdeps/mach/hurd/i386/, while keeping the base abilist versions empty. Signed-off-by: Sergey Bugaev --- sysdeps/mach/hurd/i386/libhurduser.abilist | 754 +++++++++++++++++++++ sysdeps/mach/hurd/i386/libmachuser.abilist | 336 +++++++++ 2 files changed, 1090 insertions(+) create mode 100644 sysdeps/mach/hurd/i386/libhurduser.abilist create mode 100644 sysdeps/mach/hurd/i386/libmachuser.abilist diff --git a/sysdeps/mach/hurd/i386/libhurduser.abilist b/sysdeps/mach/hurd/i386/libhurduser.abilist new file mode 100644 index 00000000..39bf680b --- /dev/null +++ b/sysdeps/mach/hurd/i386/libhurduser.abilist @@ -0,0 +1,754 @@ +Base _S_msg_server F +Base _S_msg_server_routines D 0x64 +Base __auth_getids F +Base __auth_makeauth F +Base __auth_server_authenticate F +Base __auth_user_authenticate F +Base __crash_dump_task F +Base __dir_link F +Base __dir_lookup F +Base __dir_mkdir F +Base __dir_mkfile F +Base __dir_notice_changes F +Base __dir_readdir F +Base __dir_rename F +Base __dir_rmdir F +Base __dir_unlink F +Base __exec_exec F +Base __exec_exec_paths F +Base __exec_init F +Base __exec_setexecdata F +Base __exec_startup_get_info F +Base __file_chauthor F +Base __file_check_access F +Base __file_chflags F +Base __file_chmod F +Base __file_chown F +Base __file_exec F +Base __file_exec_paths F +Base __file_get_fs_options F +Base __file_get_storage_info F +Base __file_get_translator F +Base __file_get_translator_cntl F +Base __file_getcontrol F +Base __file_getfh F +Base __file_getlinknode F +Base __file_lock F +Base __file_lock_stat F +Base __file_notice_changes F +Base __file_record_lock F +Base __file_reparent F +Base __file_set_size F +Base __file_set_translator F +Base __file_statfs F +Base __file_sync F +Base __file_syncfs F +Base __file_utimens F +Base __file_utimes F +Base __fsys_forward F +Base __fsys_get_children F +Base __fsys_get_options F +Base __fsys_get_source F +Base __fsys_getfile F +Base __fsys_getpriv F +Base __fsys_getroot F +Base __fsys_goaway F +Base __fsys_init F +Base __fsys_set_options F +Base __fsys_startup F +Base __fsys_syncfs F +Base __gsync_wait_intr F +Base __ifsock_getsockaddr F +Base __interrupt_operation F +Base __io_async F +Base __io_async_reply F +Base __io_async_request F +Base __io_clear_some_openmodes F +Base __io_clear_some_openmodes_reply F +Base __io_clear_some_openmodes_request F +Base __io_duplicate F +Base __io_duplicate_reply F +Base __io_duplicate_request F +Base __io_eofnotify F +Base __io_eofnotify_reply F +Base __io_eofnotify_request F +Base __io_get_conch F +Base __io_get_conch_reply F +Base __io_get_conch_request F +Base __io_get_icky_async_id F +Base __io_get_icky_async_id_reply F +Base __io_get_icky_async_id_request F +Base __io_get_openmodes F +Base __io_get_openmodes_reply F +Base __io_get_openmodes_request F +Base __io_get_owner F +Base __io_get_owner_reply F +Base __io_get_owner_request F +Base __io_identity F +Base __io_identity_reply F +Base __io_identity_request F +Base __io_map F +Base __io_map_cntl F +Base __io_map_cntl_reply F +Base __io_map_cntl_request F +Base __io_map_reply F +Base __io_map_request F +Base __io_mod_owner F +Base __io_mod_owner_reply F +Base __io_mod_owner_request F +Base __io_pathconf F +Base __io_pathconf_reply F +Base __io_pathconf_request F +Base __io_postnotify F +Base __io_postnotify_reply F +Base __io_postnotify_request F +Base __io_prenotify F +Base __io_prenotify_reply F +Base __io_prenotify_request F +Base __io_read F +Base __io_read_reply F +Base __io_read_request F +Base __io_readable F +Base __io_readable_reply F +Base __io_readable_request F +Base __io_readnotify F +Base __io_readnotify_reply F +Base __io_readnotify_request F +Base __io_readsleep F +Base __io_readsleep_reply F +Base __io_readsleep_request F +Base __io_reauthenticate F +Base __io_release_conch F +Base __io_release_conch_reply F +Base __io_release_conch_request F +Base __io_restrict_auth F +Base __io_restrict_auth_reply F +Base __io_restrict_auth_request F +Base __io_revoke F +Base __io_revoke_reply F +Base __io_revoke_request F +Base __io_seek F +Base __io_seek_reply F +Base __io_seek_request F +Base __io_select F +Base __io_select_reply F +Base __io_select_request F +Base __io_select_timeout F +Base __io_select_timeout_reply F +Base __io_select_timeout_request F +Base __io_server_version F +Base __io_server_version_reply F +Base __io_server_version_request F +Base __io_set_all_openmodes F +Base __io_set_all_openmodes_reply F +Base __io_set_all_openmodes_request F +Base __io_set_some_openmodes F +Base __io_set_some_openmodes_reply F +Base __io_set_some_openmodes_request F +Base __io_sigio F +Base __io_sigio_reply F +Base __io_sigio_request F +Base __io_stat F +Base __io_stat_reply F +Base __io_stat_request F +Base __io_write F +Base __io_write_reply F +Base __io_write_request F +Base __login_get_idle_time F +Base __login_get_input_devices F +Base __login_get_location F +Base __login_get_login_collection F +Base __login_message_user F +Base __msg_add_auth F +Base __msg_del_auth F +Base __msg_describe_ports F +Base __msg_get_dtable F +Base __msg_get_env_variable F +Base __msg_get_environment F +Base __msg_get_fd F +Base __msg_get_init_int F +Base __msg_get_init_ints F +Base __msg_get_init_port F +Base __msg_get_init_ports F +Base __msg_proc_newids F +Base __msg_report_wait F +Base __msg_set_dtable F +Base __msg_set_env_variable F +Base __msg_set_environment F +Base __msg_set_fd F +Base __msg_set_init_int F +Base __msg_set_init_ints F +Base __msg_set_init_port F +Base __msg_set_init_ports F +Base __msg_sig_post F +Base __msg_sig_post_reply F +Base __msg_sig_post_request F +Base __msg_sig_post_untraced F +Base __msg_sig_post_untraced_reply F +Base __msg_sig_post_untraced_request F +Base __password_check_group F +Base __password_check_user F +Base __pci_conf_read F +Base __pci_conf_write F +Base __pci_get_dev_regions F +Base __pci_get_dev_rom F +Base __pci_get_ndevs F +Base __pfinet_getroutes F +Base __pfinet_siocgifconf F +Base __proc_child F +Base __proc_child_request F +Base __proc_dostop F +Base __proc_dostop_request F +Base __proc_execdata_notify F +Base __proc_execdata_notify_request F +Base __proc_get_arg_locations F +Base __proc_get_arg_locations_request F +Base __proc_get_code F +Base __proc_get_code_request F +Base __proc_get_entry F +Base __proc_get_exe F +Base __proc_get_tty F +Base __proc_get_tty_request F +Base __proc_getallpids F +Base __proc_getallpids_request F +Base __proc_getexecdata F +Base __proc_getexecdata_request F +Base __proc_getlogin F +Base __proc_getlogin_request F +Base __proc_getloginid F +Base __proc_getloginid_request F +Base __proc_getloginpids F +Base __proc_getloginpids_request F +Base __proc_getmsgport F +Base __proc_getmsgport_request F +Base __proc_getnports F +Base __proc_getnports_request F +Base __proc_getpgrp F +Base __proc_getpgrp_request F +Base __proc_getpgrppids F +Base __proc_getpgrppids_request F +Base __proc_getpids F +Base __proc_getpids_request F +Base __proc_getprivports F +Base __proc_getprivports_request F +Base __proc_getprocargs F +Base __proc_getprocargs_request F +Base __proc_getprocenv F +Base __proc_getprocenv_request F +Base __proc_getprocinfo F +Base __proc_getprocinfo_request F +Base __proc_getsessionpgids F +Base __proc_getsessionpgids_request F +Base __proc_getsessionpids F +Base __proc_getsessionpids_request F +Base __proc_getsid F +Base __proc_getsid_request F +Base __proc_getsidport F +Base __proc_getsidport_request F +Base __proc_handle_exceptions F +Base __proc_handle_exceptions_request F +Base __proc_is_important F +Base __proc_is_important_request F +Base __proc_make_login_coll F +Base __proc_make_login_coll_request F +Base __proc_make_task_namespace F +Base __proc_make_task_namespace_request F +Base __proc_mark_cont F +Base __proc_mark_cont_request F +Base __proc_mark_exec F +Base __proc_mark_exec_request F +Base __proc_mark_exit F +Base __proc_mark_exit_request F +Base __proc_mark_important F +Base __proc_mark_important_request F +Base __proc_mark_stop F +Base __proc_mark_stop_request F +Base __proc_mark_traced F +Base __proc_mark_traced_request F +Base __proc_mod_stopchild F +Base __proc_mod_stopchild_request F +Base __proc_pid2proc F +Base __proc_pid2proc_request F +Base __proc_pid2task F +Base __proc_pid2task_request F +Base __proc_proc2task F +Base __proc_proc2task_request F +Base __proc_reassign F +Base __proc_reassign_request F +Base __proc_reauthenticate F +Base __proc_reauthenticate_complete F +Base __proc_reauthenticate_reassign F +Base __proc_reauthenticate_request F +Base __proc_register_version F +Base __proc_register_version_request F +Base __proc_set_arg_locations F +Base __proc_set_arg_locations_request F +Base __proc_set_code F +Base __proc_set_code_request F +Base __proc_set_entry F +Base __proc_set_exe F +Base __proc_set_init_task F +Base __proc_set_init_task_request F +Base __proc_setexecdata F +Base __proc_setexecdata_request F +Base __proc_setlogin F +Base __proc_setlogin_request F +Base __proc_setmsgport F +Base __proc_setmsgport_request F +Base __proc_setowner F +Base __proc_setowner_request F +Base __proc_setpgrp F +Base __proc_setpgrp_request F +Base __proc_setsid F +Base __proc_setsid_request F +Base __proc_task2pid F +Base __proc_task2pid_request F +Base __proc_task2proc F +Base __proc_task2proc_request F +Base __proc_uname F +Base __proc_uname_request F +Base __proc_wait F +Base __proc_wait_request F +Base __proc_waitid F +Base __socket_accept F +Base __socket_bind F +Base __socket_connect F +Base __socket_connect2 F +Base __socket_create F +Base __socket_create_address F +Base __socket_fabricate_address F +Base __socket_getopt F +Base __socket_listen F +Base __socket_name F +Base __socket_peername F +Base __socket_recv F +Base __socket_send F +Base __socket_setopt F +Base __socket_shutdown F +Base __socket_whatis_address F +Base __startup_authinit F +Base __startup_essential_task F +Base __startup_procinit F +Base __startup_reboot F +Base __startup_request_notification F +Base __term_get_bottom_type F +Base __term_get_nodename F +Base __term_get_peername F +Base __term_getctty F +Base __term_on_hurddev F +Base __term_on_machdev F +Base __term_on_pty F +Base __term_open_ctty F +Base __term_set_filenode F +Base __term_set_nodename F +Base __termctty_open_terminal F +Base __tioctl_tioccbrk F +Base __tioctl_tioccdtr F +Base __tioctl_tiocdrain F +Base __tioctl_tiocexcl F +Base __tioctl_tiocext F +Base __tioctl_tiocflush F +Base __tioctl_tiocgeta F +Base __tioctl_tiocgetd F +Base __tioctl_tiocgpgrp F +Base __tioctl_tiocgwinsz F +Base __tioctl_tiocmbic F +Base __tioctl_tiocmbis F +Base __tioctl_tiocmget F +Base __tioctl_tiocmodg F +Base __tioctl_tiocmods F +Base __tioctl_tiocmset F +Base __tioctl_tiocnxcl F +Base __tioctl_tiocoutq F +Base __tioctl_tiocpkt F +Base __tioctl_tiocremote F +Base __tioctl_tiocsbrk F +Base __tioctl_tiocsdtr F +Base __tioctl_tiocseta F +Base __tioctl_tiocsetaf F +Base __tioctl_tiocsetaw F +Base __tioctl_tiocsetd F +Base __tioctl_tiocsig F +Base __tioctl_tiocspgrp F +Base __tioctl_tiocstart F +Base __tioctl_tiocsti F +Base __tioctl_tiocstop F +Base __tioctl_tiocswinsz F +Base __tioctl_tiocucntl F +Base _hurdsig_fault_exc_server F +Base _hurdsig_fault_exc_server_routines D 0x4 +Base auth_getids F +Base auth_makeauth F +Base auth_server_authenticate F +Base auth_user_authenticate F +Base crash_dump_task F +Base dir_link F +Base dir_lookup F +Base dir_mkdir F +Base dir_mkfile F +Base dir_notice_changes F +Base dir_readdir F +Base dir_rename F +Base dir_rmdir F +Base dir_unlink F +Base exec_exec F +Base exec_exec_paths F +Base exec_init F +Base exec_setexecdata F +Base exec_startup_get_info F +Base file_chauthor F +Base file_check_access F +Base file_chflags F +Base file_chmod F +Base file_chown F +Base file_exec F +Base file_exec_paths F +Base file_get_fs_options F +Base file_get_storage_info F +Base file_get_translator F +Base file_get_translator_cntl F +Base file_getcontrol F +Base file_getfh F +Base file_getlinknode F +Base file_lock F +Base file_lock_stat F +Base file_notice_changes F +Base file_record_lock F +Base file_reparent F +Base file_set_size F +Base file_set_translator F +Base file_statfs F +Base file_sync F +Base file_syncfs F +Base file_utimens F +Base file_utimes F +Base fsys_forward F +Base fsys_get_children F +Base fsys_get_options F +Base fsys_get_source F +Base fsys_getfile F +Base fsys_getpriv F +Base fsys_getroot F +Base fsys_goaway F +Base fsys_init F +Base fsys_set_options F +Base fsys_startup F +Base fsys_syncfs F +Base gsync_wait_intr F +Base ifsock_getsockaddr F +Base interrupt_operation F +Base io_async F +Base io_async_reply F +Base io_async_request F +Base io_clear_some_openmodes F +Base io_clear_some_openmodes_reply F +Base io_clear_some_openmodes_request F +Base io_duplicate F +Base io_duplicate_reply F +Base io_duplicate_request F +Base io_eofnotify F +Base io_eofnotify_reply F +Base io_eofnotify_request F +Base io_get_conch F +Base io_get_conch_reply F +Base io_get_conch_request F +Base io_get_icky_async_id F +Base io_get_icky_async_id_reply F +Base io_get_icky_async_id_request F +Base io_get_openmodes F +Base io_get_openmodes_reply F +Base io_get_openmodes_request F +Base io_get_owner F +Base io_get_owner_reply F +Base io_get_owner_request F +Base io_identity F +Base io_identity_reply F +Base io_identity_request F +Base io_map F +Base io_map_cntl F +Base io_map_cntl_reply F +Base io_map_cntl_request F +Base io_map_reply F +Base io_map_request F +Base io_mod_owner F +Base io_mod_owner_reply F +Base io_mod_owner_request F +Base io_pathconf F +Base io_pathconf_reply F +Base io_pathconf_request F +Base io_postnotify F +Base io_postnotify_reply F +Base io_postnotify_request F +Base io_prenotify F +Base io_prenotify_reply F +Base io_prenotify_request F +Base io_read F +Base io_read_reply F +Base io_read_request F +Base io_readable F +Base io_readable_reply F +Base io_readable_request F +Base io_readnotify F +Base io_readnotify_reply F +Base io_readnotify_request F +Base io_readsleep F +Base io_readsleep_reply F +Base io_readsleep_request F +Base io_reauthenticate F +Base io_release_conch F +Base io_release_conch_reply F +Base io_release_conch_request F +Base io_restrict_auth F +Base io_restrict_auth_reply F +Base io_restrict_auth_request F +Base io_revoke F +Base io_revoke_reply F +Base io_revoke_request F +Base io_seek F +Base io_seek_reply F +Base io_seek_request F +Base io_select F +Base io_select_reply F +Base io_select_request F +Base io_select_timeout F +Base io_select_timeout_reply F +Base io_select_timeout_request F +Base io_server_version F +Base io_server_version_reply F +Base io_server_version_request F +Base io_set_all_openmodes F +Base io_set_all_openmodes_reply F +Base io_set_all_openmodes_request F +Base io_set_some_openmodes F +Base io_set_some_openmodes_reply F +Base io_set_some_openmodes_request F +Base io_sigio F +Base io_sigio_reply F +Base io_sigio_request F +Base io_stat F +Base io_stat_reply F +Base io_stat_request F +Base io_write F +Base io_write_reply F +Base io_write_request F +Base login_get_idle_time F +Base login_get_input_devices F +Base login_get_location F +Base login_get_login_collection F +Base login_message_user F +Base msg_add_auth F +Base msg_del_auth F +Base msg_describe_ports F +Base msg_get_dtable F +Base msg_get_env_variable F +Base msg_get_environment F +Base msg_get_fd F +Base msg_get_init_int F +Base msg_get_init_ints F +Base msg_get_init_port F +Base msg_get_init_ports F +Base msg_proc_newids F +Base msg_report_wait F +Base msg_set_dtable F +Base msg_set_env_variable F +Base msg_set_environment F +Base msg_set_fd F +Base msg_set_init_int F +Base msg_set_init_ints F +Base msg_set_init_port F +Base msg_set_init_ports F +Base msg_sig_post F +Base msg_sig_post_reply F +Base msg_sig_post_request F +Base msg_sig_post_untraced F +Base msg_sig_post_untraced_reply F +Base msg_sig_post_untraced_request F +Base password_check_group F +Base password_check_user F +Base pci_conf_read F +Base pci_conf_write F +Base pci_get_dev_regions F +Base pci_get_dev_rom F +Base pci_get_ndevs F +Base pfinet_getroutes F +Base pfinet_siocgifconf F +Base proc_child F +Base proc_child_request F +Base proc_dostop F +Base proc_dostop_request F +Base proc_execdata_notify F +Base proc_execdata_notify_request F +Base proc_get_arg_locations F +Base proc_get_arg_locations_request F +Base proc_get_code F +Base proc_get_code_request F +Base proc_get_entry F +Base proc_get_exe F +Base proc_get_tty F +Base proc_get_tty_request F +Base proc_getallpids F +Base proc_getallpids_request F +Base proc_getexecdata F +Base proc_getexecdata_request F +Base proc_getlogin F +Base proc_getlogin_request F +Base proc_getloginid F +Base proc_getloginid_request F +Base proc_getloginpids F +Base proc_getloginpids_request F +Base proc_getmsgport F +Base proc_getmsgport_request F +Base proc_getnports F +Base proc_getnports_request F +Base proc_getpgrp F +Base proc_getpgrp_request F +Base proc_getpgrppids F +Base proc_getpgrppids_request F +Base proc_getpids F +Base proc_getpids_request F +Base proc_getprivports F +Base proc_getprivports_request F +Base proc_getprocargs F +Base proc_getprocargs_request F +Base proc_getprocenv F +Base proc_getprocenv_request F +Base proc_getprocinfo F +Base proc_getprocinfo_request F +Base proc_getsessionpgids F +Base proc_getsessionpgids_request F +Base proc_getsessionpids F +Base proc_getsessionpids_request F +Base proc_getsid F +Base proc_getsid_request F +Base proc_getsidport F +Base proc_getsidport_request F +Base proc_handle_exceptions F +Base proc_handle_exceptions_request F +Base proc_is_important F +Base proc_is_important_request F +Base proc_make_login_coll F +Base proc_make_login_coll_request F +Base proc_make_task_namespace F +Base proc_make_task_namespace_request F +Base proc_mark_cont F +Base proc_mark_cont_request F +Base proc_mark_exec F +Base proc_mark_exec_request F +Base proc_mark_exit F +Base proc_mark_exit_request F +Base proc_mark_important F +Base proc_mark_important_request F +Base proc_mark_stop F +Base proc_mark_stop_request F +Base proc_mark_traced F +Base proc_mark_traced_request F +Base proc_mod_stopchild F +Base proc_mod_stopchild_request F +Base proc_pid2proc F +Base proc_pid2proc_request F +Base proc_pid2task F +Base proc_pid2task_request F +Base proc_proc2task F +Base proc_proc2task_request F +Base proc_reassign F +Base proc_reassign_request F +Base proc_reauthenticate F +Base proc_reauthenticate_complete F +Base proc_reauthenticate_reassign F +Base proc_reauthenticate_request F +Base proc_register_version F +Base proc_register_version_request F +Base proc_set_arg_locations F +Base proc_set_arg_locations_request F +Base proc_set_code F +Base proc_set_code_request F +Base proc_set_entry F +Base proc_set_exe F +Base proc_set_init_task F +Base proc_set_init_task_request F +Base proc_setexecdata F +Base proc_setexecdata_request F +Base proc_setlogin F +Base proc_setlogin_request F +Base proc_setmsgport F +Base proc_setmsgport_request F +Base proc_setowner F +Base proc_setowner_request F +Base proc_setpgrp F +Base proc_setpgrp_request F +Base proc_setsid F +Base proc_setsid_request F +Base proc_task2pid F +Base proc_task2pid_request F +Base proc_task2proc F +Base proc_task2proc_request F +Base proc_uname F +Base proc_uname_request F +Base proc_wait F +Base proc_wait_request F +Base proc_waitid F +Base socket_accept F +Base socket_bind F +Base socket_connect F +Base socket_connect2 F +Base socket_create F +Base socket_create_address F +Base socket_fabricate_address F +Base socket_getopt F +Base socket_listen F +Base socket_name F +Base socket_peername F +Base socket_recv F +Base socket_send F +Base socket_setopt F +Base socket_shutdown F +Base socket_whatis_address F +Base startup_authinit F +Base startup_essential_task F +Base startup_procinit F +Base startup_reboot F +Base startup_request_notification F +Base term_get_bottom_type F +Base term_get_nodename F +Base term_get_peername F +Base term_getctty F +Base term_on_hurddev F +Base term_on_machdev F +Base term_on_pty F +Base term_open_ctty F +Base term_set_filenode F +Base term_set_nodename F +Base termctty_open_terminal F +Base tioctl_tioccbrk F +Base tioctl_tioccdtr F +Base tioctl_tiocdrain F +Base tioctl_tiocexcl F +Base tioctl_tiocext F +Base tioctl_tiocflush F +Base tioctl_tiocgeta F +Base tioctl_tiocgetd F +Base tioctl_tiocgpgrp F +Base tioctl_tiocgwinsz F +Base tioctl_tiocmbic F +Base tioctl_tiocmbis F +Base tioctl_tiocmget F +Base tioctl_tiocmodg F +Base tioctl_tiocmods F +Base tioctl_tiocmset F +Base tioctl_tiocnxcl F +Base tioctl_tiocoutq F +Base tioctl_tiocpkt F +Base tioctl_tiocremote F +Base tioctl_tiocsbrk F +Base tioctl_tiocsdtr F +Base tioctl_tiocseta F +Base tioctl_tiocsetaf F +Base tioctl_tiocsetaw F +Base tioctl_tiocsetd F +Base tioctl_tiocsig F +Base tioctl_tiocspgrp F +Base tioctl_tiocstart F +Base tioctl_tiocsti F +Base tioctl_tiocstop F +Base tioctl_tiocswinsz F +Base tioctl_tiocucntl F diff --git a/sysdeps/mach/hurd/i386/libmachuser.abilist b/sysdeps/mach/hurd/i386/libmachuser.abilist new file mode 100644 index 00000000..49ee5924 --- /dev/null +++ b/sysdeps/mach/hurd/i386/libmachuser.abilist @@ -0,0 +1,336 @@ +Base _S_exc_server F +Base _S_exc_server_routines D 0x4 +Base __default_pager_info F +Base __default_pager_object_create F +Base __default_pager_object_pages F +Base __default_pager_objects F +Base __default_pager_paging_file F +Base __default_pager_register_fileserver F +Base __device_close F +Base __device_get_status F +Base __device_intr_ack F +Base __device_intr_register F +Base __device_map F +Base __device_open F +Base __device_open_request F +Base __device_read F +Base __device_read_inband F +Base __device_read_request F +Base __device_read_request_inband F +Base __device_set_filter F +Base __device_set_status F +Base __device_write F +Base __device_write_inband F +Base __device_write_request F +Base __device_write_request_inband F +Base __exception_raise F +Base __gsync_requeue F +Base __gsync_wait F +Base __gsync_wake F +Base __host_adjust_time F +Base __host_adjust_time64 F +Base __host_get_boot_info F +Base __host_get_time F +Base __host_get_time64 F +Base __host_info F +Base __host_kernel_version F +Base __host_processor_set_priv F +Base __host_processor_sets F +Base __host_processors F +Base __host_reboot F +Base __host_set_time F +Base __host_set_time64 F +Base __i386_get_gdt F +Base __i386_get_ldt F +Base __i386_io_perm_create F +Base __i386_io_perm_modify F +Base __i386_set_gdt F +Base __i386_set_ldt F +Base __mach_notify_new_task F +Base __mach_port_allocate_name_rpc F +Base __mach_port_allocate_rpc F +Base __mach_port_clear_protected_payload F +Base __mach_port_deallocate_rpc F +Base __mach_port_destroy F +Base __mach_port_extract_right F +Base __mach_port_get_receive_status F +Base __mach_port_get_refs F +Base __mach_port_get_set_status F +Base __mach_port_insert_right_rpc F +Base __mach_port_mod_refs F +Base __mach_port_move_member F +Base __mach_port_names F +Base __mach_port_rename F +Base __mach_port_request_notification F +Base __mach_port_set_mscount F +Base __mach_port_set_protected_payload F +Base __mach_port_set_qlimit F +Base __mach_port_set_seqno F +Base __mach_port_type F +Base __mach_ports_lookup F +Base __mach_ports_register F +Base __memory_object_change_attributes F +Base __memory_object_change_completed F +Base __memory_object_copy F +Base __memory_object_create F +Base __memory_object_create_proxy F +Base __memory_object_data_error F +Base __memory_object_data_initialize F +Base __memory_object_data_request F +Base __memory_object_data_return F +Base __memory_object_data_supply F +Base __memory_object_data_unavailable F +Base __memory_object_data_unlock F +Base __memory_object_destroy F +Base __memory_object_get_attributes F +Base __memory_object_init F +Base __memory_object_lock_completed F +Base __memory_object_lock_request F +Base __memory_object_ready F +Base __memory_object_supply_completed F +Base __memory_object_terminate F +Base __processor_assign F +Base __processor_control F +Base __processor_exit F +Base __processor_get_assignment F +Base __processor_info F +Base __processor_set_create F +Base __processor_set_default F +Base __processor_set_destroy F +Base __processor_set_info F +Base __processor_set_max_priority F +Base __processor_set_policy_disable F +Base __processor_set_policy_enable F +Base __processor_set_tasks F +Base __processor_set_threads F +Base __processor_start F +Base __register_new_task_notification F +Base __task_assign F +Base __task_assign_default F +Base __task_create_rpc F +Base __task_disable_pc_sampling F +Base __task_enable_pc_sampling F +Base __task_get_assignment F +Base __task_get_emulation_vector F +Base __task_get_sampled_pcs F +Base __task_get_special_port F +Base __task_info F +Base __task_priority F +Base __task_ras_control F +Base __task_resume F +Base __task_set_emulation F +Base __task_set_emulation_vector F +Base __task_set_essential F +Base __task_set_name F +Base __task_set_special_port_rpc F +Base __task_suspend_rpc F +Base __task_terminate_rpc F +Base __task_threads F +Base __thread_abort F +Base __thread_assign F +Base __thread_assign_default F +Base __thread_create F +Base __thread_depress_abort_rpc F +Base __thread_disable_pc_sampling F +Base __thread_enable_pc_sampling F +Base __thread_get_assignment F +Base __thread_get_sampled_pcs F +Base __thread_get_special_port F +Base __thread_get_state F +Base __thread_info F +Base __thread_max_priority F +Base __thread_policy F +Base __thread_priority F +Base __thread_resume F +Base __thread_set_special_port F +Base __thread_set_state F +Base __thread_suspend F +Base __thread_terminate F +Base __thread_terminate_release F +Base __thread_wire F +Base __vm_allocate_contiguous F +Base __vm_allocate_rpc F +Base __vm_cache_statistics F +Base __vm_copy F +Base __vm_deallocate_rpc F +Base __vm_inherit F +Base __vm_machine_attribute F +Base __vm_map_rpc F +Base __vm_msync F +Base __vm_object_sync F +Base __vm_protect F +Base __vm_read F +Base __vm_region F +Base __vm_region_create_proxy F +Base __vm_set_default_memory_manager F +Base __vm_statistics F +Base __vm_wire F +Base __vm_wire_all F +Base __vm_write F +Base default_pager_info F +Base default_pager_object_create F +Base default_pager_object_pages F +Base default_pager_objects F +Base default_pager_paging_file F +Base default_pager_register_fileserver F +Base device_close F +Base device_get_status F +Base device_intr_ack F +Base device_intr_register F +Base device_map F +Base device_open F +Base device_open_request F +Base device_read F +Base device_read_inband F +Base device_read_request F +Base device_read_request_inband F +Base device_set_filter F +Base device_set_status F +Base device_write F +Base device_write_inband F +Base device_write_request F +Base device_write_request_inband F +Base exception_raise F +Base gsync_requeue F +Base gsync_wait F +Base gsync_wake F +Base host_adjust_time F +Base host_adjust_time64 F +Base host_get_boot_info F +Base host_get_time F +Base host_get_time64 F +Base host_info F +Base host_kernel_version F +Base host_processor_set_priv F +Base host_processor_sets F +Base host_processors F +Base host_reboot F +Base host_set_time F +Base host_set_time64 F +Base i386_get_gdt F +Base i386_get_ldt F +Base i386_io_perm_create F +Base i386_io_perm_modify F +Base i386_set_gdt F +Base i386_set_ldt F +Base mach_notify_new_task F +Base mach_port_allocate_name_rpc F +Base mach_port_allocate_rpc F +Base mach_port_clear_protected_payload F +Base mach_port_deallocate_rpc F +Base mach_port_destroy F +Base mach_port_extract_right F +Base mach_port_get_receive_status F +Base mach_port_get_refs F +Base mach_port_get_set_status F +Base mach_port_insert_right_rpc F +Base mach_port_mod_refs F +Base mach_port_move_member F +Base mach_port_names F +Base mach_port_rename F +Base mach_port_request_notification F +Base mach_port_set_mscount F +Base mach_port_set_protected_payload F +Base mach_port_set_qlimit F +Base mach_port_set_seqno F +Base mach_port_type F +Base mach_ports_lookup F +Base mach_ports_register F +Base memory_object_change_attributes F +Base memory_object_change_completed F +Base memory_object_copy F +Base memory_object_create F +Base memory_object_create_proxy F +Base memory_object_data_error F +Base memory_object_data_initialize F +Base memory_object_data_request F +Base memory_object_data_return F +Base memory_object_data_supply F +Base memory_object_data_unavailable F +Base memory_object_data_unlock F +Base memory_object_destroy F +Base memory_object_get_attributes F +Base memory_object_init F +Base memory_object_lock_completed F +Base memory_object_lock_request F +Base memory_object_ready F +Base memory_object_supply_completed F +Base memory_object_terminate F +Base processor_assign F +Base processor_control F +Base processor_exit F +Base processor_get_assignment F +Base processor_info F +Base processor_set_create F +Base processor_set_default F +Base processor_set_destroy F +Base processor_set_info F +Base processor_set_max_priority F +Base processor_set_policy_disable F +Base processor_set_policy_enable F +Base processor_set_tasks F +Base processor_set_threads F +Base processor_start F +Base register_new_task_notification F +Base task_assign F +Base task_assign_default F +Base task_create_rpc F +Base task_disable_pc_sampling F +Base task_enable_pc_sampling F +Base task_get_assignment F +Base task_get_emulation_vector F +Base task_get_sampled_pcs F +Base task_get_special_port F +Base task_info F +Base task_priority F +Base task_ras_control F +Base task_resume F +Base task_set_emulation F +Base task_set_emulation_vector F +Base task_set_essential F +Base task_set_name F +Base task_set_special_port_rpc F +Base task_suspend_rpc F +Base task_terminate_rpc F +Base task_threads F +Base thread_abort F +Base thread_assign F +Base thread_assign_default F +Base thread_create F +Base thread_depress_abort_rpc F +Base thread_disable_pc_sampling F +Base thread_enable_pc_sampling F +Base thread_get_assignment F +Base thread_get_sampled_pcs F +Base thread_get_special_port F +Base thread_get_state F +Base thread_info F +Base thread_max_priority F +Base thread_policy F +Base thread_priority F +Base thread_resume F +Base thread_set_special_port F +Base thread_set_state F +Base thread_suspend F +Base thread_terminate F +Base thread_terminate_release F +Base thread_wire F +Base vm_allocate_contiguous F +Base vm_allocate_rpc F +Base vm_cache_statistics F +Base vm_copy F +Base vm_deallocate_rpc F +Base vm_inherit F +Base vm_machine_attribute F +Base vm_map_rpc F +Base vm_msync F +Base vm_object_sync F +Base vm_protect F +Base vm_read F +Base vm_region F +Base vm_region_create_proxy F +Base vm_set_default_memory_manager F +Base vm_statistics F +Base vm_wire F +Base vm_wire_all F +Base vm_write F From patchwork Sun Mar 19 15:10: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: 66617 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 B5D27389838E for ; Sun, 19 Mar 2023 15:20:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B5D27389838E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1679239218; bh=Dkf/PvMN+W1Sp6TMkxsRbj6eqfYScFbJP8KUtQiF2Yk=; 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=LU67JV5gbSGkvXQaMWBarzobUZIYlWm6QjDVwXsgYV1RsPBUDqxev3aAS8L0GbRK7 WnrtdfBhOQnJ9u/f5hJp675qYln6q5bJxj+iXFFVLXuhFb05R/sHDyzr2p6UBMPDOU 0BgQ2p95KmSiArrP4SywDKIirY4p16mia8Qvu5cI= 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 49E23385021F for ; Sun, 19 Mar 2023 15:11:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 49E23385021F Received: by mail-lf1-x12a.google.com with SMTP id g17so12040089lfv.4 for ; Sun, 19 Mar 2023 08:11:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679238690; 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=Dkf/PvMN+W1Sp6TMkxsRbj6eqfYScFbJP8KUtQiF2Yk=; b=zWrEVUebl22aQ6nh2zDbGvCmY1NrvgRxN9PpjN4Xn6R93iw+xpBeWNIWTeZ9h5pV93 929VXb445foCu807fGDWk7qRaF6ktBBzJnv/UZdgoGDQq930L+NBKkq6bCQ8EV1Iff9g fd+fDzJZsJY6pqFh/UQhZgkoMTN45RNzfw7Jit+cHJxnl7l+WmJCrVh8ejhZzHvs2iaK WpTcGb39aqAPwv5UDxeZBz84oSrwrcT48nRELIcd+z6/ssrOwTxuu4bbLattM6hib0ta WwvQ3Dl6NYAXO45p215mGlZZmfIl52WsU7HPkqDo3Kpl2cUZ1AyN0GVCakdvrZSSPzXZ YL6Q== X-Gm-Message-State: AO0yUKW0IEXi7Fh5y96Rn+V+T6x/yMzovG1KqkP5aHGgKpd3yA3Wo7z/ MDw/taTmf1V0+5ovDWVSpNmBx0y9Ck7IiA== X-Google-Smtp-Source: AK7set9rA/B9S2eGim17olgFEOhMBpCIJHl+zAELWu6cU79qBth8enDLpoxcAQwk94j/BaSekBO73g== X-Received: by 2002:a05:6512:988:b0:4db:19fb:6a7 with SMTP id w8-20020a056512098800b004db19fb06a7mr5026001lft.60.1679238689713; Sun, 19 Mar 2023 08:11:29 -0700 (PDT) Received: from surface-pro-6.. ([2a00:1370:818c:4a57:577a:76f4:df43:5e66]) by smtp.gmail.com with ESMTPSA id m19-20020ac24253000000b004e90dee5469sm1274089lfl.157.2023.03.19.08.11.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Mar 2023 08:11:29 -0700 (PDT) To: libc-alpha@sourceware.org, bug-hurd@gnu.org Cc: Samuel Thibault , Sergey Bugaev Subject: [RFC PATCH glibc 34/34] hurd: Add expected abilist files for x86_64 Date: Sun, 19 Mar 2023 18:10:17 +0300 Message-Id: <20230319151017.531737-35-bugaevc@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230319151017.531737-1-bugaevc@gmail.com> References: <20230319151017.531737-1-bugaevc@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 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 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. Signed-off-by: Sergey Bugaev --- sysdeps/mach/hurd/x86_64/ld.abilist | 18 + .../mach/hurd/x86_64/libBrokenLocale.abilist | 1 + sysdeps/mach/hurd/x86_64/libanl.abilist | 4 + sysdeps/mach/hurd/x86_64/libc.abilist | 2416 +++++++++++++++++ .../hurd/x86_64/libc_malloc_debug.abilist | 28 + sysdeps/mach/hurd/x86_64/libcrypt.abilist | 7 + sysdeps/mach/hurd/x86_64/libdl.abilist | 3 + sysdeps/mach/hurd/x86_64/libhurduser.abilist | 754 +++++ sysdeps/mach/hurd/x86_64/libm.abilist | 1181 ++++++++ sysdeps/mach/hurd/x86_64/libmachuser.abilist | 336 +++ sysdeps/mach/hurd/x86_64/libmvec.abilist | 216 ++ sysdeps/mach/hurd/x86_64/libnsl.abilist | 121 + sysdeps/mach/hurd/x86_64/libpthread.abilist | 178 ++ sysdeps/mach/hurd/x86_64/libresolv.abilist | 67 + sysdeps/mach/hurd/x86_64/librt.abilist | 35 + sysdeps/mach/hurd/x86_64/libutil.abilist | 1 + 16 files changed, 5366 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/libanl.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/libhurduser.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libm.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libmachuser.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libmvec.abilist create mode 100644 sysdeps/mach/hurd/x86_64/libnsl.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/libutil.abilist diff --git a/sysdeps/mach/hurd/x86_64/ld.abilist b/sysdeps/mach/hurd/x86_64/ld.abilist new file mode 100644 index 00000000..db27ded1 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/ld.abilist @@ -0,0 +1,18 @@ +GLIBC_2.2.6 __close F +GLIBC_2.2.6 __errno_location F +GLIBC_2.2.6 __getpid F +GLIBC_2.2.6 __libc_stack_end D 0x8 +GLIBC_2.2.6 __mmap F +GLIBC_2.2.6 __open F +GLIBC_2.2.6 __open64 F +GLIBC_2.2.6 __pread64 F +GLIBC_2.2.6 __read F +GLIBC_2.2.6 __sbrk F +GLIBC_2.2.6 __write F +GLIBC_2.2.6 __writev F +GLIBC_2.2.6 _dl_mcount F +GLIBC_2.2.6 _hurd_intr_rpc_mach_msg F +GLIBC_2.2.6 _r_debug D 0x28 +GLIBC_2.2.6 abort F +GLIBC_2.3 __tls_get_addr F +GLIBC_2.34 __rtld_version_placeholder 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..a0f854c7 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libBrokenLocale.abilist @@ -0,0 +1 @@ +GLIBC_2.2.6 __ctype_get_mb_cur_max F diff --git a/sysdeps/mach/hurd/x86_64/libanl.abilist b/sysdeps/mach/hurd/x86_64/libanl.abilist new file mode 100644 index 00000000..123013b2 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libanl.abilist @@ -0,0 +1,4 @@ +GLIBC_2.2.6 gai_cancel F +GLIBC_2.2.6 gai_error F +GLIBC_2.2.6 gai_suspend F +GLIBC_2.2.6 getaddrinfo_a 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..e7e64a05 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -0,0 +1,2416 @@ +GLIBC_2.10 __cxa_at_quick_exit F +GLIBC_2.10 __posix_getopt F +GLIBC_2.10 accept4 F +GLIBC_2.10 endsgent F +GLIBC_2.10 fgetsgent F +GLIBC_2.10 fgetsgent_r F +GLIBC_2.10 getsgent F +GLIBC_2.10 getsgent_r F +GLIBC_2.10 getsgnam F +GLIBC_2.10 getsgnam_r F +GLIBC_2.10 malloc_info F +GLIBC_2.10 preadv F +GLIBC_2.10 preadv64 F +GLIBC_2.10 psiginfo F +GLIBC_2.10 putsgent F +GLIBC_2.10 pwritev F +GLIBC_2.10 pwritev64 F +GLIBC_2.10 quick_exit F +GLIBC_2.10 register_printf_modifier F +GLIBC_2.10 register_printf_specifier F +GLIBC_2.10 register_printf_type F +GLIBC_2.10 setsgent F +GLIBC_2.10 sgetsgent F +GLIBC_2.10 sgetsgent_r F +GLIBC_2.11 __longjmp_chk F +GLIBC_2.11 execvpe F +GLIBC_2.11 mkostemps F +GLIBC_2.11 mkostemps64 F +GLIBC_2.11 mkstemps F +GLIBC_2.11 mkstemps64 F +GLIBC_2.13 __fentry__ F +GLIBC_2.14 memcpy F +GLIBC_2.14 syncfs F +GLIBC_2.15 __fdelt_chk F +GLIBC_2.15 __fdelt_warn F +GLIBC_2.15 posix_spawn F +GLIBC_2.15 posix_spawnp F +GLIBC_2.15 scandirat F +GLIBC_2.15 scandirat64 F +GLIBC_2.16 __getauxval F +GLIBC_2.16 __poll_chk F +GLIBC_2.16 __ppoll_chk F +GLIBC_2.16 aligned_alloc F +GLIBC_2.16 c16rtomb F +GLIBC_2.16 c32rtomb F +GLIBC_2.16 getauxval F +GLIBC_2.16 mbrtoc16 F +GLIBC_2.16 mbrtoc32 F +GLIBC_2.16 timespec_get F +GLIBC_2.17 clock_getcpuclockid F +GLIBC_2.17 clock_getres F +GLIBC_2.17 clock_gettime F +GLIBC_2.17 clock_nanosleep F +GLIBC_2.17 clock_settime F +GLIBC_2.17 recvmmsg F +GLIBC_2.17 secure_getenv F +GLIBC_2.17 sendmmsg F +GLIBC_2.18 __cxa_thread_atexit_impl F +GLIBC_2.2.6 _Exit F +GLIBC_2.2.6 _IO_2_1_stderr_ D 0xe0 +GLIBC_2.2.6 _IO_2_1_stdin_ D 0xe0 +GLIBC_2.2.6 _IO_2_1_stdout_ D 0xe0 +GLIBC_2.2.6 _IO_adjust_column F +GLIBC_2.2.6 _IO_adjust_wcolumn F +GLIBC_2.2.6 _IO_default_doallocate F +GLIBC_2.2.6 _IO_default_finish F +GLIBC_2.2.6 _IO_default_pbackfail F +GLIBC_2.2.6 _IO_default_uflow F +GLIBC_2.2.6 _IO_default_xsgetn F +GLIBC_2.2.6 _IO_default_xsputn F +GLIBC_2.2.6 _IO_do_write F +GLIBC_2.2.6 _IO_doallocbuf F +GLIBC_2.2.6 _IO_fclose F +GLIBC_2.2.6 _IO_fdopen F +GLIBC_2.2.6 _IO_feof F +GLIBC_2.2.6 _IO_ferror F +GLIBC_2.2.6 _IO_fflush F +GLIBC_2.2.6 _IO_fgetpos F +GLIBC_2.2.6 _IO_fgetpos64 F +GLIBC_2.2.6 _IO_fgets F +GLIBC_2.2.6 _IO_file_attach F +GLIBC_2.2.6 _IO_file_close F +GLIBC_2.2.6 _IO_file_close_it F +GLIBC_2.2.6 _IO_file_doallocate F +GLIBC_2.2.6 _IO_file_finish F +GLIBC_2.2.6 _IO_file_fopen F +GLIBC_2.2.6 _IO_file_init F +GLIBC_2.2.6 _IO_file_jumps D 0xa8 +GLIBC_2.2.6 _IO_file_open F +GLIBC_2.2.6 _IO_file_overflow F +GLIBC_2.2.6 _IO_file_read F +GLIBC_2.2.6 _IO_file_seek F +GLIBC_2.2.6 _IO_file_seekoff F +GLIBC_2.2.6 _IO_file_setbuf F +GLIBC_2.2.6 _IO_file_stat F +GLIBC_2.2.6 _IO_file_sync F +GLIBC_2.2.6 _IO_file_underflow F +GLIBC_2.2.6 _IO_file_write F +GLIBC_2.2.6 _IO_file_xsputn F +GLIBC_2.2.6 _IO_flockfile F +GLIBC_2.2.6 _IO_flush_all F +GLIBC_2.2.6 _IO_flush_all_linebuffered F +GLIBC_2.2.6 _IO_fopen F +GLIBC_2.2.6 _IO_fprintf F +GLIBC_2.2.6 _IO_fputs F +GLIBC_2.2.6 _IO_fread F +GLIBC_2.2.6 _IO_free_backup_area F +GLIBC_2.2.6 _IO_free_wbackup_area F +GLIBC_2.2.6 _IO_fsetpos F +GLIBC_2.2.6 _IO_fsetpos64 F +GLIBC_2.2.6 _IO_ftell F +GLIBC_2.2.6 _IO_ftrylockfile F +GLIBC_2.2.6 _IO_funlockfile F +GLIBC_2.2.6 _IO_fwrite F +GLIBC_2.2.6 _IO_getc F +GLIBC_2.2.6 _IO_getline F +GLIBC_2.2.6 _IO_getline_info F +GLIBC_2.2.6 _IO_gets F +GLIBC_2.2.6 _IO_init F +GLIBC_2.2.6 _IO_init_marker F +GLIBC_2.2.6 _IO_init_wmarker F +GLIBC_2.2.6 _IO_iter_begin F +GLIBC_2.2.6 _IO_iter_end F +GLIBC_2.2.6 _IO_iter_file F +GLIBC_2.2.6 _IO_iter_next F +GLIBC_2.2.6 _IO_least_wmarker F +GLIBC_2.2.6 _IO_link_in F +GLIBC_2.2.6 _IO_list_all D 0x8 +GLIBC_2.2.6 _IO_list_lock F +GLIBC_2.2.6 _IO_list_resetlock F +GLIBC_2.2.6 _IO_list_unlock F +GLIBC_2.2.6 _IO_marker_delta F +GLIBC_2.2.6 _IO_marker_difference F +GLIBC_2.2.6 _IO_padn F +GLIBC_2.2.6 _IO_peekc_locked F +GLIBC_2.2.6 _IO_popen F +GLIBC_2.2.6 _IO_printf F +GLIBC_2.2.6 _IO_proc_close F +GLIBC_2.2.6 _IO_proc_open F +GLIBC_2.2.6 _IO_putc F +GLIBC_2.2.6 _IO_puts F +GLIBC_2.2.6 _IO_remove_marker F +GLIBC_2.2.6 _IO_seekmark F +GLIBC_2.2.6 _IO_seekoff F +GLIBC_2.2.6 _IO_seekpos F +GLIBC_2.2.6 _IO_seekwmark F +GLIBC_2.2.6 _IO_setb F +GLIBC_2.2.6 _IO_setbuffer F +GLIBC_2.2.6 _IO_setvbuf F +GLIBC_2.2.6 _IO_sgetn F +GLIBC_2.2.6 _IO_sprintf F +GLIBC_2.2.6 _IO_sputbackc F +GLIBC_2.2.6 _IO_sputbackwc F +GLIBC_2.2.6 _IO_sscanf F +GLIBC_2.2.6 _IO_str_init_readonly F +GLIBC_2.2.6 _IO_str_init_static F +GLIBC_2.2.6 _IO_str_overflow F +GLIBC_2.2.6 _IO_str_pbackfail F +GLIBC_2.2.6 _IO_str_seekoff F +GLIBC_2.2.6 _IO_str_underflow F +GLIBC_2.2.6 _IO_sungetc F +GLIBC_2.2.6 _IO_sungetwc F +GLIBC_2.2.6 _IO_switch_to_get_mode F +GLIBC_2.2.6 _IO_switch_to_main_wget_area F +GLIBC_2.2.6 _IO_switch_to_wbackup_area F +GLIBC_2.2.6 _IO_switch_to_wget_mode F +GLIBC_2.2.6 _IO_un_link F +GLIBC_2.2.6 _IO_ungetc F +GLIBC_2.2.6 _IO_unsave_markers F +GLIBC_2.2.6 _IO_unsave_wmarkers F +GLIBC_2.2.6 _IO_vfprintf F +GLIBC_2.2.6 _IO_vfscanf F +GLIBC_2.2.6 _IO_vsprintf F +GLIBC_2.2.6 _IO_wdefault_doallocate F +GLIBC_2.2.6 _IO_wdefault_finish F +GLIBC_2.2.6 _IO_wdefault_pbackfail F +GLIBC_2.2.6 _IO_wdefault_uflow F +GLIBC_2.2.6 _IO_wdefault_xsgetn F +GLIBC_2.2.6 _IO_wdefault_xsputn F +GLIBC_2.2.6 _IO_wdo_write F +GLIBC_2.2.6 _IO_wdoallocbuf F +GLIBC_2.2.6 _IO_wfile_jumps D 0xa8 +GLIBC_2.2.6 _IO_wfile_overflow F +GLIBC_2.2.6 _IO_wfile_seekoff F +GLIBC_2.2.6 _IO_wfile_sync F +GLIBC_2.2.6 _IO_wfile_underflow F +GLIBC_2.2.6 _IO_wfile_xsputn F +GLIBC_2.2.6 _IO_wmarker_delta F +GLIBC_2.2.6 _IO_wsetb F +GLIBC_2.2.6 _S_catch_exception_raise F +GLIBC_2.2.6 _S_msg_add_auth F +GLIBC_2.2.6 _S_msg_del_auth F +GLIBC_2.2.6 _S_msg_describe_ports F +GLIBC_2.2.6 _S_msg_get_dtable F +GLIBC_2.2.6 _S_msg_get_env_variable F +GLIBC_2.2.6 _S_msg_get_environment F +GLIBC_2.2.6 _S_msg_get_fd F +GLIBC_2.2.6 _S_msg_get_init_int F +GLIBC_2.2.6 _S_msg_get_init_ints F +GLIBC_2.2.6 _S_msg_get_init_port F +GLIBC_2.2.6 _S_msg_get_init_ports F +GLIBC_2.2.6 _S_msg_proc_newids F +GLIBC_2.2.6 _S_msg_report_wait F +GLIBC_2.2.6 _S_msg_set_dtable F +GLIBC_2.2.6 _S_msg_set_env_variable F +GLIBC_2.2.6 _S_msg_set_environment F +GLIBC_2.2.6 _S_msg_set_fd F +GLIBC_2.2.6 _S_msg_set_init_int F +GLIBC_2.2.6 _S_msg_set_init_ints F +GLIBC_2.2.6 _S_msg_set_init_port F +GLIBC_2.2.6 _S_msg_set_init_ports F +GLIBC_2.2.6 _S_msg_sig_post F +GLIBC_2.2.6 _S_msg_sig_post_untraced F +GLIBC_2.2.6 ___brk_addr D 0x8 +GLIBC_2.2.6 __after_morecore_hook D 0x8 +GLIBC_2.2.6 __argz_count F +GLIBC_2.2.6 __argz_next F +GLIBC_2.2.6 __argz_stringify F +GLIBC_2.2.6 __asprintf F +GLIBC_2.2.6 __assert F +GLIBC_2.2.6 __assert_fail F +GLIBC_2.2.6 __assert_perror_fail F +GLIBC_2.2.6 __backtrace F +GLIBC_2.2.6 __backtrace_symbols F +GLIBC_2.2.6 __backtrace_symbols_fd F +GLIBC_2.2.6 __bsd_getpgrp F +GLIBC_2.2.6 __bzero F +GLIBC_2.2.6 __check_rhosts_file D 0x4 +GLIBC_2.2.6 __close F +GLIBC_2.2.6 __cmsg_nxthdr F +GLIBC_2.2.6 __connect F +GLIBC_2.2.6 __ctype32_b D 0x8 +GLIBC_2.2.6 __ctype32_tolower D 0x8 +GLIBC_2.2.6 __ctype32_toupper D 0x8 +GLIBC_2.2.6 __ctype_b D 0x8 +GLIBC_2.2.6 __ctype_get_mb_cur_max F +GLIBC_2.2.6 __ctype_tolower D 0x8 +GLIBC_2.2.6 __ctype_toupper D 0x8 +GLIBC_2.2.6 __cxa_atexit F +GLIBC_2.2.6 __cxa_finalize F +GLIBC_2.2.6 __cyg_profile_func_enter F +GLIBC_2.2.6 __cyg_profile_func_exit F +GLIBC_2.2.6 __daylight D 0x4 +GLIBC_2.2.6 __dcgettext F +GLIBC_2.2.6 __default_morecore F +GLIBC_2.2.6 __dgettext F +GLIBC_2.2.6 __dn_comp F +GLIBC_2.2.6 __dn_expand F +GLIBC_2.2.6 __dn_skipname F +GLIBC_2.2.6 __dup2 F +GLIBC_2.2.6 __duplocale F +GLIBC_2.2.6 __environ D 0x8 +GLIBC_2.2.6 __errno_location F +GLIBC_2.2.6 __fbufsize F +GLIBC_2.2.6 __fcntl F +GLIBC_2.2.6 __ffs F +GLIBC_2.2.6 __finite F +GLIBC_2.2.6 __finitef F +GLIBC_2.2.6 __finitel F +GLIBC_2.2.6 __flbf F +GLIBC_2.2.6 __fork F +GLIBC_2.2.6 __fpending F +GLIBC_2.2.6 __fpu_control D 0x2 +GLIBC_2.2.6 __fpurge F +GLIBC_2.2.6 __freadable F +GLIBC_2.2.6 __freading F +GLIBC_2.2.6 __free_hook D 0x8 +GLIBC_2.2.6 __freelocale F +GLIBC_2.2.6 __fsetlocking F +GLIBC_2.2.6 __fwritable F +GLIBC_2.2.6 __fwriting F +GLIBC_2.2.6 __fxstat F +GLIBC_2.2.6 __fxstat64 F +GLIBC_2.2.6 __getdelim F +GLIBC_2.2.6 __getpagesize F +GLIBC_2.2.6 __getpgid F +GLIBC_2.2.6 __getpid F +GLIBC_2.2.6 __gettimeofday F +GLIBC_2.2.6 __gmtime_r F +GLIBC_2.2.6 __h_errno_location F +GLIBC_2.2.6 __hurd_fail F +GLIBC_2.2.6 __isalnum_l F +GLIBC_2.2.6 __isalpha_l F +GLIBC_2.2.6 __isascii_l F +GLIBC_2.2.6 __isblank_l F +GLIBC_2.2.6 __iscntrl_l F +GLIBC_2.2.6 __isdigit_l F +GLIBC_2.2.6 __isgraph_l F +GLIBC_2.2.6 __isinf F +GLIBC_2.2.6 __isinff F +GLIBC_2.2.6 __isinfl F +GLIBC_2.2.6 __islower_l F +GLIBC_2.2.6 __isnan F +GLIBC_2.2.6 __isnanf F +GLIBC_2.2.6 __isnanl F +GLIBC_2.2.6 __isprint_l F +GLIBC_2.2.6 __ispunct_l F +GLIBC_2.2.6 __isspace_l F +GLIBC_2.2.6 __isupper_l F +GLIBC_2.2.6 __iswalnum_l F +GLIBC_2.2.6 __iswalpha_l F +GLIBC_2.2.6 __iswblank_l F +GLIBC_2.2.6 __iswcntrl_l F +GLIBC_2.2.6 __iswctype F +GLIBC_2.2.6 __iswctype_l F +GLIBC_2.2.6 __iswdigit_l F +GLIBC_2.2.6 __iswgraph_l F +GLIBC_2.2.6 __iswlower_l F +GLIBC_2.2.6 __iswprint_l F +GLIBC_2.2.6 __iswpunct_l F +GLIBC_2.2.6 __iswspace_l F +GLIBC_2.2.6 __iswupper_l F +GLIBC_2.2.6 __iswxdigit_l F +GLIBC_2.2.6 __isxdigit_l F +GLIBC_2.2.6 __ivaliduser F +GLIBC_2.2.6 __key_decryptsession_pk_LOCAL D 0x8 +GLIBC_2.2.6 __key_encryptsession_pk_LOCAL D 0x8 +GLIBC_2.2.6 __key_gendes_LOCAL D 0x8 +GLIBC_2.2.6 __libc_allocate_rtsig F +GLIBC_2.2.6 __libc_calloc F +GLIBC_2.2.6 __libc_current_sigrtmax F +GLIBC_2.2.6 __libc_current_sigrtmin F +GLIBC_2.2.6 __libc_free F +GLIBC_2.2.6 __libc_freeres F +GLIBC_2.2.6 __libc_init_first F +GLIBC_2.2.6 __libc_mallinfo F +GLIBC_2.2.6 __libc_malloc F +GLIBC_2.2.6 __libc_mallopt F +GLIBC_2.2.6 __libc_memalign F +GLIBC_2.2.6 __libc_pvalloc F +GLIBC_2.2.6 __libc_realloc F +GLIBC_2.2.6 __libc_start_main F +GLIBC_2.2.6 __libc_valloc F +GLIBC_2.2.6 __lseek F +GLIBC_2.2.6 __lxstat F +GLIBC_2.2.6 __lxstat64 F +GLIBC_2.2.6 __mach_msg F +GLIBC_2.2.6 __mach_msg_destroy F +GLIBC_2.2.6 __mach_port_allocate F +GLIBC_2.2.6 __mach_port_deallocate F +GLIBC_2.2.6 __mach_port_insert_right F +GLIBC_2.2.6 __mach_reply_port F +GLIBC_2.2.6 __mach_task_self_ D 0x4 +GLIBC_2.2.6 __mach_thread_self F +GLIBC_2.2.6 __malloc_hook D 0x8 +GLIBC_2.2.6 __malloc_initialize_hook D 0x8 +GLIBC_2.2.6 __mbrlen F +GLIBC_2.2.6 __mbrtowc F +GLIBC_2.2.6 __memalign_hook D 0x8 +GLIBC_2.2.6 __mempcpy F +GLIBC_2.2.6 __mempcpy_small F +GLIBC_2.2.6 __mig_allocate F +GLIBC_2.2.6 __mig_dealloc_reply_port F +GLIBC_2.2.6 __mig_deallocate F +GLIBC_2.2.6 __mig_get_reply_port F +GLIBC_2.2.6 __mig_init F +GLIBC_2.2.6 __mig_put_reply_port F +GLIBC_2.2.6 __mig_strncpy F +GLIBC_2.2.6 __mmap F +GLIBC_2.2.6 __monstartup F +GLIBC_2.2.6 __morecore D 0x8 +GLIBC_2.2.6 __nanosleep F +GLIBC_2.2.6 __newlocale F +GLIBC_2.2.6 __nl_langinfo_l F +GLIBC_2.2.6 __nss_configure_lookup F +GLIBC_2.2.6 __nss_database_lookup F +GLIBC_2.2.6 __nss_group_lookup F +GLIBC_2.2.6 __nss_hostname_digits_dots F +GLIBC_2.2.6 __nss_hosts_lookup F +GLIBC_2.2.6 __nss_next F +GLIBC_2.2.6 __nss_passwd_lookup F +GLIBC_2.2.6 __open F +GLIBC_2.2.6 __open64 F +GLIBC_2.2.6 __overflow F +GLIBC_2.2.6 __pipe F +GLIBC_2.2.6 __poll F +GLIBC_2.2.6 __pread64 F +GLIBC_2.2.6 __printf_fp F +GLIBC_2.2.6 __profile_frequency F +GLIBC_2.2.6 __progname D 0x8 +GLIBC_2.2.6 __progname_full D 0x8 +GLIBC_2.2.6 __pwrite64 F +GLIBC_2.2.6 __rawmemchr F +GLIBC_2.2.6 __rcmd_errstr D 0x8 +GLIBC_2.2.6 __read F +GLIBC_2.2.6 __realloc_hook D 0x8 +GLIBC_2.2.6 __res_dnok F +GLIBC_2.2.6 __res_hnok F +GLIBC_2.2.6 __res_init F +GLIBC_2.2.6 __res_mailok F +GLIBC_2.2.6 __res_mkquery F +GLIBC_2.2.6 __res_nclose F +GLIBC_2.2.6 __res_ninit F +GLIBC_2.2.6 __res_nmkquery F +GLIBC_2.2.6 __res_nquery F +GLIBC_2.2.6 __res_nquerydomain F +GLIBC_2.2.6 __res_nsearch F +GLIBC_2.2.6 __res_nsend F +GLIBC_2.2.6 __res_ownok F +GLIBC_2.2.6 __res_query F +GLIBC_2.2.6 __res_querydomain F +GLIBC_2.2.6 __res_randomid F +GLIBC_2.2.6 __res_search F +GLIBC_2.2.6 __res_send F +GLIBC_2.2.6 __res_state F +GLIBC_2.2.6 __rpc_thread_createerr F +GLIBC_2.2.6 __rpc_thread_svc_fdset F +GLIBC_2.2.6 __rpc_thread_svc_max_pollfd F +GLIBC_2.2.6 __rpc_thread_svc_pollfd F +GLIBC_2.2.6 __sbrk F +GLIBC_2.2.6 __sched_get_priority_max F +GLIBC_2.2.6 __sched_get_priority_min F +GLIBC_2.2.6 __sched_getparam F +GLIBC_2.2.6 __sched_getscheduler F +GLIBC_2.2.6 __sched_setscheduler F +GLIBC_2.2.6 __sched_yield F +GLIBC_2.2.6 __secure_getenv F +GLIBC_2.2.6 __select F +GLIBC_2.2.6 __send F +GLIBC_2.2.6 __setpgid F +GLIBC_2.2.6 __sigaction F +GLIBC_2.2.6 __sigaddset F +GLIBC_2.2.6 __sigdelset F +GLIBC_2.2.6 __sigismember F +GLIBC_2.2.6 __signbit F +GLIBC_2.2.6 __signbitf F +GLIBC_2.2.6 __signbitl F +GLIBC_2.2.6 __sigpause F +GLIBC_2.2.6 __sigsetjmp F +GLIBC_2.2.6 __sigsuspend F +GLIBC_2.2.6 __stpcpy F +GLIBC_2.2.6 __stpcpy_small F +GLIBC_2.2.6 __stpncpy F +GLIBC_2.2.6 __strcasecmp F +GLIBC_2.2.6 __strcasecmp_l F +GLIBC_2.2.6 __strcasestr F +GLIBC_2.2.6 __strcoll_l F +GLIBC_2.2.6 __strcpy_small F +GLIBC_2.2.6 __strcspn_c1 F +GLIBC_2.2.6 __strcspn_c2 F +GLIBC_2.2.6 __strcspn_c3 F +GLIBC_2.2.6 __strdup F +GLIBC_2.2.6 __strerror_r F +GLIBC_2.2.6 __strfmon_l F +GLIBC_2.2.6 __strncasecmp_l F +GLIBC_2.2.6 __strndup F +GLIBC_2.2.6 __strpbrk_c2 F +GLIBC_2.2.6 __strpbrk_c3 F +GLIBC_2.2.6 __strsep_1c F +GLIBC_2.2.6 __strsep_2c F +GLIBC_2.2.6 __strsep_3c F +GLIBC_2.2.6 __strsep_g F +GLIBC_2.2.6 __strspn_c1 F +GLIBC_2.2.6 __strspn_c2 F +GLIBC_2.2.6 __strspn_c3 F +GLIBC_2.2.6 __strtod_internal F +GLIBC_2.2.6 __strtod_l F +GLIBC_2.2.6 __strtof_internal F +GLIBC_2.2.6 __strtof_l F +GLIBC_2.2.6 __strtok_r F +GLIBC_2.2.6 __strtok_r_1c F +GLIBC_2.2.6 __strtol_internal F +GLIBC_2.2.6 __strtol_l F +GLIBC_2.2.6 __strtold_internal F +GLIBC_2.2.6 __strtold_l F +GLIBC_2.2.6 __strtoll_internal F +GLIBC_2.2.6 __strtoll_l F +GLIBC_2.2.6 __strtoul_internal F +GLIBC_2.2.6 __strtoul_l F +GLIBC_2.2.6 __strtoull_internal F +GLIBC_2.2.6 __strtoull_l F +GLIBC_2.2.6 __strverscmp F +GLIBC_2.2.6 __strxfrm_l F +GLIBC_2.2.6 __sysconf F +GLIBC_2.2.6 __sysv_signal F +GLIBC_2.2.6 __timezone D 0x8 +GLIBC_2.2.6 __toascii_l F +GLIBC_2.2.6 __tolower_l F +GLIBC_2.2.6 __toupper_l F +GLIBC_2.2.6 __towctrans F +GLIBC_2.2.6 __towctrans_l F +GLIBC_2.2.6 __towlower_l F +GLIBC_2.2.6 __towupper_l F +GLIBC_2.2.6 __tzname D 0x10 +GLIBC_2.2.6 __uflow F +GLIBC_2.2.6 __underflow F +GLIBC_2.2.6 __vfork F +GLIBC_2.2.6 __vfscanf F +GLIBC_2.2.6 __vm_allocate F +GLIBC_2.2.6 __vm_deallocate F +GLIBC_2.2.6 __vm_page_size D 0x8 +GLIBC_2.2.6 __vsnprintf F +GLIBC_2.2.6 __vsscanf F +GLIBC_2.2.6 __wait F +GLIBC_2.2.6 __waitpid F +GLIBC_2.2.6 __wcscasecmp_l F +GLIBC_2.2.6 __wcscoll_l F +GLIBC_2.2.6 __wcsncasecmp_l F +GLIBC_2.2.6 __wcstod_internal F +GLIBC_2.2.6 __wcstod_l F +GLIBC_2.2.6 __wcstof_internal F +GLIBC_2.2.6 __wcstof_l F +GLIBC_2.2.6 __wcstol_internal F +GLIBC_2.2.6 __wcstol_l F +GLIBC_2.2.6 __wcstold_internal F +GLIBC_2.2.6 __wcstold_l F +GLIBC_2.2.6 __wcstoll_internal F +GLIBC_2.2.6 __wcstoll_l F +GLIBC_2.2.6 __wcstoul_internal F +GLIBC_2.2.6 __wcstoul_l F +GLIBC_2.2.6 __wcstoull_internal F +GLIBC_2.2.6 __wcstoull_l F +GLIBC_2.2.6 __wcsxfrm_l F +GLIBC_2.2.6 __wctrans_l F +GLIBC_2.2.6 __wctype_l F +GLIBC_2.2.6 __woverflow F +GLIBC_2.2.6 __write F +GLIBC_2.2.6 __writev F +GLIBC_2.2.6 __wuflow F +GLIBC_2.2.6 __wunderflow F +GLIBC_2.2.6 __xmknod F +GLIBC_2.2.6 __xpg_basename F +GLIBC_2.2.6 __xpg_sigpause F +GLIBC_2.2.6 __xstat F +GLIBC_2.2.6 __xstat64 F +GLIBC_2.2.6 _authenticate F +GLIBC_2.2.6 _dl_mcount_wrapper F +GLIBC_2.2.6 _dl_mcount_wrapper_check F +GLIBC_2.2.6 _environ D 0x8 +GLIBC_2.2.6 _exit F +GLIBC_2.2.6 _flushlbf F +GLIBC_2.2.6 _hurd_canonicalize_directory_name_internal F +GLIBC_2.2.6 _hurd_critical_section_lock F +GLIBC_2.2.6 _hurd_critical_section_unlock F +GLIBC_2.2.6 _hurd_device_master D 0x4 +GLIBC_2.2.6 _hurd_dtable D 0x8 +GLIBC_2.2.6 _hurd_dtable_lock D 0x28 +GLIBC_2.2.6 _hurd_dtablesize D 0x4 +GLIBC_2.2.6 _hurd_exception2signal F +GLIBC_2.2.6 _hurd_exec F +GLIBC_2.2.6 _hurd_fd_get F +GLIBC_2.2.6 _hurd_host_priv D 0x4 +GLIBC_2.2.6 _hurd_init F +GLIBC_2.2.6 _hurd_intern_fd F +GLIBC_2.2.6 _hurd_intr_rpc_mach_msg F +GLIBC_2.2.6 _hurd_msgport D 0x4 +GLIBC_2.2.6 _hurd_port_cleanup F +GLIBC_2.2.6 _hurd_port_free F +GLIBC_2.2.6 _hurd_port_get F +GLIBC_2.2.6 _hurd_port_init F +GLIBC_2.2.6 _hurd_port_locked_get F +GLIBC_2.2.6 _hurd_port_set F +GLIBC_2.2.6 _hurd_ports D 0x8 +GLIBC_2.2.6 _hurd_ports_use F +GLIBC_2.2.6 _hurd_proc_init F +GLIBC_2.2.6 _hurd_raise_signal F +GLIBC_2.2.6 _hurd_self_sigstate F +GLIBC_2.2.6 _hurd_thread_sigstate F +GLIBC_2.2.6 _hurdsig_fault_catch_exception_raise F +GLIBC_2.2.6 _hurdsig_fault_env D 0x50 +GLIBC_2.2.6 _hurdsig_fault_preemptor D 0x30 +GLIBC_2.2.6 _hurdsig_interrupt_timeout D 0x4 +GLIBC_2.2.6 _libc_intl_domainname D 0x5 +GLIBC_2.2.6 _longjmp F +GLIBC_2.2.6 _mcleanup F +GLIBC_2.2.6 _mcount F +GLIBC_2.2.6 _nl_default_dirname D 0xe +GLIBC_2.2.6 _nl_domain_bindings D 0x8 +GLIBC_2.2.6 _nl_msg_cat_cntr D 0x4 +GLIBC_2.2.6 _null_auth D 0x18 +GLIBC_2.2.6 _obstack D 0x8 +GLIBC_2.2.6 _obstack_allocated_p F +GLIBC_2.2.6 _obstack_begin F +GLIBC_2.2.6 _obstack_begin_1 F +GLIBC_2.2.6 _obstack_free F +GLIBC_2.2.6 _obstack_memory_used F +GLIBC_2.2.6 _obstack_newchunk F +GLIBC_2.2.6 _res D 0x238 +GLIBC_2.2.6 _res_hconf D 0x48 +GLIBC_2.2.6 _rpc_dtablesize F +GLIBC_2.2.6 _seterr_reply F +GLIBC_2.2.6 _setjmp F +GLIBC_2.2.6 _sys_siglist D 0x108 +GLIBC_2.2.6 _tolower F +GLIBC_2.2.6 _toupper F +GLIBC_2.2.6 a64l F +GLIBC_2.2.6 abort F +GLIBC_2.2.6 abs F +GLIBC_2.2.6 accept F +GLIBC_2.2.6 access F +GLIBC_2.2.6 acct F +GLIBC_2.2.6 addmntent F +GLIBC_2.2.6 addseverity F +GLIBC_2.2.6 adjtime F +GLIBC_2.2.6 advance F +GLIBC_2.2.6 alarm F +GLIBC_2.2.6 alphasort F +GLIBC_2.2.6 alphasort64 F +GLIBC_2.2.6 argp_err_exit_status D 0x4 +GLIBC_2.2.6 argp_error F +GLIBC_2.2.6 argp_failure F +GLIBC_2.2.6 argp_help F +GLIBC_2.2.6 argp_parse F +GLIBC_2.2.6 argp_program_bug_address D 0x8 +GLIBC_2.2.6 argp_program_version D 0x8 +GLIBC_2.2.6 argp_program_version_hook D 0x8 +GLIBC_2.2.6 argp_state_help F +GLIBC_2.2.6 argp_usage F +GLIBC_2.2.6 argz_add F +GLIBC_2.2.6 argz_add_sep F +GLIBC_2.2.6 argz_append F +GLIBC_2.2.6 argz_count F +GLIBC_2.2.6 argz_create F +GLIBC_2.2.6 argz_create_sep F +GLIBC_2.2.6 argz_delete F +GLIBC_2.2.6 argz_extract F +GLIBC_2.2.6 argz_insert F +GLIBC_2.2.6 argz_next F +GLIBC_2.2.6 argz_replace F +GLIBC_2.2.6 argz_stringify F +GLIBC_2.2.6 asctime F +GLIBC_2.2.6 asctime_r F +GLIBC_2.2.6 asprintf F +GLIBC_2.2.6 atof F +GLIBC_2.2.6 atoi F +GLIBC_2.2.6 atol F +GLIBC_2.2.6 atoll F +GLIBC_2.2.6 authdes_create F +GLIBC_2.2.6 authdes_getucred F +GLIBC_2.2.6 authdes_pk_create F +GLIBC_2.2.6 authnone_create F +GLIBC_2.2.6 authunix_create F +GLIBC_2.2.6 authunix_create_default F +GLIBC_2.2.6 backtrace F +GLIBC_2.2.6 backtrace_symbols F +GLIBC_2.2.6 backtrace_symbols_fd F +GLIBC_2.2.6 basename F +GLIBC_2.2.6 bcmp F +GLIBC_2.2.6 bcopy F +GLIBC_2.2.6 bind F +GLIBC_2.2.6 bind_textdomain_codeset F +GLIBC_2.2.6 bindresvport F +GLIBC_2.2.6 bindtextdomain F +GLIBC_2.2.6 brk F +GLIBC_2.2.6 bsd_signal F +GLIBC_2.2.6 bsearch F +GLIBC_2.2.6 btowc F +GLIBC_2.2.6 bzero F +GLIBC_2.2.6 calloc F +GLIBC_2.2.6 callrpc F +GLIBC_2.2.6 canonicalize_file_name F +GLIBC_2.2.6 catclose F +GLIBC_2.2.6 catgets F +GLIBC_2.2.6 catopen F +GLIBC_2.2.6 cbc_crypt F +GLIBC_2.2.6 cfgetispeed F +GLIBC_2.2.6 cfgetospeed F +GLIBC_2.2.6 cfmakeraw F +GLIBC_2.2.6 cfree F +GLIBC_2.2.6 cfsetispeed F +GLIBC_2.2.6 cfsetospeed F +GLIBC_2.2.6 cfsetspeed F +GLIBC_2.2.6 chdir F +GLIBC_2.2.6 chflags F +GLIBC_2.2.6 chmod F +GLIBC_2.2.6 chown F +GLIBC_2.2.6 chroot F +GLIBC_2.2.6 clearenv F +GLIBC_2.2.6 clearerr F +GLIBC_2.2.6 clearerr_unlocked F +GLIBC_2.2.6 clnt_broadcast F +GLIBC_2.2.6 clnt_create F +GLIBC_2.2.6 clnt_pcreateerror F +GLIBC_2.2.6 clnt_perrno F +GLIBC_2.2.6 clnt_perror F +GLIBC_2.2.6 clnt_spcreateerror F +GLIBC_2.2.6 clnt_sperrno F +GLIBC_2.2.6 clnt_sperror F +GLIBC_2.2.6 clntraw_create F +GLIBC_2.2.6 clnttcp_create F +GLIBC_2.2.6 clntudp_bufcreate F +GLIBC_2.2.6 clntudp_create F +GLIBC_2.2.6 clntunix_create F +GLIBC_2.2.6 clock F +GLIBC_2.2.6 clock_getcpuclockid F +GLIBC_2.2.6 clock_getres F +GLIBC_2.2.6 clock_gettime F +GLIBC_2.2.6 clock_nanosleep F +GLIBC_2.2.6 clock_settime F +GLIBC_2.2.6 close F +GLIBC_2.2.6 closedir F +GLIBC_2.2.6 closelog F +GLIBC_2.2.6 confstr F +GLIBC_2.2.6 connect F +GLIBC_2.2.6 copysign F +GLIBC_2.2.6 copysignf F +GLIBC_2.2.6 copysignl F +GLIBC_2.2.6 creat F +GLIBC_2.2.6 creat64 F +GLIBC_2.2.6 ctermid F +GLIBC_2.2.6 ctime F +GLIBC_2.2.6 ctime_r F +GLIBC_2.2.6 cuserid F +GLIBC_2.2.6 daemon F +GLIBC_2.2.6 daylight D 0x4 +GLIBC_2.2.6 dcgettext F +GLIBC_2.2.6 dcngettext F +GLIBC_2.2.6 des_setparity F +GLIBC_2.2.6 dgettext F +GLIBC_2.2.6 difftime F +GLIBC_2.2.6 directory_name_split F +GLIBC_2.2.6 dirfd F +GLIBC_2.2.6 dirname F +GLIBC_2.2.6 div F +GLIBC_2.2.6 dl_iterate_phdr F +GLIBC_2.2.6 dladdr F +GLIBC_2.2.6 dlclose F +GLIBC_2.2.6 dlerror F +GLIBC_2.2.6 dlopen F +GLIBC_2.2.6 dlsym F +GLIBC_2.2.6 dlvsym F +GLIBC_2.2.6 dngettext F +GLIBC_2.2.6 dprintf F +GLIBC_2.2.6 drand48 F +GLIBC_2.2.6 drand48_r F +GLIBC_2.2.6 dup F +GLIBC_2.2.6 dup2 F +GLIBC_2.2.6 dysize F +GLIBC_2.2.6 ecb_crypt F +GLIBC_2.2.6 ecvt F +GLIBC_2.2.6 ecvt_r F +GLIBC_2.2.6 endaliasent F +GLIBC_2.2.6 endfsent F +GLIBC_2.2.6 endgrent F +GLIBC_2.2.6 endhostent F +GLIBC_2.2.6 endmntent F +GLIBC_2.2.6 endnetent F +GLIBC_2.2.6 endnetgrent F +GLIBC_2.2.6 endprotoent F +GLIBC_2.2.6 endpwent F +GLIBC_2.2.6 endrpcent F +GLIBC_2.2.6 endservent F +GLIBC_2.2.6 endspent F +GLIBC_2.2.6 endttyent F +GLIBC_2.2.6 endusershell F +GLIBC_2.2.6 endutent F +GLIBC_2.2.6 endutxent F +GLIBC_2.2.6 environ D 0x8 +GLIBC_2.2.6 envz_add F +GLIBC_2.2.6 envz_entry F +GLIBC_2.2.6 envz_get F +GLIBC_2.2.6 envz_merge F +GLIBC_2.2.6 envz_remove F +GLIBC_2.2.6 envz_strip F +GLIBC_2.2.6 erand48 F +GLIBC_2.2.6 erand48_r F +GLIBC_2.2.6 err F +GLIBC_2.2.6 error F +GLIBC_2.2.6 error_at_line F +GLIBC_2.2.6 error_message_count D 0x4 +GLIBC_2.2.6 error_one_per_line D 0x4 +GLIBC_2.2.6 error_print_progname D 0x8 +GLIBC_2.2.6 errx F +GLIBC_2.2.6 ether_aton F +GLIBC_2.2.6 ether_aton_r F +GLIBC_2.2.6 ether_hostton F +GLIBC_2.2.6 ether_line F +GLIBC_2.2.6 ether_ntoa F +GLIBC_2.2.6 ether_ntoa_r F +GLIBC_2.2.6 ether_ntohost F +GLIBC_2.2.6 euidaccess F +GLIBC_2.2.6 evc_wait F +GLIBC_2.2.6 execl F +GLIBC_2.2.6 execle F +GLIBC_2.2.6 execlp F +GLIBC_2.2.6 execv F +GLIBC_2.2.6 execve F +GLIBC_2.2.6 execvp F +GLIBC_2.2.6 exit F +GLIBC_2.2.6 fattach F +GLIBC_2.2.6 fchdir F +GLIBC_2.2.6 fchflags F +GLIBC_2.2.6 fchmod F +GLIBC_2.2.6 fchown F +GLIBC_2.2.6 fclose F +GLIBC_2.2.6 fcloseall F +GLIBC_2.2.6 fcntl F +GLIBC_2.2.6 fcvt F +GLIBC_2.2.6 fcvt_r F +GLIBC_2.2.6 fdatasync F +GLIBC_2.2.6 fdetach F +GLIBC_2.2.6 fdopen F +GLIBC_2.2.6 feof F +GLIBC_2.2.6 feof_unlocked F +GLIBC_2.2.6 ferror F +GLIBC_2.2.6 ferror_unlocked F +GLIBC_2.2.6 fexecve F +GLIBC_2.2.6 fflush F +GLIBC_2.2.6 fflush_unlocked F +GLIBC_2.2.6 ffs F +GLIBC_2.2.6 ffsl F +GLIBC_2.2.6 ffsll F +GLIBC_2.2.6 fgetc F +GLIBC_2.2.6 fgetc_unlocked F +GLIBC_2.2.6 fgetgrent F +GLIBC_2.2.6 fgetgrent_r F +GLIBC_2.2.6 fgetpos F +GLIBC_2.2.6 fgetpos64 F +GLIBC_2.2.6 fgetpwent F +GLIBC_2.2.6 fgetpwent_r F +GLIBC_2.2.6 fgets F +GLIBC_2.2.6 fgets_unlocked F +GLIBC_2.2.6 fgetspent F +GLIBC_2.2.6 fgetspent_r F +GLIBC_2.2.6 fgetwc F +GLIBC_2.2.6 fgetwc_unlocked F +GLIBC_2.2.6 fgetws F +GLIBC_2.2.6 fgetws_unlocked F +GLIBC_2.2.6 file_name_lookup F +GLIBC_2.2.6 file_name_lookup_under F +GLIBC_2.2.6 file_name_path_lookup F +GLIBC_2.2.6 file_name_split F +GLIBC_2.2.6 fileno F +GLIBC_2.2.6 fileno_unlocked F +GLIBC_2.2.6 finite F +GLIBC_2.2.6 finitef F +GLIBC_2.2.6 finitel F +GLIBC_2.2.6 flock F +GLIBC_2.2.6 flockfile F +GLIBC_2.2.6 fmemopen F +GLIBC_2.2.6 fmtmsg F +GLIBC_2.2.6 fnmatch F +GLIBC_2.2.6 fopen F +GLIBC_2.2.6 fopen64 F +GLIBC_2.2.6 fopencookie F +GLIBC_2.2.6 fopenport F +GLIBC_2.2.6 fork F +GLIBC_2.2.6 forkpty F +GLIBC_2.2.6 fpathconf F +GLIBC_2.2.6 fprintf F +GLIBC_2.2.6 fputc F +GLIBC_2.2.6 fputc_unlocked F +GLIBC_2.2.6 fputs F +GLIBC_2.2.6 fputs_unlocked F +GLIBC_2.2.6 fputwc F +GLIBC_2.2.6 fputwc_unlocked F +GLIBC_2.2.6 fputws F +GLIBC_2.2.6 fputws_unlocked F +GLIBC_2.2.6 fread F +GLIBC_2.2.6 fread_unlocked F +GLIBC_2.2.6 free F +GLIBC_2.2.6 freeaddrinfo F +GLIBC_2.2.6 freopen F +GLIBC_2.2.6 freopen64 F +GLIBC_2.2.6 frexp F +GLIBC_2.2.6 frexpf F +GLIBC_2.2.6 frexpl F +GLIBC_2.2.6 fscanf F +GLIBC_2.2.6 fseek F +GLIBC_2.2.6 fseeko F +GLIBC_2.2.6 fseeko64 F +GLIBC_2.2.6 fsetpos F +GLIBC_2.2.6 fsetpos64 F +GLIBC_2.2.6 fstatfs F +GLIBC_2.2.6 fstatfs64 F +GLIBC_2.2.6 fstatvfs F +GLIBC_2.2.6 fstatvfs64 F +GLIBC_2.2.6 fsync F +GLIBC_2.2.6 ftell F +GLIBC_2.2.6 ftello F +GLIBC_2.2.6 ftello64 F +GLIBC_2.2.6 ftime F +GLIBC_2.2.6 ftok F +GLIBC_2.2.6 ftruncate F +GLIBC_2.2.6 ftruncate64 F +GLIBC_2.2.6 ftrylockfile F +GLIBC_2.2.6 fts_children F +GLIBC_2.2.6 fts_close F +GLIBC_2.2.6 fts_open F +GLIBC_2.2.6 fts_read F +GLIBC_2.2.6 fts_set F +GLIBC_2.2.6 ftw F +GLIBC_2.2.6 ftw64 F +GLIBC_2.2.6 funlockfile F +GLIBC_2.2.6 fwide F +GLIBC_2.2.6 fwprintf F +GLIBC_2.2.6 fwrite F +GLIBC_2.2.6 fwrite_unlocked F +GLIBC_2.2.6 fwscanf F +GLIBC_2.2.6 gai_strerror F +GLIBC_2.2.6 gcvt F +GLIBC_2.2.6 get_avphys_pages F +GLIBC_2.2.6 get_current_dir_name F +GLIBC_2.2.6 get_myaddress F +GLIBC_2.2.6 get_nprocs F +GLIBC_2.2.6 get_nprocs_conf F +GLIBC_2.2.6 get_phys_pages F +GLIBC_2.2.6 get_privileged_ports F +GLIBC_2.2.6 getaddrinfo F +GLIBC_2.2.6 getaliasbyname F +GLIBC_2.2.6 getaliasbyname_r F +GLIBC_2.2.6 getaliasent F +GLIBC_2.2.6 getaliasent_r F +GLIBC_2.2.6 getauth F +GLIBC_2.2.6 getc F +GLIBC_2.2.6 getc_unlocked F +GLIBC_2.2.6 getchar F +GLIBC_2.2.6 getchar_unlocked F +GLIBC_2.2.6 getcontext F +GLIBC_2.2.6 getcrdir F +GLIBC_2.2.6 getcttyid F +GLIBC_2.2.6 getcwd F +GLIBC_2.2.6 getcwdir F +GLIBC_2.2.6 getdate F +GLIBC_2.2.6 getdate_err D 0x4 +GLIBC_2.2.6 getdate_r F +GLIBC_2.2.6 getdelim F +GLIBC_2.2.6 getdirentries F +GLIBC_2.2.6 getdirentries64 F +GLIBC_2.2.6 getdomainname F +GLIBC_2.2.6 getdport F +GLIBC_2.2.6 getdtablesize F +GLIBC_2.2.6 getegid F +GLIBC_2.2.6 getenv F +GLIBC_2.2.6 geteuid F +GLIBC_2.2.6 geteuids F +GLIBC_2.2.6 getfsent F +GLIBC_2.2.6 getfsfile F +GLIBC_2.2.6 getfsspec F +GLIBC_2.2.6 getgid F +GLIBC_2.2.6 getgrent F +GLIBC_2.2.6 getgrent_r F +GLIBC_2.2.6 getgrgid F +GLIBC_2.2.6 getgrgid_r F +GLIBC_2.2.6 getgrnam F +GLIBC_2.2.6 getgrnam_r F +GLIBC_2.2.6 getgrouplist F +GLIBC_2.2.6 getgroups F +GLIBC_2.2.6 gethostbyaddr F +GLIBC_2.2.6 gethostbyaddr_r F +GLIBC_2.2.6 gethostbyname F +GLIBC_2.2.6 gethostbyname2 F +GLIBC_2.2.6 gethostbyname2_r F +GLIBC_2.2.6 gethostbyname_r F +GLIBC_2.2.6 gethostent F +GLIBC_2.2.6 gethostent_r F +GLIBC_2.2.6 gethostid F +GLIBC_2.2.6 gethostname F +GLIBC_2.2.6 getitimer F +GLIBC_2.2.6 getline F +GLIBC_2.2.6 getloadavg F +GLIBC_2.2.6 getlogin F +GLIBC_2.2.6 getlogin_r F +GLIBC_2.2.6 getmntent F +GLIBC_2.2.6 getmntent_r F +GLIBC_2.2.6 getmsg F +GLIBC_2.2.6 getnameinfo F +GLIBC_2.2.6 getnetbyaddr F +GLIBC_2.2.6 getnetbyaddr_r F +GLIBC_2.2.6 getnetbyname F +GLIBC_2.2.6 getnetbyname_r F +GLIBC_2.2.6 getnetent F +GLIBC_2.2.6 getnetent_r F +GLIBC_2.2.6 getnetgrent F +GLIBC_2.2.6 getnetgrent_r F +GLIBC_2.2.6 getnetname F +GLIBC_2.2.6 getopt F +GLIBC_2.2.6 getopt_long F +GLIBC_2.2.6 getopt_long_only F +GLIBC_2.2.6 getpagesize F +GLIBC_2.2.6 getpass F +GLIBC_2.2.6 getpeername F +GLIBC_2.2.6 getpgid F +GLIBC_2.2.6 getpgrp F +GLIBC_2.2.6 getpid F +GLIBC_2.2.6 getpmsg F +GLIBC_2.2.6 getppid F +GLIBC_2.2.6 getpriority F +GLIBC_2.2.6 getproc F +GLIBC_2.2.6 getprotobyname F +GLIBC_2.2.6 getprotobyname_r F +GLIBC_2.2.6 getprotobynumber F +GLIBC_2.2.6 getprotobynumber_r F +GLIBC_2.2.6 getprotoent F +GLIBC_2.2.6 getprotoent_r F +GLIBC_2.2.6 getpt F +GLIBC_2.2.6 getpublickey F +GLIBC_2.2.6 getpw F +GLIBC_2.2.6 getpwent F +GLIBC_2.2.6 getpwent_r F +GLIBC_2.2.6 getpwnam F +GLIBC_2.2.6 getpwnam_r F +GLIBC_2.2.6 getpwuid F +GLIBC_2.2.6 getpwuid_r F +GLIBC_2.2.6 getrlimit F +GLIBC_2.2.6 getrlimit64 F +GLIBC_2.2.6 getrpcbyname F +GLIBC_2.2.6 getrpcbyname_r F +GLIBC_2.2.6 getrpcbynumber F +GLIBC_2.2.6 getrpcbynumber_r F +GLIBC_2.2.6 getrpcent F +GLIBC_2.2.6 getrpcent_r F +GLIBC_2.2.6 getrpcport F +GLIBC_2.2.6 getrusage F +GLIBC_2.2.6 gets F +GLIBC_2.2.6 getsecretkey F +GLIBC_2.2.6 getservbyname F +GLIBC_2.2.6 getservbyname_r F +GLIBC_2.2.6 getservbyport F +GLIBC_2.2.6 getservbyport_r F +GLIBC_2.2.6 getservent F +GLIBC_2.2.6 getservent_r F +GLIBC_2.2.6 getsid F +GLIBC_2.2.6 getsockname F +GLIBC_2.2.6 getsockopt F +GLIBC_2.2.6 getspent F +GLIBC_2.2.6 getspent_r F +GLIBC_2.2.6 getspnam F +GLIBC_2.2.6 getspnam_r F +GLIBC_2.2.6 getsubopt F +GLIBC_2.2.6 gettext F +GLIBC_2.2.6 gettimeofday F +GLIBC_2.2.6 getttyent F +GLIBC_2.2.6 getttynam F +GLIBC_2.2.6 getuid F +GLIBC_2.2.6 getumask F +GLIBC_2.2.6 getusershell F +GLIBC_2.2.6 getutent F +GLIBC_2.2.6 getutent_r F +GLIBC_2.2.6 getutid F +GLIBC_2.2.6 getutid_r F +GLIBC_2.2.6 getutline F +GLIBC_2.2.6 getutline_r F +GLIBC_2.2.6 getutmp F +GLIBC_2.2.6 getutmpx F +GLIBC_2.2.6 getutxent F +GLIBC_2.2.6 getutxid F +GLIBC_2.2.6 getutxline F +GLIBC_2.2.6 getw F +GLIBC_2.2.6 getwc F +GLIBC_2.2.6 getwc_unlocked F +GLIBC_2.2.6 getwchar F +GLIBC_2.2.6 getwchar_unlocked F +GLIBC_2.2.6 getwd F +GLIBC_2.2.6 glob F +GLIBC_2.2.6 glob64 F +GLIBC_2.2.6 glob_pattern_p F +GLIBC_2.2.6 globfree F +GLIBC_2.2.6 globfree64 F +GLIBC_2.2.6 gmtime F +GLIBC_2.2.6 gmtime_r F +GLIBC_2.2.6 gnu_get_libc_release F +GLIBC_2.2.6 gnu_get_libc_version F +GLIBC_2.2.6 grantpt F +GLIBC_2.2.6 group_member F +GLIBC_2.2.6 gsignal F +GLIBC_2.2.6 gtty F +GLIBC_2.2.6 h_errlist D 0x28 +GLIBC_2.2.6 h_nerr D 0x4 +GLIBC_2.2.6 hasmntopt F +GLIBC_2.2.6 hcreate F +GLIBC_2.2.6 hcreate_r F +GLIBC_2.2.6 hdestroy F +GLIBC_2.2.6 hdestroy_r F +GLIBC_2.2.6 herror F +GLIBC_2.2.6 host2netname F +GLIBC_2.2.6 hsearch F +GLIBC_2.2.6 hsearch_r F +GLIBC_2.2.6 hstrerror F +GLIBC_2.2.6 htonl F +GLIBC_2.2.6 htons F +GLIBC_2.2.6 hurd_catch_signal F +GLIBC_2.2.6 hurd_check_cancel F +GLIBC_2.2.6 hurd_directory_name_split F +GLIBC_2.2.6 hurd_file_name_lookup F +GLIBC_2.2.6 hurd_file_name_lookup_retry F +GLIBC_2.2.6 hurd_file_name_path_lookup F +GLIBC_2.2.6 hurd_file_name_split F +GLIBC_2.2.6 hurd_preempt_signals F +GLIBC_2.2.6 hurd_safe_copyin F +GLIBC_2.2.6 hurd_safe_copyout F +GLIBC_2.2.6 hurd_safe_memmove F +GLIBC_2.2.6 hurd_safe_memset F +GLIBC_2.2.6 hurd_sig_post F +GLIBC_2.2.6 hurd_thread_cancel F +GLIBC_2.2.6 hurd_thread_self F +GLIBC_2.2.6 hurd_unpreempt_signals F +GLIBC_2.2.6 iconv F +GLIBC_2.2.6 iconv_close F +GLIBC_2.2.6 iconv_open F +GLIBC_2.2.6 if_freenameindex F +GLIBC_2.2.6 if_indextoname F +GLIBC_2.2.6 if_nameindex F +GLIBC_2.2.6 if_nametoindex F +GLIBC_2.2.6 imaxabs F +GLIBC_2.2.6 imaxdiv F +GLIBC_2.2.6 in6addr_any D 0x10 +GLIBC_2.2.6 in6addr_loopback D 0x10 +GLIBC_2.2.6 index F +GLIBC_2.2.6 inet_addr F +GLIBC_2.2.6 inet_aton F +GLIBC_2.2.6 inet_lnaof F +GLIBC_2.2.6 inet_makeaddr F +GLIBC_2.2.6 inet_netof F +GLIBC_2.2.6 inet_network F +GLIBC_2.2.6 inet_nsap_addr F +GLIBC_2.2.6 inet_nsap_ntoa F +GLIBC_2.2.6 inet_ntoa F +GLIBC_2.2.6 inet_ntop F +GLIBC_2.2.6 inet_pton F +GLIBC_2.2.6 initgroups F +GLIBC_2.2.6 initstate F +GLIBC_2.2.6 initstate_r F +GLIBC_2.2.6 innetgr F +GLIBC_2.2.6 insque F +GLIBC_2.2.6 ioctl F +GLIBC_2.2.6 iruserok F +GLIBC_2.2.6 iruserok_af F +GLIBC_2.2.6 isalnum F +GLIBC_2.2.6 isalpha F +GLIBC_2.2.6 isascii F +GLIBC_2.2.6 isastream F +GLIBC_2.2.6 isatty F +GLIBC_2.2.6 isblank F +GLIBC_2.2.6 iscntrl F +GLIBC_2.2.6 isdigit F +GLIBC_2.2.6 isfdtype F +GLIBC_2.2.6 isgraph F +GLIBC_2.2.6 isinf F +GLIBC_2.2.6 isinff F +GLIBC_2.2.6 isinfl F +GLIBC_2.2.6 islower F +GLIBC_2.2.6 isnan F +GLIBC_2.2.6 isnanf F +GLIBC_2.2.6 isnanl F +GLIBC_2.2.6 isprint F +GLIBC_2.2.6 ispunct F +GLIBC_2.2.6 isspace F +GLIBC_2.2.6 isupper F +GLIBC_2.2.6 iswalnum F +GLIBC_2.2.6 iswalpha F +GLIBC_2.2.6 iswblank F +GLIBC_2.2.6 iswcntrl F +GLIBC_2.2.6 iswctype F +GLIBC_2.2.6 iswdigit F +GLIBC_2.2.6 iswgraph F +GLIBC_2.2.6 iswlower F +GLIBC_2.2.6 iswprint F +GLIBC_2.2.6 iswpunct F +GLIBC_2.2.6 iswspace F +GLIBC_2.2.6 iswupper F +GLIBC_2.2.6 iswxdigit F +GLIBC_2.2.6 isxdigit F +GLIBC_2.2.6 jrand48 F +GLIBC_2.2.6 jrand48_r F +GLIBC_2.2.6 key_decryptsession F +GLIBC_2.2.6 key_decryptsession_pk F +GLIBC_2.2.6 key_encryptsession F +GLIBC_2.2.6 key_encryptsession_pk F +GLIBC_2.2.6 key_gendes F +GLIBC_2.2.6 key_get_conv F +GLIBC_2.2.6 key_secretkey_is_set F +GLIBC_2.2.6 key_setnet F +GLIBC_2.2.6 key_setsecret F +GLIBC_2.2.6 kill F +GLIBC_2.2.6 killpg F +GLIBC_2.2.6 l64a F +GLIBC_2.2.6 labs F +GLIBC_2.2.6 lchown F +GLIBC_2.2.6 lckpwdf F +GLIBC_2.2.6 lcong48 F +GLIBC_2.2.6 lcong48_r F +GLIBC_2.2.6 ldexp F +GLIBC_2.2.6 ldexpf F +GLIBC_2.2.6 ldexpl F +GLIBC_2.2.6 ldiv F +GLIBC_2.2.6 lfind F +GLIBC_2.2.6 link F +GLIBC_2.2.6 listen F +GLIBC_2.2.6 llabs F +GLIBC_2.2.6 lldiv F +GLIBC_2.2.6 loc1 D 0x8 +GLIBC_2.2.6 loc2 D 0x8 +GLIBC_2.2.6 localeconv F +GLIBC_2.2.6 localtime F +GLIBC_2.2.6 localtime_r F +GLIBC_2.2.6 lockf F +GLIBC_2.2.6 lockf64 F +GLIBC_2.2.6 locs D 0x8 +GLIBC_2.2.6 login F +GLIBC_2.2.6 login_tty F +GLIBC_2.2.6 logout F +GLIBC_2.2.6 logwtmp F +GLIBC_2.2.6 longjmp F +GLIBC_2.2.6 lrand48 F +GLIBC_2.2.6 lrand48_r F +GLIBC_2.2.6 lsearch F +GLIBC_2.2.6 lseek F +GLIBC_2.2.6 lseek64 F +GLIBC_2.2.6 mach_error F +GLIBC_2.2.6 mach_error_string F +GLIBC_2.2.6 mach_error_type F +GLIBC_2.2.6 mach_host_self F +GLIBC_2.2.6 mach_msg F +GLIBC_2.2.6 mach_msg_destroy F +GLIBC_2.2.6 mach_msg_receive F +GLIBC_2.2.6 mach_msg_send F +GLIBC_2.2.6 mach_msg_server F +GLIBC_2.2.6 mach_msg_server_timeout F +GLIBC_2.2.6 mach_open_devstream F +GLIBC_2.2.6 mach_port_allocate F +GLIBC_2.2.6 mach_port_allocate_name F +GLIBC_2.2.6 mach_port_deallocate F +GLIBC_2.2.6 mach_port_insert_right F +GLIBC_2.2.6 mach_reply_port F +GLIBC_2.2.6 mach_setup_thread F +GLIBC_2.2.6 mach_setup_tls F +GLIBC_2.2.6 mach_task_self F +GLIBC_2.2.6 mach_thread_self F +GLIBC_2.2.6 madvise F +GLIBC_2.2.6 makecontext F +GLIBC_2.2.6 mallinfo F +GLIBC_2.2.6 malloc F +GLIBC_2.2.6 malloc_stats F +GLIBC_2.2.6 malloc_trim F +GLIBC_2.2.6 malloc_usable_size F +GLIBC_2.2.6 mallopt F +GLIBC_2.2.6 mallwatch D 0x8 +GLIBC_2.2.6 mblen F +GLIBC_2.2.6 mbrlen F +GLIBC_2.2.6 mbrtowc F +GLIBC_2.2.6 mbsinit F +GLIBC_2.2.6 mbsnrtowcs F +GLIBC_2.2.6 mbsrtowcs F +GLIBC_2.2.6 mbstowcs F +GLIBC_2.2.6 mbtowc F +GLIBC_2.2.6 mcheck F +GLIBC_2.2.6 mcheck_check_all F +GLIBC_2.2.6 mcheck_pedantic F +GLIBC_2.2.6 mcount F +GLIBC_2.2.6 memalign F +GLIBC_2.2.6 memccpy F +GLIBC_2.2.6 memchr F +GLIBC_2.2.6 memcmp F +GLIBC_2.2.6 memcpy F +GLIBC_2.2.6 memfrob F +GLIBC_2.2.6 memmem F +GLIBC_2.2.6 memmove F +GLIBC_2.2.6 mempcpy F +GLIBC_2.2.6 memrchr F +GLIBC_2.2.6 memset F +GLIBC_2.2.6 mig_allocate F +GLIBC_2.2.6 mig_dealloc_reply_port F +GLIBC_2.2.6 mig_deallocate F +GLIBC_2.2.6 mig_get_reply_port F +GLIBC_2.2.6 mig_init F +GLIBC_2.2.6 mig_put_reply_port F +GLIBC_2.2.6 mig_strncpy F +GLIBC_2.2.6 mincore F +GLIBC_2.2.6 mkdir F +GLIBC_2.2.6 mkdtemp F +GLIBC_2.2.6 mkfifo F +GLIBC_2.2.6 mkstemp F +GLIBC_2.2.6 mkstemp64 F +GLIBC_2.2.6 mktemp F +GLIBC_2.2.6 mktime F +GLIBC_2.2.6 mlock F +GLIBC_2.2.6 mlockall F +GLIBC_2.2.6 mmap F +GLIBC_2.2.6 mmap64 F +GLIBC_2.2.6 modf F +GLIBC_2.2.6 modff F +GLIBC_2.2.6 modfl F +GLIBC_2.2.6 moncontrol F +GLIBC_2.2.6 monstartup F +GLIBC_2.2.6 mprobe F +GLIBC_2.2.6 mprotect F +GLIBC_2.2.6 mrand48 F +GLIBC_2.2.6 mrand48_r F +GLIBC_2.2.6 msgctl F +GLIBC_2.2.6 msgget F +GLIBC_2.2.6 msgrcv F +GLIBC_2.2.6 msgsnd F +GLIBC_2.2.6 msync F +GLIBC_2.2.6 mtrace F +GLIBC_2.2.6 munlock F +GLIBC_2.2.6 munlockall F +GLIBC_2.2.6 munmap F +GLIBC_2.2.6 muntrace F +GLIBC_2.2.6 nanosleep F +GLIBC_2.2.6 netname2host F +GLIBC_2.2.6 netname2user F +GLIBC_2.2.6 nftw F +GLIBC_2.2.6 nftw64 F +GLIBC_2.2.6 ngettext F +GLIBC_2.2.6 nice F +GLIBC_2.2.6 nl_langinfo F +GLIBC_2.2.6 nrand48 F +GLIBC_2.2.6 nrand48_r F +GLIBC_2.2.6 ntohl F +GLIBC_2.2.6 ntohs F +GLIBC_2.2.6 obstack_alloc_failed_handler D 0x8 +GLIBC_2.2.6 obstack_exit_failure D 0x4 +GLIBC_2.2.6 obstack_free F +GLIBC_2.2.6 obstack_printf F +GLIBC_2.2.6 obstack_vprintf F +GLIBC_2.2.6 on_exit F +GLIBC_2.2.6 open F +GLIBC_2.2.6 open64 F +GLIBC_2.2.6 open_memstream F +GLIBC_2.2.6 opendir F +GLIBC_2.2.6 openlog F +GLIBC_2.2.6 openport F +GLIBC_2.2.6 openpty F +GLIBC_2.2.6 optarg D 0x8 +GLIBC_2.2.6 opterr D 0x4 +GLIBC_2.2.6 optind D 0x4 +GLIBC_2.2.6 optopt D 0x4 +GLIBC_2.2.6 parse_printf_format F +GLIBC_2.2.6 passwd2des F +GLIBC_2.2.6 pathconf F +GLIBC_2.2.6 pause F +GLIBC_2.2.6 pclose F +GLIBC_2.2.6 perror F +GLIBC_2.2.6 pid2task F +GLIBC_2.2.6 pipe F +GLIBC_2.2.6 pmap_getmaps F +GLIBC_2.2.6 pmap_getport F +GLIBC_2.2.6 pmap_rmtcall F +GLIBC_2.2.6 pmap_set F +GLIBC_2.2.6 pmap_unset F +GLIBC_2.2.6 poll F +GLIBC_2.2.6 popen F +GLIBC_2.2.6 posix_fadvise F +GLIBC_2.2.6 posix_fadvise64 F +GLIBC_2.2.6 posix_fallocate F +GLIBC_2.2.6 posix_fallocate64 F +GLIBC_2.2.6 posix_madvise F +GLIBC_2.2.6 posix_memalign F +GLIBC_2.2.6 posix_openpt F +GLIBC_2.2.6 posix_spawn F +GLIBC_2.2.6 posix_spawn_file_actions_addclose F +GLIBC_2.2.6 posix_spawn_file_actions_adddup2 F +GLIBC_2.2.6 posix_spawn_file_actions_addopen F +GLIBC_2.2.6 posix_spawn_file_actions_destroy F +GLIBC_2.2.6 posix_spawn_file_actions_init F +GLIBC_2.2.6 posix_spawnattr_destroy F +GLIBC_2.2.6 posix_spawnattr_getflags F +GLIBC_2.2.6 posix_spawnattr_getpgroup F +GLIBC_2.2.6 posix_spawnattr_getschedparam F +GLIBC_2.2.6 posix_spawnattr_getschedpolicy F +GLIBC_2.2.6 posix_spawnattr_getsigdefault F +GLIBC_2.2.6 posix_spawnattr_getsigmask F +GLIBC_2.2.6 posix_spawnattr_init F +GLIBC_2.2.6 posix_spawnattr_setflags F +GLIBC_2.2.6 posix_spawnattr_setpgroup F +GLIBC_2.2.6 posix_spawnattr_setschedparam F +GLIBC_2.2.6 posix_spawnattr_setschedpolicy F +GLIBC_2.2.6 posix_spawnattr_setsigdefault F +GLIBC_2.2.6 posix_spawnattr_setsigmask F +GLIBC_2.2.6 posix_spawnp F +GLIBC_2.2.6 pread F +GLIBC_2.2.6 pread64 F +GLIBC_2.2.6 printf F +GLIBC_2.2.6 printf_size F +GLIBC_2.2.6 printf_size_info F +GLIBC_2.2.6 profil F +GLIBC_2.2.6 program_invocation_name D 0x8 +GLIBC_2.2.6 program_invocation_short_name D 0x8 +GLIBC_2.2.6 pselect F +GLIBC_2.2.6 psignal F +GLIBC_2.2.6 ptrace F +GLIBC_2.2.6 ptsname F +GLIBC_2.2.6 ptsname_r F +GLIBC_2.2.6 putc F +GLIBC_2.2.6 putc_unlocked F +GLIBC_2.2.6 putchar F +GLIBC_2.2.6 putchar_unlocked F +GLIBC_2.2.6 putenv F +GLIBC_2.2.6 putgrent F +GLIBC_2.2.6 putmsg F +GLIBC_2.2.6 putpmsg F +GLIBC_2.2.6 putpwent F +GLIBC_2.2.6 puts F +GLIBC_2.2.6 putspent F +GLIBC_2.2.6 pututline F +GLIBC_2.2.6 pututxline F +GLIBC_2.2.6 putw F +GLIBC_2.2.6 putwc F +GLIBC_2.2.6 putwc_unlocked F +GLIBC_2.2.6 putwchar F +GLIBC_2.2.6 putwchar_unlocked F +GLIBC_2.2.6 pvalloc F +GLIBC_2.2.6 pwrite F +GLIBC_2.2.6 pwrite64 F +GLIBC_2.2.6 qecvt F +GLIBC_2.2.6 qecvt_r F +GLIBC_2.2.6 qfcvt F +GLIBC_2.2.6 qfcvt_r F +GLIBC_2.2.6 qgcvt F +GLIBC_2.2.6 qsort F +GLIBC_2.2.6 raise F +GLIBC_2.2.6 rand F +GLIBC_2.2.6 rand_r F +GLIBC_2.2.6 random F +GLIBC_2.2.6 random_r F +GLIBC_2.2.6 rawmemchr F +GLIBC_2.2.6 rcmd F +GLIBC_2.2.6 rcmd_af F +GLIBC_2.2.6 re_comp F +GLIBC_2.2.6 re_compile_fastmap F +GLIBC_2.2.6 re_compile_pattern F +GLIBC_2.2.6 re_exec F +GLIBC_2.2.6 re_match F +GLIBC_2.2.6 re_match_2 F +GLIBC_2.2.6 re_max_failures D 0x4 +GLIBC_2.2.6 re_search F +GLIBC_2.2.6 re_search_2 F +GLIBC_2.2.6 re_set_registers F +GLIBC_2.2.6 re_set_syntax F +GLIBC_2.2.6 re_syntax_options D 0x8 +GLIBC_2.2.6 read F +GLIBC_2.2.6 readdir F +GLIBC_2.2.6 readdir64 F +GLIBC_2.2.6 readdir64_r F +GLIBC_2.2.6 readdir_r F +GLIBC_2.2.6 readlink F +GLIBC_2.2.6 readv F +GLIBC_2.2.6 realloc F +GLIBC_2.2.6 realpath F +GLIBC_2.2.6 reboot F +GLIBC_2.2.6 recv F +GLIBC_2.2.6 recvfrom F +GLIBC_2.2.6 recvmsg F +GLIBC_2.2.6 regcomp F +GLIBC_2.2.6 regerror F +GLIBC_2.2.6 regexec F +GLIBC_2.2.6 regfree F +GLIBC_2.2.6 register_printf_function F +GLIBC_2.2.6 registerrpc F +GLIBC_2.2.6 remove F +GLIBC_2.2.6 remque F +GLIBC_2.2.6 rename F +GLIBC_2.2.6 revoke F +GLIBC_2.2.6 rewind F +GLIBC_2.2.6 rewinddir F +GLIBC_2.2.6 rexec F +GLIBC_2.2.6 rexec_af F +GLIBC_2.2.6 rexecoptions D 0x4 +GLIBC_2.2.6 rindex F +GLIBC_2.2.6 rmdir F +GLIBC_2.2.6 rpc_createerr D 0x20 +GLIBC_2.2.6 rpmatch F +GLIBC_2.2.6 rresvport F +GLIBC_2.2.6 rresvport_af F +GLIBC_2.2.6 rtime F +GLIBC_2.2.6 ruserok F +GLIBC_2.2.6 ruserok_af F +GLIBC_2.2.6 ruserpass F +GLIBC_2.2.6 sbrk F +GLIBC_2.2.6 scalbn F +GLIBC_2.2.6 scalbnf F +GLIBC_2.2.6 scalbnl F +GLIBC_2.2.6 scandir F +GLIBC_2.2.6 scandir64 F +GLIBC_2.2.6 scanf F +GLIBC_2.2.6 sched_get_priority_max F +GLIBC_2.2.6 sched_get_priority_min F +GLIBC_2.2.6 sched_getparam F +GLIBC_2.2.6 sched_getscheduler F +GLIBC_2.2.6 sched_rr_get_interval F +GLIBC_2.2.6 sched_setparam F +GLIBC_2.2.6 sched_setscheduler F +GLIBC_2.2.6 sched_yield F +GLIBC_2.2.6 seed48 F +GLIBC_2.2.6 seed48_r F +GLIBC_2.2.6 seekdir F +GLIBC_2.2.6 select F +GLIBC_2.2.6 semctl F +GLIBC_2.2.6 semget F +GLIBC_2.2.6 semop F +GLIBC_2.2.6 send F +GLIBC_2.2.6 sendfile F +GLIBC_2.2.6 sendmsg F +GLIBC_2.2.6 sendto F +GLIBC_2.2.6 setaliasent F +GLIBC_2.2.6 setauth F +GLIBC_2.2.6 setbuf F +GLIBC_2.2.6 setbuffer F +GLIBC_2.2.6 setcontext F +GLIBC_2.2.6 setcrdir F +GLIBC_2.2.6 setcttyid F +GLIBC_2.2.6 setcwdir F +GLIBC_2.2.6 setdomainname F +GLIBC_2.2.6 setegid F +GLIBC_2.2.6 setenv F +GLIBC_2.2.6 seteuid F +GLIBC_2.2.6 seteuids F +GLIBC_2.2.6 setfsent F +GLIBC_2.2.6 setgid F +GLIBC_2.2.6 setgrent F +GLIBC_2.2.6 setgroups F +GLIBC_2.2.6 sethostent F +GLIBC_2.2.6 sethostid F +GLIBC_2.2.6 sethostname F +GLIBC_2.2.6 setitimer F +GLIBC_2.2.6 setjmp F +GLIBC_2.2.6 setlinebuf F +GLIBC_2.2.6 setlocale F +GLIBC_2.2.6 setlogin F +GLIBC_2.2.6 setlogmask F +GLIBC_2.2.6 setmntent F +GLIBC_2.2.6 setnetent F +GLIBC_2.2.6 setnetgrent F +GLIBC_2.2.6 setpgid F +GLIBC_2.2.6 setpgrp F +GLIBC_2.2.6 setpriority F +GLIBC_2.2.6 setproc F +GLIBC_2.2.6 setprotoent F +GLIBC_2.2.6 setpwent F +GLIBC_2.2.6 setregid F +GLIBC_2.2.6 setreuid F +GLIBC_2.2.6 setrlimit F +GLIBC_2.2.6 setrlimit64 F +GLIBC_2.2.6 setrpcent F +GLIBC_2.2.6 setservent F +GLIBC_2.2.6 setsid F +GLIBC_2.2.6 setsockopt F +GLIBC_2.2.6 setspent F +GLIBC_2.2.6 setstate F +GLIBC_2.2.6 setstate_r F +GLIBC_2.2.6 settimeofday F +GLIBC_2.2.6 setttyent F +GLIBC_2.2.6 setuid F +GLIBC_2.2.6 setusershell F +GLIBC_2.2.6 setutent F +GLIBC_2.2.6 setutxent F +GLIBC_2.2.6 setvbuf F +GLIBC_2.2.6 sgetspent F +GLIBC_2.2.6 sgetspent_r F +GLIBC_2.2.6 shm_open F +GLIBC_2.2.6 shm_unlink F +GLIBC_2.2.6 shmat F +GLIBC_2.2.6 shmctl F +GLIBC_2.2.6 shmdt F +GLIBC_2.2.6 shmget F +GLIBC_2.2.6 shutdown F +GLIBC_2.2.6 sigaction F +GLIBC_2.2.6 sigaddset F +GLIBC_2.2.6 sigaltstack F +GLIBC_2.2.6 sigandset F +GLIBC_2.2.6 sigblock F +GLIBC_2.2.6 sigdelset F +GLIBC_2.2.6 sigemptyset F +GLIBC_2.2.6 sigfillset F +GLIBC_2.2.6 siggetmask F +GLIBC_2.2.6 sighold F +GLIBC_2.2.6 sigignore F +GLIBC_2.2.6 siginterrupt F +GLIBC_2.2.6 sigisemptyset F +GLIBC_2.2.6 sigismember F +GLIBC_2.2.6 siglongjmp F +GLIBC_2.2.6 signal F +GLIBC_2.2.6 sigorset F +GLIBC_2.2.6 sigpause F +GLIBC_2.2.6 sigpending F +GLIBC_2.2.6 sigprocmask F +GLIBC_2.2.6 sigqueue F +GLIBC_2.2.6 sigrelse F +GLIBC_2.2.6 sigreturn F +GLIBC_2.2.6 sigset F +GLIBC_2.2.6 sigsetmask F +GLIBC_2.2.6 sigstack F +GLIBC_2.2.6 sigsuspend F +GLIBC_2.2.6 sigtimedwait F +GLIBC_2.2.6 sigvec F +GLIBC_2.2.6 sigwait F +GLIBC_2.2.6 sigwaitinfo F +GLIBC_2.2.6 sleep F +GLIBC_2.2.6 snprintf F +GLIBC_2.2.6 sockatmark F +GLIBC_2.2.6 socket F +GLIBC_2.2.6 socketpair F +GLIBC_2.2.6 sprintf F +GLIBC_2.2.6 sprofil F +GLIBC_2.2.6 srand F +GLIBC_2.2.6 srand48 F +GLIBC_2.2.6 srand48_r F +GLIBC_2.2.6 srandom F +GLIBC_2.2.6 srandom_r F +GLIBC_2.2.6 sscanf F +GLIBC_2.2.6 ssignal F +GLIBC_2.2.6 sstk F +GLIBC_2.2.6 statfs F +GLIBC_2.2.6 statfs64 F +GLIBC_2.2.6 statvfs F +GLIBC_2.2.6 statvfs64 F +GLIBC_2.2.6 stderr D 0x8 +GLIBC_2.2.6 stdin D 0x8 +GLIBC_2.2.6 stdout D 0x8 +GLIBC_2.2.6 step F +GLIBC_2.2.6 stime F +GLIBC_2.2.6 stpcpy F +GLIBC_2.2.6 stpncpy F +GLIBC_2.2.6 strcasecmp F +GLIBC_2.2.6 strcasestr F +GLIBC_2.2.6 strcat F +GLIBC_2.2.6 strchr F +GLIBC_2.2.6 strchrnul F +GLIBC_2.2.6 strcmp F +GLIBC_2.2.6 strcoll F +GLIBC_2.2.6 strcpy F +GLIBC_2.2.6 strcspn F +GLIBC_2.2.6 strdup F +GLIBC_2.2.6 strerror F +GLIBC_2.2.6 strerror_r F +GLIBC_2.2.6 strfmon F +GLIBC_2.2.6 strfry F +GLIBC_2.2.6 strftime F +GLIBC_2.2.6 strlen F +GLIBC_2.2.6 strncasecmp F +GLIBC_2.2.6 strncat F +GLIBC_2.2.6 strncmp F +GLIBC_2.2.6 strncpy F +GLIBC_2.2.6 strndup F +GLIBC_2.2.6 strnlen F +GLIBC_2.2.6 strpbrk F +GLIBC_2.2.6 strptime F +GLIBC_2.2.6 strrchr F +GLIBC_2.2.6 strsep F +GLIBC_2.2.6 strsignal F +GLIBC_2.2.6 strspn F +GLIBC_2.2.6 strstr F +GLIBC_2.2.6 strtod F +GLIBC_2.2.6 strtof F +GLIBC_2.2.6 strtoimax F +GLIBC_2.2.6 strtok F +GLIBC_2.2.6 strtok_r F +GLIBC_2.2.6 strtol F +GLIBC_2.2.6 strtold F +GLIBC_2.2.6 strtoll F +GLIBC_2.2.6 strtoq F +GLIBC_2.2.6 strtoul F +GLIBC_2.2.6 strtoull F +GLIBC_2.2.6 strtoumax F +GLIBC_2.2.6 strtouq F +GLIBC_2.2.6 strverscmp F +GLIBC_2.2.6 strxfrm F +GLIBC_2.2.6 stty F +GLIBC_2.2.6 svc_exit F +GLIBC_2.2.6 svc_fdset D 0x20 +GLIBC_2.2.6 svc_getreq F +GLIBC_2.2.6 svc_getreq_common F +GLIBC_2.2.6 svc_getreq_poll F +GLIBC_2.2.6 svc_getreqset F +GLIBC_2.2.6 svc_max_pollfd D 0x4 +GLIBC_2.2.6 svc_pollfd D 0x8 +GLIBC_2.2.6 svc_register F +GLIBC_2.2.6 svc_run F +GLIBC_2.2.6 svc_sendreply F +GLIBC_2.2.6 svc_unregister F +GLIBC_2.2.6 svcauthdes_stats D 0x18 +GLIBC_2.2.6 svcerr_auth F +GLIBC_2.2.6 svcerr_decode F +GLIBC_2.2.6 svcerr_noproc F +GLIBC_2.2.6 svcerr_noprog F +GLIBC_2.2.6 svcerr_progvers F +GLIBC_2.2.6 svcerr_systemerr F +GLIBC_2.2.6 svcerr_weakauth F +GLIBC_2.2.6 svcfd_create F +GLIBC_2.2.6 svcraw_create F +GLIBC_2.2.6 svctcp_create F +GLIBC_2.2.6 svcudp_bufcreate F +GLIBC_2.2.6 svcudp_create F +GLIBC_2.2.6 svcudp_enablecache F +GLIBC_2.2.6 svcunix_create F +GLIBC_2.2.6 svcunixfd_create F +GLIBC_2.2.6 swab F +GLIBC_2.2.6 swapcontext F +GLIBC_2.2.6 swprintf F +GLIBC_2.2.6 swscanf F +GLIBC_2.2.6 swtch F +GLIBC_2.2.6 swtch_pri F +GLIBC_2.2.6 symlink F +GLIBC_2.2.6 sync F +GLIBC_2.2.6 sys_sigabbrev D 0x108 +GLIBC_2.2.6 sys_siglist D 0x108 +GLIBC_2.2.6 syscall F +GLIBC_2.2.6 sysconf F +GLIBC_2.2.6 syslog F +GLIBC_2.2.6 system F +GLIBC_2.2.6 sysv_signal F +GLIBC_2.2.6 task2pid F +GLIBC_2.2.6 task_create F +GLIBC_2.2.6 task_set_special_port F +GLIBC_2.2.6 task_suspend F +GLIBC_2.2.6 task_terminate F +GLIBC_2.2.6 tcdrain F +GLIBC_2.2.6 tcflow F +GLIBC_2.2.6 tcflush F +GLIBC_2.2.6 tcgetattr F +GLIBC_2.2.6 tcgetpgrp F +GLIBC_2.2.6 tcgetsid F +GLIBC_2.2.6 tcsendbreak F +GLIBC_2.2.6 tcsetattr F +GLIBC_2.2.6 tcsetpgrp F +GLIBC_2.2.6 tdelete F +GLIBC_2.2.6 tdestroy F +GLIBC_2.2.6 telldir F +GLIBC_2.2.6 tempnam F +GLIBC_2.2.6 textdomain F +GLIBC_2.2.6 tfind F +GLIBC_2.2.6 thread_depress_abort F +GLIBC_2.2.6 thread_switch F +GLIBC_2.2.6 time F +GLIBC_2.2.6 timegm F +GLIBC_2.2.6 timelocal F +GLIBC_2.2.6 times F +GLIBC_2.2.6 timezone D 0x8 +GLIBC_2.2.6 tmpfile F +GLIBC_2.2.6 tmpfile64 F +GLIBC_2.2.6 tmpnam F +GLIBC_2.2.6 tmpnam_r F +GLIBC_2.2.6 toascii F +GLIBC_2.2.6 tolower F +GLIBC_2.2.6 toupper F +GLIBC_2.2.6 towctrans F +GLIBC_2.2.6 towlower F +GLIBC_2.2.6 towupper F +GLIBC_2.2.6 tr_break F +GLIBC_2.2.6 truncate F +GLIBC_2.2.6 truncate64 F +GLIBC_2.2.6 tsearch F +GLIBC_2.2.6 ttyname F +GLIBC_2.2.6 ttyname_r F +GLIBC_2.2.6 ttyslot F +GLIBC_2.2.6 twalk F +GLIBC_2.2.6 tzname D 0x10 +GLIBC_2.2.6 tzset F +GLIBC_2.2.6 ualarm F +GLIBC_2.2.6 ulckpwdf F +GLIBC_2.2.6 ulimit F +GLIBC_2.2.6 umask F +GLIBC_2.2.6 uname F +GLIBC_2.2.6 ungetc F +GLIBC_2.2.6 ungetwc F +GLIBC_2.2.6 unlink F +GLIBC_2.2.6 unlockpt F +GLIBC_2.2.6 unsetenv F +GLIBC_2.2.6 updwtmp F +GLIBC_2.2.6 updwtmpx F +GLIBC_2.2.6 user2netname F +GLIBC_2.2.6 usleep F +GLIBC_2.2.6 ustat F +GLIBC_2.2.6 utime F +GLIBC_2.2.6 utimes F +GLIBC_2.2.6 utmpname F +GLIBC_2.2.6 utmpxname F +GLIBC_2.2.6 valloc F +GLIBC_2.2.6 vasprintf F +GLIBC_2.2.6 vdprintf F +GLIBC_2.2.6 verr F +GLIBC_2.2.6 verrx F +GLIBC_2.2.6 versionsort F +GLIBC_2.2.6 versionsort64 F +GLIBC_2.2.6 vfork F +GLIBC_2.2.6 vfprintf F +GLIBC_2.2.6 vfscanf F +GLIBC_2.2.6 vfwprintf F +GLIBC_2.2.6 vfwscanf F +GLIBC_2.2.6 vhangup F +GLIBC_2.2.6 vlimit F +GLIBC_2.2.6 vm_allocate F +GLIBC_2.2.6 vm_deallocate F +GLIBC_2.2.6 vm_map F +GLIBC_2.2.6 vm_page_size D 0x8 +GLIBC_2.2.6 vpprintf F +GLIBC_2.2.6 vprintf F +GLIBC_2.2.6 vscanf F +GLIBC_2.2.6 vsnprintf F +GLIBC_2.2.6 vsprintf F +GLIBC_2.2.6 vsscanf F +GLIBC_2.2.6 vswprintf F +GLIBC_2.2.6 vswscanf F +GLIBC_2.2.6 vsyslog F +GLIBC_2.2.6 vtimes F +GLIBC_2.2.6 vwarn F +GLIBC_2.2.6 vwarnx F +GLIBC_2.2.6 vwprintf F +GLIBC_2.2.6 vwscanf F +GLIBC_2.2.6 wait F +GLIBC_2.2.6 wait3 F +GLIBC_2.2.6 wait4 F +GLIBC_2.2.6 waitid F +GLIBC_2.2.6 waitpid F +GLIBC_2.2.6 warn F +GLIBC_2.2.6 warnx F +GLIBC_2.2.6 wcpcpy F +GLIBC_2.2.6 wcpncpy F +GLIBC_2.2.6 wcrtomb F +GLIBC_2.2.6 wcscasecmp F +GLIBC_2.2.6 wcscat F +GLIBC_2.2.6 wcschr F +GLIBC_2.2.6 wcschrnul F +GLIBC_2.2.6 wcscmp F +GLIBC_2.2.6 wcscoll F +GLIBC_2.2.6 wcscpy F +GLIBC_2.2.6 wcscspn F +GLIBC_2.2.6 wcsdup F +GLIBC_2.2.6 wcsftime F +GLIBC_2.2.6 wcslen F +GLIBC_2.2.6 wcsncasecmp F +GLIBC_2.2.6 wcsncat F +GLIBC_2.2.6 wcsncmp F +GLIBC_2.2.6 wcsncpy F +GLIBC_2.2.6 wcsnlen F +GLIBC_2.2.6 wcsnrtombs F +GLIBC_2.2.6 wcspbrk F +GLIBC_2.2.6 wcsrchr F +GLIBC_2.2.6 wcsrtombs F +GLIBC_2.2.6 wcsspn F +GLIBC_2.2.6 wcsstr F +GLIBC_2.2.6 wcstod F +GLIBC_2.2.6 wcstof F +GLIBC_2.2.6 wcstoimax F +GLIBC_2.2.6 wcstok F +GLIBC_2.2.6 wcstol F +GLIBC_2.2.6 wcstold F +GLIBC_2.2.6 wcstoll F +GLIBC_2.2.6 wcstombs F +GLIBC_2.2.6 wcstoq F +GLIBC_2.2.6 wcstoul F +GLIBC_2.2.6 wcstoull F +GLIBC_2.2.6 wcstoumax F +GLIBC_2.2.6 wcstouq F +GLIBC_2.2.6 wcswcs F +GLIBC_2.2.6 wcswidth F +GLIBC_2.2.6 wcsxfrm F +GLIBC_2.2.6 wctob F +GLIBC_2.2.6 wctomb F +GLIBC_2.2.6 wctrans F +GLIBC_2.2.6 wctype F +GLIBC_2.2.6 wcwidth F +GLIBC_2.2.6 wmemchr F +GLIBC_2.2.6 wmemcmp F +GLIBC_2.2.6 wmemcpy F +GLIBC_2.2.6 wmemmove F +GLIBC_2.2.6 wmempcpy F +GLIBC_2.2.6 wmemset F +GLIBC_2.2.6 wordexp F +GLIBC_2.2.6 wordfree F +GLIBC_2.2.6 wprintf F +GLIBC_2.2.6 write F +GLIBC_2.2.6 writev F +GLIBC_2.2.6 wscanf F +GLIBC_2.2.6 xdecrypt F +GLIBC_2.2.6 xdr_accepted_reply F +GLIBC_2.2.6 xdr_array F +GLIBC_2.2.6 xdr_authdes_cred F +GLIBC_2.2.6 xdr_authdes_verf F +GLIBC_2.2.6 xdr_authunix_parms F +GLIBC_2.2.6 xdr_bool F +GLIBC_2.2.6 xdr_bytes F +GLIBC_2.2.6 xdr_callhdr F +GLIBC_2.2.6 xdr_callmsg F +GLIBC_2.2.6 xdr_char F +GLIBC_2.2.6 xdr_cryptkeyarg F +GLIBC_2.2.6 xdr_cryptkeyarg2 F +GLIBC_2.2.6 xdr_cryptkeyres F +GLIBC_2.2.6 xdr_des_block F +GLIBC_2.2.6 xdr_double F +GLIBC_2.2.6 xdr_enum F +GLIBC_2.2.6 xdr_float F +GLIBC_2.2.6 xdr_free F +GLIBC_2.2.6 xdr_getcredres F +GLIBC_2.2.6 xdr_hyper F +GLIBC_2.2.6 xdr_int F +GLIBC_2.2.6 xdr_int16_t F +GLIBC_2.2.6 xdr_int32_t F +GLIBC_2.2.6 xdr_int64_t F +GLIBC_2.2.6 xdr_int8_t F +GLIBC_2.2.6 xdr_key_netstarg F +GLIBC_2.2.6 xdr_key_netstres F +GLIBC_2.2.6 xdr_keybuf F +GLIBC_2.2.6 xdr_keystatus F +GLIBC_2.2.6 xdr_long F +GLIBC_2.2.6 xdr_longlong_t F +GLIBC_2.2.6 xdr_netnamestr F +GLIBC_2.2.6 xdr_netobj F +GLIBC_2.2.6 xdr_opaque F +GLIBC_2.2.6 xdr_opaque_auth F +GLIBC_2.2.6 xdr_pmap F +GLIBC_2.2.6 xdr_pmaplist F +GLIBC_2.2.6 xdr_pointer F +GLIBC_2.2.6 xdr_reference F +GLIBC_2.2.6 xdr_rejected_reply F +GLIBC_2.2.6 xdr_replymsg F +GLIBC_2.2.6 xdr_rmtcall_args F +GLIBC_2.2.6 xdr_rmtcallres F +GLIBC_2.2.6 xdr_short F +GLIBC_2.2.6 xdr_sizeof F +GLIBC_2.2.6 xdr_string F +GLIBC_2.2.6 xdr_u_char F +GLIBC_2.2.6 xdr_u_hyper F +GLIBC_2.2.6 xdr_u_int F +GLIBC_2.2.6 xdr_u_long F +GLIBC_2.2.6 xdr_u_longlong_t F +GLIBC_2.2.6 xdr_u_short F +GLIBC_2.2.6 xdr_uint16_t F +GLIBC_2.2.6 xdr_uint32_t F +GLIBC_2.2.6 xdr_uint64_t F +GLIBC_2.2.6 xdr_uint8_t F +GLIBC_2.2.6 xdr_union F +GLIBC_2.2.6 xdr_unixcred F +GLIBC_2.2.6 xdr_vector F +GLIBC_2.2.6 xdr_void F +GLIBC_2.2.6 xdr_wrapstring F +GLIBC_2.2.6 xdrmem_create F +GLIBC_2.2.6 xdrrec_create F +GLIBC_2.2.6 xdrrec_endofrecord F +GLIBC_2.2.6 xdrrec_eof F +GLIBC_2.2.6 xdrrec_skiprecord F +GLIBC_2.2.6 xdrstdio_create F +GLIBC_2.2.6 xencrypt F +GLIBC_2.2.6 xprt_register F +GLIBC_2.2.6 xprt_unregister F +GLIBC_2.21 __mach_host_self_ D 0x4 +GLIBC_2.21 __pthread_get_cleanup_stack F +GLIBC_2.21 pthread_attr_destroy F +GLIBC_2.21 pthread_attr_getdetachstate F +GLIBC_2.21 pthread_attr_getinheritsched F +GLIBC_2.21 pthread_attr_getschedparam F +GLIBC_2.21 pthread_attr_getschedpolicy F +GLIBC_2.21 pthread_attr_getscope F +GLIBC_2.21 pthread_attr_init F +GLIBC_2.21 pthread_attr_setdetachstate F +GLIBC_2.21 pthread_attr_setinheritsched F +GLIBC_2.21 pthread_attr_setschedparam F +GLIBC_2.21 pthread_attr_setschedpolicy F +GLIBC_2.21 pthread_attr_setscope F +GLIBC_2.21 pthread_cond_broadcast F +GLIBC_2.21 pthread_cond_destroy F +GLIBC_2.21 pthread_cond_init F +GLIBC_2.21 pthread_cond_signal F +GLIBC_2.21 pthread_cond_timedwait F +GLIBC_2.21 pthread_cond_wait F +GLIBC_2.21 pthread_condattr_destroy F +GLIBC_2.21 pthread_condattr_init F +GLIBC_2.21 pthread_equal F +GLIBC_2.21 pthread_exit F +GLIBC_2.21 pthread_getschedparam F +GLIBC_2.21 pthread_mutex_destroy F +GLIBC_2.21 pthread_mutex_init F +GLIBC_2.21 pthread_mutex_lock F +GLIBC_2.21 pthread_mutex_unlock F +GLIBC_2.21 pthread_self F +GLIBC_2.21 pthread_setcancelstate F +GLIBC_2.21 pthread_setcanceltype F +GLIBC_2.21 pthread_setschedparam F +GLIBC_2.22 __register_atfork F +GLIBC_2.22 fmemopen F +GLIBC_2.23 fts64_children F +GLIBC_2.23 fts64_close F +GLIBC_2.23 fts64_open F +GLIBC_2.23 fts64_read F +GLIBC_2.23 fts64_set F +GLIBC_2.24 quick_exit F +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 gnu_dev_major F +GLIBC_2.25 gnu_dev_makedev F +GLIBC_2.25 gnu_dev_minor F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 __isnanf128 F +GLIBC_2.26 __strtof128_internal F +GLIBC_2.26 __wcstof128_internal F +GLIBC_2.26 _hurd_exec_paths F +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.26 strfromf128 F +GLIBC_2.26 strtof128 F +GLIBC_2.26 strtof128_l F +GLIBC_2.26 wcstof128 F +GLIBC_2.26 wcstof128_l F +GLIBC_2.27 __hurd_dfail F +GLIBC_2.27 __hurd_sockfail F +GLIBC_2.27 _hurd_fd_error F +GLIBC_2.27 _hurd_fd_error_signal F +GLIBC_2.27 _hurd_port_locked_set F +GLIBC_2.27 _hurd_userlink_clear F +GLIBC_2.27 _hurd_userlink_link F +GLIBC_2.27 _hurd_userlink_unlink F +GLIBC_2.27 copy_file_range F +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F +GLIBC_2.27 strfromf32 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F +GLIBC_2.29 _hurd_port_move F +GLIBC_2.29 posix_spawn_file_actions_addchdir_np F +GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F +GLIBC_2.3 __ctype_b_loc F +GLIBC_2.3 __ctype_tolower_loc F +GLIBC_2.3 __ctype_toupper_loc F +GLIBC_2.3 __isctype F +GLIBC_2.3 __strftime_l F +GLIBC_2.3 __uselocale F +GLIBC_2.3 __wcsftime_l F +GLIBC_2.3 duplocale F +GLIBC_2.3 fgetxattr F +GLIBC_2.3 flistxattr F +GLIBC_2.3 freeifaddrs F +GLIBC_2.3 freelocale F +GLIBC_2.3 fremovexattr F +GLIBC_2.3 fsetxattr F +GLIBC_2.3 futimes F +GLIBC_2.3 getifaddrs F +GLIBC_2.3 getxattr F +GLIBC_2.3 isalnum_l F +GLIBC_2.3 isalpha_l F +GLIBC_2.3 isblank_l F +GLIBC_2.3 iscntrl_l F +GLIBC_2.3 isctype F +GLIBC_2.3 isdigit_l F +GLIBC_2.3 isgraph_l F +GLIBC_2.3 islower_l F +GLIBC_2.3 isprint_l F +GLIBC_2.3 ispunct_l F +GLIBC_2.3 isspace_l F +GLIBC_2.3 isupper_l F +GLIBC_2.3 iswalnum_l F +GLIBC_2.3 iswalpha_l F +GLIBC_2.3 iswblank_l F +GLIBC_2.3 iswcntrl_l F +GLIBC_2.3 iswctype_l F +GLIBC_2.3 iswdigit_l F +GLIBC_2.3 iswgraph_l F +GLIBC_2.3 iswlower_l F +GLIBC_2.3 iswprint_l F +GLIBC_2.3 iswpunct_l F +GLIBC_2.3 iswspace_l F +GLIBC_2.3 iswupper_l F +GLIBC_2.3 iswxdigit_l F +GLIBC_2.3 isxdigit_l F +GLIBC_2.3 lgetxattr F +GLIBC_2.3 listxattr F +GLIBC_2.3 llistxattr F +GLIBC_2.3 lremovexattr F +GLIBC_2.3 lsetxattr F +GLIBC_2.3 lutimes F +GLIBC_2.3 newlocale F +GLIBC_2.3 nl_langinfo_l F +GLIBC_2.3 realpath F +GLIBC_2.3 removexattr F +GLIBC_2.3 sendfile64 F +GLIBC_2.3 setxattr F +GLIBC_2.3 strcasecmp_l F +GLIBC_2.3 strcoll_l F +GLIBC_2.3 strfmon_l F +GLIBC_2.3 strftime_l F +GLIBC_2.3 strncasecmp_l F +GLIBC_2.3 strtod_l F +GLIBC_2.3 strtof_l F +GLIBC_2.3 strtol_l F +GLIBC_2.3 strtold_l F +GLIBC_2.3 strtoul_l F +GLIBC_2.3 strxfrm_l F +GLIBC_2.3 tolower_l F +GLIBC_2.3 toupper_l F +GLIBC_2.3 towctrans_l F +GLIBC_2.3 towlower_l F +GLIBC_2.3 towupper_l F +GLIBC_2.3 uselocale F +GLIBC_2.3 wcscasecmp_l F +GLIBC_2.3 wcscoll_l F +GLIBC_2.3 wcsftime_l F +GLIBC_2.3 wcsncasecmp_l F +GLIBC_2.3 wcstod_l F +GLIBC_2.3 wcstof_l F +GLIBC_2.3 wcstol_l F +GLIBC_2.3 wcstold_l F +GLIBC_2.3 wcstoll_l F +GLIBC_2.3 wcstoul_l F +GLIBC_2.3 wcstoull_l F +GLIBC_2.3 wcsxfrm_l F +GLIBC_2.3 wctrans_l F +GLIBC_2.3 wctype_l F +GLIBC_2.3.2 getresgid F +GLIBC_2.3.2 getresuid F +GLIBC_2.3.2 lchmod F +GLIBC_2.3.2 setresgid F +GLIBC_2.3.2 setresuid F +GLIBC_2.3.2 strptime_l F +GLIBC_2.3.3 dladdr1 F +GLIBC_2.3.3 dlinfo F +GLIBC_2.3.3 inet6_option_alloc F +GLIBC_2.3.3 inet6_option_append F +GLIBC_2.3.3 inet6_option_find F +GLIBC_2.3.3 inet6_option_init F +GLIBC_2.3.3 inet6_option_next F +GLIBC_2.3.3 inet6_option_space F +GLIBC_2.3.3 nftw F +GLIBC_2.3.3 nftw64 F +GLIBC_2.3.3 remap_file_pages F +GLIBC_2.3.3 sched_getaffinity F +GLIBC_2.3.3 sched_setaffinity F +GLIBC_2.3.3 semtimedop F +GLIBC_2.3.3 strtoll_l F +GLIBC_2.3.3 strtoull_l F +GLIBC_2.3.4 __chk_fail F +GLIBC_2.3.4 __fprintf_chk F +GLIBC_2.3.4 __gets_chk F +GLIBC_2.3.4 __memcpy_chk F +GLIBC_2.3.4 __memmove_chk F +GLIBC_2.3.4 __mempcpy_chk F +GLIBC_2.3.4 __memset_chk F +GLIBC_2.3.4 __printf_chk F +GLIBC_2.3.4 __snprintf_chk F +GLIBC_2.3.4 __sprintf_chk F +GLIBC_2.3.4 __stpcpy_chk F +GLIBC_2.3.4 __strcat_chk F +GLIBC_2.3.4 __strcpy_chk F +GLIBC_2.3.4 __strncat_chk F +GLIBC_2.3.4 __strncpy_chk F +GLIBC_2.3.4 __vfprintf_chk F +GLIBC_2.3.4 __vprintf_chk F +GLIBC_2.3.4 __vsnprintf_chk F +GLIBC_2.3.4 __vsprintf_chk F +GLIBC_2.3.4 __xpg_strerror_r F +GLIBC_2.3.4 dlmopen F +GLIBC_2.3.4 getipv4sourcefilter F +GLIBC_2.3.4 getsourcefilter F +GLIBC_2.3.4 regexec F +GLIBC_2.3.4 setipv4sourcefilter F +GLIBC_2.3.4 setsourcefilter F +GLIBC_2.3.4 xdr_quad_t F +GLIBC_2.3.4 xdr_u_quad_t F +GLIBC_2.30 twalk_r F +GLIBC_2.32 __libc_single_threaded D 0x1 +GLIBC_2.32 mach_print F +GLIBC_2.32 mremap F +GLIBC_2.32 sigabbrev_np F +GLIBC_2.32 sigdescr_np F +GLIBC_2.32 strerrordesc_np F +GLIBC_2.32 strerrorname_np F +GLIBC_2.32 thrd_current F +GLIBC_2.32 thrd_equal F +GLIBC_2.32 thrd_sleep F +GLIBC_2.32 thrd_yield F +GLIBC_2.33 __x86_get_cpuid_feature_leaf F +GLIBC_2.33 fstat F +GLIBC_2.33 fstat64 F +GLIBC_2.33 fstatat F +GLIBC_2.33 fstatat64 F +GLIBC_2.33 lstat F +GLIBC_2.33 lstat64 F +GLIBC_2.33 mallinfo2 F +GLIBC_2.33 mknod F +GLIBC_2.33 mknodat F +GLIBC_2.33 stat F +GLIBC_2.33 stat64 F +GLIBC_2.34 _Fork F +GLIBC_2.34 __isnanf128 F +GLIBC_2.34 __libc_start_main F +GLIBC_2.34 _hurd_libc_proc_init F +GLIBC_2.34 closefrom F +GLIBC_2.34 dladdr F +GLIBC_2.34 dladdr1 F +GLIBC_2.34 dlclose F +GLIBC_2.34 dlerror F +GLIBC_2.34 dlinfo F +GLIBC_2.34 dlmopen F +GLIBC_2.34 dlopen F +GLIBC_2.34 dlsym F +GLIBC_2.34 dlvsym F +GLIBC_2.34 dn_comp F +GLIBC_2.34 dn_expand F +GLIBC_2.34 dn_skipname F +GLIBC_2.34 execveat F +GLIBC_2.34 forkpty F +GLIBC_2.34 login F +GLIBC_2.34 login_tty F +GLIBC_2.34 logout F +GLIBC_2.34 logwtmp F +GLIBC_2.34 ns_name_compress F +GLIBC_2.34 ns_name_ntop F +GLIBC_2.34 ns_name_pack F +GLIBC_2.34 ns_name_pton F +GLIBC_2.34 ns_name_skip F +GLIBC_2.34 ns_name_uncompress F +GLIBC_2.34 ns_name_unpack F +GLIBC_2.34 openpty F +GLIBC_2.34 posix_spawn_file_actions_addclosefrom_np F +GLIBC_2.34 res_dnok F +GLIBC_2.34 res_hnok F +GLIBC_2.34 res_mailok F +GLIBC_2.34 res_mkquery F +GLIBC_2.34 res_nmkquery F +GLIBC_2.34 res_nquery F +GLIBC_2.34 res_nquerydomain F +GLIBC_2.34 res_nsearch F +GLIBC_2.34 res_nsend F +GLIBC_2.34 res_ownok F +GLIBC_2.34 res_query F +GLIBC_2.34 res_querydomain F +GLIBC_2.34 res_search F +GLIBC_2.34 res_send F +GLIBC_2.34 shm_open F +GLIBC_2.34 shm_unlink F +GLIBC_2.34 timespec_getres F +GLIBC_2.35 __memcmpeq F +GLIBC_2.35 _dl_find_object F +GLIBC_2.35 close_range F +GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F +GLIBC_2.36 arc4random F +GLIBC_2.36 arc4random_buf F +GLIBC_2.36 arc4random_uniform F +GLIBC_2.36 c8rtomb F +GLIBC_2.36 mbrtoc8 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.4 __confstr_chk F +GLIBC_2.4 __fgets_chk F +GLIBC_2.4 __fgets_unlocked_chk F +GLIBC_2.4 __fgetws_chk F +GLIBC_2.4 __fgetws_unlocked_chk F +GLIBC_2.4 __fwprintf_chk F +GLIBC_2.4 __fxstatat F +GLIBC_2.4 __fxstatat64 F +GLIBC_2.4 __getcwd_chk F +GLIBC_2.4 __getdomainname_chk F +GLIBC_2.4 __getgroups_chk F +GLIBC_2.4 __gethostname_chk F +GLIBC_2.4 __getlogin_r_chk F +GLIBC_2.4 __getwd_chk F +GLIBC_2.4 __mbsnrtowcs_chk F +GLIBC_2.4 __mbsrtowcs_chk F +GLIBC_2.4 __mbstowcs_chk F +GLIBC_2.4 __pread64_chk F +GLIBC_2.4 __pread_chk F +GLIBC_2.4 __ptsname_r_chk F +GLIBC_2.4 __read_chk F +GLIBC_2.4 __readlink_chk F +GLIBC_2.4 __realpath_chk F +GLIBC_2.4 __recv_chk F +GLIBC_2.4 __recvfrom_chk F +GLIBC_2.4 __stack_chk_fail F +GLIBC_2.4 __stpncpy_chk F +GLIBC_2.4 __swprintf_chk F +GLIBC_2.4 __syslog_chk F +GLIBC_2.4 __ttyname_r_chk F +GLIBC_2.4 __vfwprintf_chk F +GLIBC_2.4 __vswprintf_chk F +GLIBC_2.4 __vsyslog_chk F +GLIBC_2.4 __vwprintf_chk F +GLIBC_2.4 __wcpcpy_chk F +GLIBC_2.4 __wcpncpy_chk F +GLIBC_2.4 __wcrtomb_chk F +GLIBC_2.4 __wcscat_chk F +GLIBC_2.4 __wcscpy_chk F +GLIBC_2.4 __wcsncat_chk F +GLIBC_2.4 __wcsncpy_chk F +GLIBC_2.4 __wcsnrtombs_chk F +GLIBC_2.4 __wcsrtombs_chk F +GLIBC_2.4 __wcstombs_chk F +GLIBC_2.4 __wctomb_chk F +GLIBC_2.4 __wmemcpy_chk F +GLIBC_2.4 __wmemmove_chk F +GLIBC_2.4 __wmempcpy_chk F +GLIBC_2.4 __wmemset_chk F +GLIBC_2.4 __wprintf_chk F +GLIBC_2.4 __xmknodat F +GLIBC_2.4 eaccess F +GLIBC_2.4 faccessat F +GLIBC_2.4 fchmodat F +GLIBC_2.4 fchownat F +GLIBC_2.4 fdopendir F +GLIBC_2.4 futimesat F +GLIBC_2.4 linkat F +GLIBC_2.4 mkdirat F +GLIBC_2.4 mkfifoat F +GLIBC_2.4 open_wmemstream F +GLIBC_2.4 openat F +GLIBC_2.4 openat64 F +GLIBC_2.4 ppoll F +GLIBC_2.4 readlinkat F +GLIBC_2.4 renameat F +GLIBC_2.4 symlinkat F +GLIBC_2.4 unlinkat F +GLIBC_2.5 __readlinkat_chk F +GLIBC_2.5 inet6_opt_append F +GLIBC_2.5 inet6_opt_find F +GLIBC_2.5 inet6_opt_finish F +GLIBC_2.5 inet6_opt_get_val F +GLIBC_2.5 inet6_opt_init F +GLIBC_2.5 inet6_opt_next F +GLIBC_2.5 inet6_opt_set_val F +GLIBC_2.5 inet6_rth_add F +GLIBC_2.5 inet6_rth_getaddr F +GLIBC_2.5 inet6_rth_init F +GLIBC_2.5 inet6_rth_reverse F +GLIBC_2.5 inet6_rth_segments F +GLIBC_2.5 inet6_rth_space F +GLIBC_2.6 __sched_cpucount F +GLIBC_2.6 futimens F +GLIBC_2.6 strerror_l F +GLIBC_2.6 utimensat F +GLIBC_2.7 __fread_chk F +GLIBC_2.7 __fread_unlocked_chk F +GLIBC_2.7 __isoc99_fscanf F +GLIBC_2.7 __isoc99_fwscanf F +GLIBC_2.7 __isoc99_scanf F +GLIBC_2.7 __isoc99_sscanf F +GLIBC_2.7 __isoc99_swscanf F +GLIBC_2.7 __isoc99_vfscanf F +GLIBC_2.7 __isoc99_vfwscanf F +GLIBC_2.7 __isoc99_vscanf F +GLIBC_2.7 __isoc99_vsscanf F +GLIBC_2.7 __isoc99_vswscanf F +GLIBC_2.7 __isoc99_vwscanf F +GLIBC_2.7 __isoc99_wscanf F +GLIBC_2.7 __open64_2 F +GLIBC_2.7 __open_2 F +GLIBC_2.7 __openat64_2 F +GLIBC_2.7 __openat_2 F +GLIBC_2.7 __sched_cpualloc F +GLIBC_2.7 __sched_cpufree F +GLIBC_2.7 mkostemp F +GLIBC_2.7 mkostemp64 F +GLIBC_2.8 __asprintf_chk F +GLIBC_2.8 __dprintf_chk F +GLIBC_2.8 __obstack_printf_chk F +GLIBC_2.8 __obstack_vprintf_chk F +GLIBC_2.8 __vasprintf_chk F +GLIBC_2.8 __vdprintf_chk F +GLIBC_2.8 qsort_r F +GLIBC_2.9 dup3 F +GLIBC_2.9 ns_name_compress F +GLIBC_2.9 ns_name_ntop F +GLIBC_2.9 ns_name_pack F +GLIBC_2.9 ns_name_pton F +GLIBC_2.9 ns_name_skip F +GLIBC_2.9 ns_name_uncompress F +GLIBC_2.9 ns_name_unpack F +GLIBC_2.9 pipe2 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..2dc02928 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libc_malloc_debug.abilist @@ -0,0 +1,28 @@ +GLIBC_2.10 malloc_info F +GLIBC_2.16 aligned_alloc F +GLIBC_2.2.6 __free_hook D 0x8 +GLIBC_2.2.6 __malloc_hook D 0x8 +GLIBC_2.2.6 __memalign_hook D 0x8 +GLIBC_2.2.6 __realloc_hook D 0x8 +GLIBC_2.2.6 calloc F +GLIBC_2.2.6 free F +GLIBC_2.2.6 mallinfo F +GLIBC_2.2.6 malloc F +GLIBC_2.2.6 malloc_get_state F +GLIBC_2.2.6 malloc_set_state F +GLIBC_2.2.6 malloc_stats F +GLIBC_2.2.6 malloc_trim F +GLIBC_2.2.6 malloc_usable_size F +GLIBC_2.2.6 mallopt F +GLIBC_2.2.6 mcheck F +GLIBC_2.2.6 mcheck_check_all F +GLIBC_2.2.6 mcheck_pedantic F +GLIBC_2.2.6 memalign F +GLIBC_2.2.6 mprobe F +GLIBC_2.2.6 mtrace F +GLIBC_2.2.6 muntrace F +GLIBC_2.2.6 posix_memalign F +GLIBC_2.2.6 pvalloc F +GLIBC_2.2.6 realloc F +GLIBC_2.2.6 valloc F +GLIBC_2.33 mallinfo2 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..5cd9b78d --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libcrypt.abilist @@ -0,0 +1,7 @@ +GLIBC_2.2.6 crypt F +GLIBC_2.2.6 crypt_r F +GLIBC_2.2.6 encrypt F +GLIBC_2.2.6 encrypt_r F +GLIBC_2.2.6 fcrypt F +GLIBC_2.2.6 setkey F +GLIBC_2.2.6 setkey_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..59397ee9 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libdl.abilist @@ -0,0 +1,3 @@ +GLIBC_2.2.6 __libdl_version_placeholder F +GLIBC_2.3.3 __libdl_version_placeholder F +GLIBC_2.3.4 __libdl_version_placeholder F diff --git a/sysdeps/mach/hurd/x86_64/libhurduser.abilist b/sysdeps/mach/hurd/x86_64/libhurduser.abilist new file mode 100644 index 00000000..5c6efbf8 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libhurduser.abilist @@ -0,0 +1,754 @@ +Base _S_msg_server F +Base _S_msg_server_routines D 0xc8 +Base __auth_getids F +Base __auth_makeauth F +Base __auth_server_authenticate F +Base __auth_user_authenticate F +Base __crash_dump_task F +Base __dir_link F +Base __dir_lookup F +Base __dir_mkdir F +Base __dir_mkfile F +Base __dir_notice_changes F +Base __dir_readdir F +Base __dir_rename F +Base __dir_rmdir F +Base __dir_unlink F +Base __exec_exec F +Base __exec_exec_paths F +Base __exec_init F +Base __exec_setexecdata F +Base __exec_startup_get_info F +Base __file_chauthor F +Base __file_check_access F +Base __file_chflags F +Base __file_chmod F +Base __file_chown F +Base __file_exec F +Base __file_exec_paths F +Base __file_get_fs_options F +Base __file_get_storage_info F +Base __file_get_translator F +Base __file_get_translator_cntl F +Base __file_getcontrol F +Base __file_getfh F +Base __file_getlinknode F +Base __file_lock F +Base __file_lock_stat F +Base __file_notice_changes F +Base __file_record_lock F +Base __file_reparent F +Base __file_set_size F +Base __file_set_translator F +Base __file_statfs F +Base __file_sync F +Base __file_syncfs F +Base __file_utimens F +Base __file_utimes F +Base __fsys_forward F +Base __fsys_get_children F +Base __fsys_get_options F +Base __fsys_get_source F +Base __fsys_getfile F +Base __fsys_getpriv F +Base __fsys_getroot F +Base __fsys_goaway F +Base __fsys_init F +Base __fsys_set_options F +Base __fsys_startup F +Base __fsys_syncfs F +Base __gsync_wait_intr F +Base __ifsock_getsockaddr F +Base __interrupt_operation F +Base __io_async F +Base __io_async_reply F +Base __io_async_request F +Base __io_clear_some_openmodes F +Base __io_clear_some_openmodes_reply F +Base __io_clear_some_openmodes_request F +Base __io_duplicate F +Base __io_duplicate_reply F +Base __io_duplicate_request F +Base __io_eofnotify F +Base __io_eofnotify_reply F +Base __io_eofnotify_request F +Base __io_get_conch F +Base __io_get_conch_reply F +Base __io_get_conch_request F +Base __io_get_icky_async_id F +Base __io_get_icky_async_id_reply F +Base __io_get_icky_async_id_request F +Base __io_get_openmodes F +Base __io_get_openmodes_reply F +Base __io_get_openmodes_request F +Base __io_get_owner F +Base __io_get_owner_reply F +Base __io_get_owner_request F +Base __io_identity F +Base __io_identity_reply F +Base __io_identity_request F +Base __io_map F +Base __io_map_cntl F +Base __io_map_cntl_reply F +Base __io_map_cntl_request F +Base __io_map_reply F +Base __io_map_request F +Base __io_mod_owner F +Base __io_mod_owner_reply F +Base __io_mod_owner_request F +Base __io_pathconf F +Base __io_pathconf_reply F +Base __io_pathconf_request F +Base __io_postnotify F +Base __io_postnotify_reply F +Base __io_postnotify_request F +Base __io_prenotify F +Base __io_prenotify_reply F +Base __io_prenotify_request F +Base __io_read F +Base __io_read_reply F +Base __io_read_request F +Base __io_readable F +Base __io_readable_reply F +Base __io_readable_request F +Base __io_readnotify F +Base __io_readnotify_reply F +Base __io_readnotify_request F +Base __io_readsleep F +Base __io_readsleep_reply F +Base __io_readsleep_request F +Base __io_reauthenticate F +Base __io_release_conch F +Base __io_release_conch_reply F +Base __io_release_conch_request F +Base __io_restrict_auth F +Base __io_restrict_auth_reply F +Base __io_restrict_auth_request F +Base __io_revoke F +Base __io_revoke_reply F +Base __io_revoke_request F +Base __io_seek F +Base __io_seek_reply F +Base __io_seek_request F +Base __io_select F +Base __io_select_reply F +Base __io_select_request F +Base __io_select_timeout F +Base __io_select_timeout_reply F +Base __io_select_timeout_request F +Base __io_server_version F +Base __io_server_version_reply F +Base __io_server_version_request F +Base __io_set_all_openmodes F +Base __io_set_all_openmodes_reply F +Base __io_set_all_openmodes_request F +Base __io_set_some_openmodes F +Base __io_set_some_openmodes_reply F +Base __io_set_some_openmodes_request F +Base __io_sigio F +Base __io_sigio_reply F +Base __io_sigio_request F +Base __io_stat F +Base __io_stat_reply F +Base __io_stat_request F +Base __io_write F +Base __io_write_reply F +Base __io_write_request F +Base __login_get_idle_time F +Base __login_get_input_devices F +Base __login_get_location F +Base __login_get_login_collection F +Base __login_message_user F +Base __msg_add_auth F +Base __msg_del_auth F +Base __msg_describe_ports F +Base __msg_get_dtable F +Base __msg_get_env_variable F +Base __msg_get_environment F +Base __msg_get_fd F +Base __msg_get_init_int F +Base __msg_get_init_ints F +Base __msg_get_init_port F +Base __msg_get_init_ports F +Base __msg_proc_newids F +Base __msg_report_wait F +Base __msg_set_dtable F +Base __msg_set_env_variable F +Base __msg_set_environment F +Base __msg_set_fd F +Base __msg_set_init_int F +Base __msg_set_init_ints F +Base __msg_set_init_port F +Base __msg_set_init_ports F +Base __msg_sig_post F +Base __msg_sig_post_reply F +Base __msg_sig_post_request F +Base __msg_sig_post_untraced F +Base __msg_sig_post_untraced_reply F +Base __msg_sig_post_untraced_request F +Base __password_check_group F +Base __password_check_user F +Base __pci_conf_read F +Base __pci_conf_write F +Base __pci_get_dev_regions F +Base __pci_get_dev_rom F +Base __pci_get_ndevs F +Base __pfinet_getroutes F +Base __pfinet_siocgifconf F +Base __proc_child F +Base __proc_child_request F +Base __proc_dostop F +Base __proc_dostop_request F +Base __proc_execdata_notify F +Base __proc_execdata_notify_request F +Base __proc_get_arg_locations F +Base __proc_get_arg_locations_request F +Base __proc_get_code F +Base __proc_get_code_request F +Base __proc_get_entry F +Base __proc_get_exe F +Base __proc_get_tty F +Base __proc_get_tty_request F +Base __proc_getallpids F +Base __proc_getallpids_request F +Base __proc_getexecdata F +Base __proc_getexecdata_request F +Base __proc_getlogin F +Base __proc_getlogin_request F +Base __proc_getloginid F +Base __proc_getloginid_request F +Base __proc_getloginpids F +Base __proc_getloginpids_request F +Base __proc_getmsgport F +Base __proc_getmsgport_request F +Base __proc_getnports F +Base __proc_getnports_request F +Base __proc_getpgrp F +Base __proc_getpgrp_request F +Base __proc_getpgrppids F +Base __proc_getpgrppids_request F +Base __proc_getpids F +Base __proc_getpids_request F +Base __proc_getprivports F +Base __proc_getprivports_request F +Base __proc_getprocargs F +Base __proc_getprocargs_request F +Base __proc_getprocenv F +Base __proc_getprocenv_request F +Base __proc_getprocinfo F +Base __proc_getprocinfo_request F +Base __proc_getsessionpgids F +Base __proc_getsessionpgids_request F +Base __proc_getsessionpids F +Base __proc_getsessionpids_request F +Base __proc_getsid F +Base __proc_getsid_request F +Base __proc_getsidport F +Base __proc_getsidport_request F +Base __proc_handle_exceptions F +Base __proc_handle_exceptions_request F +Base __proc_is_important F +Base __proc_is_important_request F +Base __proc_make_login_coll F +Base __proc_make_login_coll_request F +Base __proc_make_task_namespace F +Base __proc_make_task_namespace_request F +Base __proc_mark_cont F +Base __proc_mark_cont_request F +Base __proc_mark_exec F +Base __proc_mark_exec_request F +Base __proc_mark_exit F +Base __proc_mark_exit_request F +Base __proc_mark_important F +Base __proc_mark_important_request F +Base __proc_mark_stop F +Base __proc_mark_stop_request F +Base __proc_mark_traced F +Base __proc_mark_traced_request F +Base __proc_mod_stopchild F +Base __proc_mod_stopchild_request F +Base __proc_pid2proc F +Base __proc_pid2proc_request F +Base __proc_pid2task F +Base __proc_pid2task_request F +Base __proc_proc2task F +Base __proc_proc2task_request F +Base __proc_reassign F +Base __proc_reassign_request F +Base __proc_reauthenticate F +Base __proc_reauthenticate_complete F +Base __proc_reauthenticate_reassign F +Base __proc_reauthenticate_request F +Base __proc_register_version F +Base __proc_register_version_request F +Base __proc_set_arg_locations F +Base __proc_set_arg_locations_request F +Base __proc_set_code F +Base __proc_set_code_request F +Base __proc_set_entry F +Base __proc_set_exe F +Base __proc_set_init_task F +Base __proc_set_init_task_request F +Base __proc_setexecdata F +Base __proc_setexecdata_request F +Base __proc_setlogin F +Base __proc_setlogin_request F +Base __proc_setmsgport F +Base __proc_setmsgport_request F +Base __proc_setowner F +Base __proc_setowner_request F +Base __proc_setpgrp F +Base __proc_setpgrp_request F +Base __proc_setsid F +Base __proc_setsid_request F +Base __proc_task2pid F +Base __proc_task2pid_request F +Base __proc_task2proc F +Base __proc_task2proc_request F +Base __proc_uname F +Base __proc_uname_request F +Base __proc_wait F +Base __proc_wait_request F +Base __proc_waitid F +Base __socket_accept F +Base __socket_bind F +Base __socket_connect F +Base __socket_connect2 F +Base __socket_create F +Base __socket_create_address F +Base __socket_fabricate_address F +Base __socket_getopt F +Base __socket_listen F +Base __socket_name F +Base __socket_peername F +Base __socket_recv F +Base __socket_send F +Base __socket_setopt F +Base __socket_shutdown F +Base __socket_whatis_address F +Base __startup_authinit F +Base __startup_essential_task F +Base __startup_procinit F +Base __startup_reboot F +Base __startup_request_notification F +Base __term_get_bottom_type F +Base __term_get_nodename F +Base __term_get_peername F +Base __term_getctty F +Base __term_on_hurddev F +Base __term_on_machdev F +Base __term_on_pty F +Base __term_open_ctty F +Base __term_set_filenode F +Base __term_set_nodename F +Base __termctty_open_terminal F +Base __tioctl_tioccbrk F +Base __tioctl_tioccdtr F +Base __tioctl_tiocdrain F +Base __tioctl_tiocexcl F +Base __tioctl_tiocext F +Base __tioctl_tiocflush F +Base __tioctl_tiocgeta F +Base __tioctl_tiocgetd F +Base __tioctl_tiocgpgrp F +Base __tioctl_tiocgwinsz F +Base __tioctl_tiocmbic F +Base __tioctl_tiocmbis F +Base __tioctl_tiocmget F +Base __tioctl_tiocmodg F +Base __tioctl_tiocmods F +Base __tioctl_tiocmset F +Base __tioctl_tiocnxcl F +Base __tioctl_tiocoutq F +Base __tioctl_tiocpkt F +Base __tioctl_tiocremote F +Base __tioctl_tiocsbrk F +Base __tioctl_tiocsdtr F +Base __tioctl_tiocseta F +Base __tioctl_tiocsetaf F +Base __tioctl_tiocsetaw F +Base __tioctl_tiocsetd F +Base __tioctl_tiocsig F +Base __tioctl_tiocspgrp F +Base __tioctl_tiocstart F +Base __tioctl_tiocsti F +Base __tioctl_tiocstop F +Base __tioctl_tiocswinsz F +Base __tioctl_tiocucntl F +Base _hurdsig_fault_exc_server F +Base _hurdsig_fault_exc_server_routines D 0x8 +Base auth_getids F +Base auth_makeauth F +Base auth_server_authenticate F +Base auth_user_authenticate F +Base crash_dump_task F +Base dir_link F +Base dir_lookup F +Base dir_mkdir F +Base dir_mkfile F +Base dir_notice_changes F +Base dir_readdir F +Base dir_rename F +Base dir_rmdir F +Base dir_unlink F +Base exec_exec F +Base exec_exec_paths F +Base exec_init F +Base exec_setexecdata F +Base exec_startup_get_info F +Base file_chauthor F +Base file_check_access F +Base file_chflags F +Base file_chmod F +Base file_chown F +Base file_exec F +Base file_exec_paths F +Base file_get_fs_options F +Base file_get_storage_info F +Base file_get_translator F +Base file_get_translator_cntl F +Base file_getcontrol F +Base file_getfh F +Base file_getlinknode F +Base file_lock F +Base file_lock_stat F +Base file_notice_changes F +Base file_record_lock F +Base file_reparent F +Base file_set_size F +Base file_set_translator F +Base file_statfs F +Base file_sync F +Base file_syncfs F +Base file_utimens F +Base file_utimes F +Base fsys_forward F +Base fsys_get_children F +Base fsys_get_options F +Base fsys_get_source F +Base fsys_getfile F +Base fsys_getpriv F +Base fsys_getroot F +Base fsys_goaway F +Base fsys_init F +Base fsys_set_options F +Base fsys_startup F +Base fsys_syncfs F +Base gsync_wait_intr F +Base ifsock_getsockaddr F +Base interrupt_operation F +Base io_async F +Base io_async_reply F +Base io_async_request F +Base io_clear_some_openmodes F +Base io_clear_some_openmodes_reply F +Base io_clear_some_openmodes_request F +Base io_duplicate F +Base io_duplicate_reply F +Base io_duplicate_request F +Base io_eofnotify F +Base io_eofnotify_reply F +Base io_eofnotify_request F +Base io_get_conch F +Base io_get_conch_reply F +Base io_get_conch_request F +Base io_get_icky_async_id F +Base io_get_icky_async_id_reply F +Base io_get_icky_async_id_request F +Base io_get_openmodes F +Base io_get_openmodes_reply F +Base io_get_openmodes_request F +Base io_get_owner F +Base io_get_owner_reply F +Base io_get_owner_request F +Base io_identity F +Base io_identity_reply F +Base io_identity_request F +Base io_map F +Base io_map_cntl F +Base io_map_cntl_reply F +Base io_map_cntl_request F +Base io_map_reply F +Base io_map_request F +Base io_mod_owner F +Base io_mod_owner_reply F +Base io_mod_owner_request F +Base io_pathconf F +Base io_pathconf_reply F +Base io_pathconf_request F +Base io_postnotify F +Base io_postnotify_reply F +Base io_postnotify_request F +Base io_prenotify F +Base io_prenotify_reply F +Base io_prenotify_request F +Base io_read F +Base io_read_reply F +Base io_read_request F +Base io_readable F +Base io_readable_reply F +Base io_readable_request F +Base io_readnotify F +Base io_readnotify_reply F +Base io_readnotify_request F +Base io_readsleep F +Base io_readsleep_reply F +Base io_readsleep_request F +Base io_reauthenticate F +Base io_release_conch F +Base io_release_conch_reply F +Base io_release_conch_request F +Base io_restrict_auth F +Base io_restrict_auth_reply F +Base io_restrict_auth_request F +Base io_revoke F +Base io_revoke_reply F +Base io_revoke_request F +Base io_seek F +Base io_seek_reply F +Base io_seek_request F +Base io_select F +Base io_select_reply F +Base io_select_request F +Base io_select_timeout F +Base io_select_timeout_reply F +Base io_select_timeout_request F +Base io_server_version F +Base io_server_version_reply F +Base io_server_version_request F +Base io_set_all_openmodes F +Base io_set_all_openmodes_reply F +Base io_set_all_openmodes_request F +Base io_set_some_openmodes F +Base io_set_some_openmodes_reply F +Base io_set_some_openmodes_request F +Base io_sigio F +Base io_sigio_reply F +Base io_sigio_request F +Base io_stat F +Base io_stat_reply F +Base io_stat_request F +Base io_write F +Base io_write_reply F +Base io_write_request F +Base login_get_idle_time F +Base login_get_input_devices F +Base login_get_location F +Base login_get_login_collection F +Base login_message_user F +Base msg_add_auth F +Base msg_del_auth F +Base msg_describe_ports F +Base msg_get_dtable F +Base msg_get_env_variable F +Base msg_get_environment F +Base msg_get_fd F +Base msg_get_init_int F +Base msg_get_init_ints F +Base msg_get_init_port F +Base msg_get_init_ports F +Base msg_proc_newids F +Base msg_report_wait F +Base msg_set_dtable F +Base msg_set_env_variable F +Base msg_set_environment F +Base msg_set_fd F +Base msg_set_init_int F +Base msg_set_init_ints F +Base msg_set_init_port F +Base msg_set_init_ports F +Base msg_sig_post F +Base msg_sig_post_reply F +Base msg_sig_post_request F +Base msg_sig_post_untraced F +Base msg_sig_post_untraced_reply F +Base msg_sig_post_untraced_request F +Base password_check_group F +Base password_check_user F +Base pci_conf_read F +Base pci_conf_write F +Base pci_get_dev_regions F +Base pci_get_dev_rom F +Base pci_get_ndevs F +Base pfinet_getroutes F +Base pfinet_siocgifconf F +Base proc_child F +Base proc_child_request F +Base proc_dostop F +Base proc_dostop_request F +Base proc_execdata_notify F +Base proc_execdata_notify_request F +Base proc_get_arg_locations F +Base proc_get_arg_locations_request F +Base proc_get_code F +Base proc_get_code_request F +Base proc_get_entry F +Base proc_get_exe F +Base proc_get_tty F +Base proc_get_tty_request F +Base proc_getallpids F +Base proc_getallpids_request F +Base proc_getexecdata F +Base proc_getexecdata_request F +Base proc_getlogin F +Base proc_getlogin_request F +Base proc_getloginid F +Base proc_getloginid_request F +Base proc_getloginpids F +Base proc_getloginpids_request F +Base proc_getmsgport F +Base proc_getmsgport_request F +Base proc_getnports F +Base proc_getnports_request F +Base proc_getpgrp F +Base proc_getpgrp_request F +Base proc_getpgrppids F +Base proc_getpgrppids_request F +Base proc_getpids F +Base proc_getpids_request F +Base proc_getprivports F +Base proc_getprivports_request F +Base proc_getprocargs F +Base proc_getprocargs_request F +Base proc_getprocenv F +Base proc_getprocenv_request F +Base proc_getprocinfo F +Base proc_getprocinfo_request F +Base proc_getsessionpgids F +Base proc_getsessionpgids_request F +Base proc_getsessionpids F +Base proc_getsessionpids_request F +Base proc_getsid F +Base proc_getsid_request F +Base proc_getsidport F +Base proc_getsidport_request F +Base proc_handle_exceptions F +Base proc_handle_exceptions_request F +Base proc_is_important F +Base proc_is_important_request F +Base proc_make_login_coll F +Base proc_make_login_coll_request F +Base proc_make_task_namespace F +Base proc_make_task_namespace_request F +Base proc_mark_cont F +Base proc_mark_cont_request F +Base proc_mark_exec F +Base proc_mark_exec_request F +Base proc_mark_exit F +Base proc_mark_exit_request F +Base proc_mark_important F +Base proc_mark_important_request F +Base proc_mark_stop F +Base proc_mark_stop_request F +Base proc_mark_traced F +Base proc_mark_traced_request F +Base proc_mod_stopchild F +Base proc_mod_stopchild_request F +Base proc_pid2proc F +Base proc_pid2proc_request F +Base proc_pid2task F +Base proc_pid2task_request F +Base proc_proc2task F +Base proc_proc2task_request F +Base proc_reassign F +Base proc_reassign_request F +Base proc_reauthenticate F +Base proc_reauthenticate_complete F +Base proc_reauthenticate_reassign F +Base proc_reauthenticate_request F +Base proc_register_version F +Base proc_register_version_request F +Base proc_set_arg_locations F +Base proc_set_arg_locations_request F +Base proc_set_code F +Base proc_set_code_request F +Base proc_set_entry F +Base proc_set_exe F +Base proc_set_init_task F +Base proc_set_init_task_request F +Base proc_setexecdata F +Base proc_setexecdata_request F +Base proc_setlogin F +Base proc_setlogin_request F +Base proc_setmsgport F +Base proc_setmsgport_request F +Base proc_setowner F +Base proc_setowner_request F +Base proc_setpgrp F +Base proc_setpgrp_request F +Base proc_setsid F +Base proc_setsid_request F +Base proc_task2pid F +Base proc_task2pid_request F +Base proc_task2proc F +Base proc_task2proc_request F +Base proc_uname F +Base proc_uname_request F +Base proc_wait F +Base proc_wait_request F +Base proc_waitid F +Base socket_accept F +Base socket_bind F +Base socket_connect F +Base socket_connect2 F +Base socket_create F +Base socket_create_address F +Base socket_fabricate_address F +Base socket_getopt F +Base socket_listen F +Base socket_name F +Base socket_peername F +Base socket_recv F +Base socket_send F +Base socket_setopt F +Base socket_shutdown F +Base socket_whatis_address F +Base startup_authinit F +Base startup_essential_task F +Base startup_procinit F +Base startup_reboot F +Base startup_request_notification F +Base term_get_bottom_type F +Base term_get_nodename F +Base term_get_peername F +Base term_getctty F +Base term_on_hurddev F +Base term_on_machdev F +Base term_on_pty F +Base term_open_ctty F +Base term_set_filenode F +Base term_set_nodename F +Base termctty_open_terminal F +Base tioctl_tioccbrk F +Base tioctl_tioccdtr F +Base tioctl_tiocdrain F +Base tioctl_tiocexcl F +Base tioctl_tiocext F +Base tioctl_tiocflush F +Base tioctl_tiocgeta F +Base tioctl_tiocgetd F +Base tioctl_tiocgpgrp F +Base tioctl_tiocgwinsz F +Base tioctl_tiocmbic F +Base tioctl_tiocmbis F +Base tioctl_tiocmget F +Base tioctl_tiocmodg F +Base tioctl_tiocmods F +Base tioctl_tiocmset F +Base tioctl_tiocnxcl F +Base tioctl_tiocoutq F +Base tioctl_tiocpkt F +Base tioctl_tiocremote F +Base tioctl_tiocsbrk F +Base tioctl_tiocsdtr F +Base tioctl_tiocseta F +Base tioctl_tiocsetaf F +Base tioctl_tiocsetaw F +Base tioctl_tiocsetd F +Base tioctl_tiocsig F +Base tioctl_tiocspgrp F +Base tioctl_tiocstart F +Base tioctl_tiocsti F +Base tioctl_tiocstop F +Base tioctl_tiocswinsz F +Base tioctl_tiocucntl F diff --git a/sysdeps/mach/hurd/x86_64/libm.abilist b/sysdeps/mach/hurd/x86_64/libm.abilist new file mode 100644 index 00000000..727028f0 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libm.abilist @@ -0,0 +1,1181 @@ +GLIBC_2.15 __acos_finite F +GLIBC_2.15 __acosf_finite F +GLIBC_2.15 __acosh_finite F +GLIBC_2.15 __acoshf_finite F +GLIBC_2.15 __acoshl_finite F +GLIBC_2.15 __acosl_finite F +GLIBC_2.15 __asin_finite F +GLIBC_2.15 __asinf_finite F +GLIBC_2.15 __asinl_finite F +GLIBC_2.15 __atan2_finite F +GLIBC_2.15 __atan2f_finite F +GLIBC_2.15 __atan2l_finite F +GLIBC_2.15 __atanh_finite F +GLIBC_2.15 __atanhf_finite F +GLIBC_2.15 __atanhl_finite F +GLIBC_2.15 __cosh_finite F +GLIBC_2.15 __coshf_finite F +GLIBC_2.15 __coshl_finite F +GLIBC_2.15 __exp10_finite F +GLIBC_2.15 __exp10f_finite F +GLIBC_2.15 __exp10l_finite F +GLIBC_2.15 __exp2_finite F +GLIBC_2.15 __exp2f_finite F +GLIBC_2.15 __exp2l_finite F +GLIBC_2.15 __exp_finite F +GLIBC_2.15 __expf_finite F +GLIBC_2.15 __expl_finite F +GLIBC_2.15 __fmod_finite F +GLIBC_2.15 __fmodf_finite F +GLIBC_2.15 __fmodl_finite F +GLIBC_2.15 __gamma_r_finite F +GLIBC_2.15 __gammaf_r_finite F +GLIBC_2.15 __gammal_r_finite F +GLIBC_2.15 __hypot_finite F +GLIBC_2.15 __hypotf_finite F +GLIBC_2.15 __hypotl_finite F +GLIBC_2.15 __j0_finite F +GLIBC_2.15 __j0f_finite F +GLIBC_2.15 __j0l_finite F +GLIBC_2.15 __j1_finite F +GLIBC_2.15 __j1f_finite F +GLIBC_2.15 __j1l_finite F +GLIBC_2.15 __jn_finite F +GLIBC_2.15 __jnf_finite F +GLIBC_2.15 __jnl_finite F +GLIBC_2.15 __lgamma_r_finite F +GLIBC_2.15 __lgammaf_r_finite F +GLIBC_2.15 __lgammal_r_finite F +GLIBC_2.15 __log10_finite F +GLIBC_2.15 __log10f_finite F +GLIBC_2.15 __log10l_finite F +GLIBC_2.15 __log2_finite F +GLIBC_2.15 __log2f_finite F +GLIBC_2.15 __log2l_finite F +GLIBC_2.15 __log_finite F +GLIBC_2.15 __logf_finite F +GLIBC_2.15 __logl_finite F +GLIBC_2.15 __pow_finite F +GLIBC_2.15 __powf_finite F +GLIBC_2.15 __powl_finite F +GLIBC_2.15 __remainder_finite F +GLIBC_2.15 __remainderf_finite F +GLIBC_2.15 __remainderl_finite F +GLIBC_2.15 __scalb_finite F +GLIBC_2.15 __scalbf_finite F +GLIBC_2.15 __scalbl_finite F +GLIBC_2.15 __sinh_finite F +GLIBC_2.15 __sinhf_finite F +GLIBC_2.15 __sinhl_finite F +GLIBC_2.15 __sqrt_finite F +GLIBC_2.15 __sqrtf_finite F +GLIBC_2.15 __sqrtl_finite F +GLIBC_2.15 __y0_finite F +GLIBC_2.15 __y0f_finite F +GLIBC_2.15 __y0l_finite F +GLIBC_2.15 __y1_finite F +GLIBC_2.15 __y1f_finite F +GLIBC_2.15 __y1l_finite F +GLIBC_2.15 __yn_finite F +GLIBC_2.15 __ynf_finite F +GLIBC_2.15 __ynl_finite F +GLIBC_2.18 __issignaling F +GLIBC_2.18 __issignalingf F +GLIBC_2.18 __issignalingl F +GLIBC_2.2.6 _LIB_VERSION D 0x4 +GLIBC_2.2.6 __clog10 F +GLIBC_2.2.6 __clog10f F +GLIBC_2.2.6 __clog10l F +GLIBC_2.2.6 __finite F +GLIBC_2.2.6 __finitef F +GLIBC_2.2.6 __finitel F +GLIBC_2.2.6 __fpclassify F +GLIBC_2.2.6 __fpclassifyf F +GLIBC_2.2.6 __fpclassifyl F +GLIBC_2.2.6 __signbit F +GLIBC_2.2.6 __signbitf F +GLIBC_2.2.6 __signbitl F +GLIBC_2.2.6 acos F +GLIBC_2.2.6 acosf F +GLIBC_2.2.6 acosh F +GLIBC_2.2.6 acoshf F +GLIBC_2.2.6 acoshl F +GLIBC_2.2.6 acosl F +GLIBC_2.2.6 asin F +GLIBC_2.2.6 asinf F +GLIBC_2.2.6 asinh F +GLIBC_2.2.6 asinhf F +GLIBC_2.2.6 asinhl F +GLIBC_2.2.6 asinl F +GLIBC_2.2.6 atan F +GLIBC_2.2.6 atan2 F +GLIBC_2.2.6 atan2f F +GLIBC_2.2.6 atan2l F +GLIBC_2.2.6 atanf F +GLIBC_2.2.6 atanh F +GLIBC_2.2.6 atanhf F +GLIBC_2.2.6 atanhl F +GLIBC_2.2.6 atanl F +GLIBC_2.2.6 cabs F +GLIBC_2.2.6 cabsf F +GLIBC_2.2.6 cabsl F +GLIBC_2.2.6 cacos F +GLIBC_2.2.6 cacosf F +GLIBC_2.2.6 cacosh F +GLIBC_2.2.6 cacoshf F +GLIBC_2.2.6 cacoshl F +GLIBC_2.2.6 cacosl F +GLIBC_2.2.6 carg F +GLIBC_2.2.6 cargf F +GLIBC_2.2.6 cargl F +GLIBC_2.2.6 casin F +GLIBC_2.2.6 casinf F +GLIBC_2.2.6 casinh F +GLIBC_2.2.6 casinhf F +GLIBC_2.2.6 casinhl F +GLIBC_2.2.6 casinl F +GLIBC_2.2.6 catan F +GLIBC_2.2.6 catanf F +GLIBC_2.2.6 catanh F +GLIBC_2.2.6 catanhf F +GLIBC_2.2.6 catanhl F +GLIBC_2.2.6 catanl F +GLIBC_2.2.6 cbrt F +GLIBC_2.2.6 cbrtf F +GLIBC_2.2.6 cbrtl F +GLIBC_2.2.6 ccos F +GLIBC_2.2.6 ccosf F +GLIBC_2.2.6 ccosh F +GLIBC_2.2.6 ccoshf F +GLIBC_2.2.6 ccoshl F +GLIBC_2.2.6 ccosl F +GLIBC_2.2.6 ceil F +GLIBC_2.2.6 ceilf F +GLIBC_2.2.6 ceill F +GLIBC_2.2.6 cexp F +GLIBC_2.2.6 cexpf F +GLIBC_2.2.6 cexpl F +GLIBC_2.2.6 cimag F +GLIBC_2.2.6 cimagf F +GLIBC_2.2.6 cimagl F +GLIBC_2.2.6 clog F +GLIBC_2.2.6 clog10 F +GLIBC_2.2.6 clog10f F +GLIBC_2.2.6 clog10l F +GLIBC_2.2.6 clogf F +GLIBC_2.2.6 clogl F +GLIBC_2.2.6 conj F +GLIBC_2.2.6 conjf F +GLIBC_2.2.6 conjl F +GLIBC_2.2.6 copysign F +GLIBC_2.2.6 copysignf F +GLIBC_2.2.6 copysignl F +GLIBC_2.2.6 cos F +GLIBC_2.2.6 cosf F +GLIBC_2.2.6 cosh F +GLIBC_2.2.6 coshf F +GLIBC_2.2.6 coshl F +GLIBC_2.2.6 cosl F +GLIBC_2.2.6 cpow F +GLIBC_2.2.6 cpowf F +GLIBC_2.2.6 cpowl F +GLIBC_2.2.6 cproj F +GLIBC_2.2.6 cprojf F +GLIBC_2.2.6 cprojl F +GLIBC_2.2.6 creal F +GLIBC_2.2.6 crealf F +GLIBC_2.2.6 creall F +GLIBC_2.2.6 csin F +GLIBC_2.2.6 csinf F +GLIBC_2.2.6 csinh F +GLIBC_2.2.6 csinhf F +GLIBC_2.2.6 csinhl F +GLIBC_2.2.6 csinl F +GLIBC_2.2.6 csqrt F +GLIBC_2.2.6 csqrtf F +GLIBC_2.2.6 csqrtl F +GLIBC_2.2.6 ctan F +GLIBC_2.2.6 ctanf F +GLIBC_2.2.6 ctanh F +GLIBC_2.2.6 ctanhf F +GLIBC_2.2.6 ctanhl F +GLIBC_2.2.6 ctanl F +GLIBC_2.2.6 drem F +GLIBC_2.2.6 dremf F +GLIBC_2.2.6 dreml F +GLIBC_2.2.6 erf F +GLIBC_2.2.6 erfc F +GLIBC_2.2.6 erfcf F +GLIBC_2.2.6 erfcl F +GLIBC_2.2.6 erff F +GLIBC_2.2.6 erfl F +GLIBC_2.2.6 exp F +GLIBC_2.2.6 exp10 F +GLIBC_2.2.6 exp10f F +GLIBC_2.2.6 exp10l F +GLIBC_2.2.6 exp2 F +GLIBC_2.2.6 exp2f F +GLIBC_2.2.6 exp2l F +GLIBC_2.2.6 expf F +GLIBC_2.2.6 expl F +GLIBC_2.2.6 expm1 F +GLIBC_2.2.6 expm1f F +GLIBC_2.2.6 expm1l F +GLIBC_2.2.6 fabs F +GLIBC_2.2.6 fabsf F +GLIBC_2.2.6 fabsl F +GLIBC_2.2.6 fdim F +GLIBC_2.2.6 fdimf F +GLIBC_2.2.6 fdiml F +GLIBC_2.2.6 feclearexcept F +GLIBC_2.2.6 fedisableexcept F +GLIBC_2.2.6 feenableexcept F +GLIBC_2.2.6 fegetenv F +GLIBC_2.2.6 fegetexcept F +GLIBC_2.2.6 fegetexceptflag F +GLIBC_2.2.6 fegetround F +GLIBC_2.2.6 feholdexcept F +GLIBC_2.2.6 feraiseexcept F +GLIBC_2.2.6 fesetenv F +GLIBC_2.2.6 fesetexceptflag F +GLIBC_2.2.6 fesetround F +GLIBC_2.2.6 fetestexcept F +GLIBC_2.2.6 feupdateenv F +GLIBC_2.2.6 finite F +GLIBC_2.2.6 finitef F +GLIBC_2.2.6 finitel F +GLIBC_2.2.6 floor F +GLIBC_2.2.6 floorf F +GLIBC_2.2.6 floorl F +GLIBC_2.2.6 fma F +GLIBC_2.2.6 fmaf F +GLIBC_2.2.6 fmal F +GLIBC_2.2.6 fmax F +GLIBC_2.2.6 fmaxf F +GLIBC_2.2.6 fmaxl F +GLIBC_2.2.6 fmin F +GLIBC_2.2.6 fminf F +GLIBC_2.2.6 fminl F +GLIBC_2.2.6 fmod F +GLIBC_2.2.6 fmodf F +GLIBC_2.2.6 fmodl F +GLIBC_2.2.6 frexp F +GLIBC_2.2.6 frexpf F +GLIBC_2.2.6 frexpl F +GLIBC_2.2.6 gamma F +GLIBC_2.2.6 gammaf F +GLIBC_2.2.6 gammal F +GLIBC_2.2.6 hypot F +GLIBC_2.2.6 hypotf F +GLIBC_2.2.6 hypotl F +GLIBC_2.2.6 ilogb F +GLIBC_2.2.6 ilogbf F +GLIBC_2.2.6 ilogbl F +GLIBC_2.2.6 j0 F +GLIBC_2.2.6 j0f F +GLIBC_2.2.6 j0l F +GLIBC_2.2.6 j1 F +GLIBC_2.2.6 j1f F +GLIBC_2.2.6 j1l F +GLIBC_2.2.6 jn F +GLIBC_2.2.6 jnf F +GLIBC_2.2.6 jnl F +GLIBC_2.2.6 ldexp F +GLIBC_2.2.6 ldexpf F +GLIBC_2.2.6 ldexpl F +GLIBC_2.2.6 lgamma F +GLIBC_2.2.6 lgamma_r F +GLIBC_2.2.6 lgammaf F +GLIBC_2.2.6 lgammaf_r F +GLIBC_2.2.6 lgammal F +GLIBC_2.2.6 lgammal_r F +GLIBC_2.2.6 llrint F +GLIBC_2.2.6 llrintf F +GLIBC_2.2.6 llrintl F +GLIBC_2.2.6 llround F +GLIBC_2.2.6 llroundf F +GLIBC_2.2.6 llroundl F +GLIBC_2.2.6 log F +GLIBC_2.2.6 log10 F +GLIBC_2.2.6 log10f F +GLIBC_2.2.6 log10l F +GLIBC_2.2.6 log1p F +GLIBC_2.2.6 log1pf F +GLIBC_2.2.6 log1pl F +GLIBC_2.2.6 log2 F +GLIBC_2.2.6 log2f F +GLIBC_2.2.6 log2l F +GLIBC_2.2.6 logb F +GLIBC_2.2.6 logbf F +GLIBC_2.2.6 logbl F +GLIBC_2.2.6 logf F +GLIBC_2.2.6 logl F +GLIBC_2.2.6 lrint F +GLIBC_2.2.6 lrintf F +GLIBC_2.2.6 lrintl F +GLIBC_2.2.6 lround F +GLIBC_2.2.6 lroundf F +GLIBC_2.2.6 lroundl F +GLIBC_2.2.6 matherr F +GLIBC_2.2.6 modf F +GLIBC_2.2.6 modff F +GLIBC_2.2.6 modfl F +GLIBC_2.2.6 nan F +GLIBC_2.2.6 nanf F +GLIBC_2.2.6 nanl F +GLIBC_2.2.6 nearbyint F +GLIBC_2.2.6 nearbyintf F +GLIBC_2.2.6 nearbyintl F +GLIBC_2.2.6 nextafter F +GLIBC_2.2.6 nextafterf F +GLIBC_2.2.6 nextafterl F +GLIBC_2.2.6 nexttoward F +GLIBC_2.2.6 nexttowardf F +GLIBC_2.2.6 nexttowardl F +GLIBC_2.2.6 pow F +GLIBC_2.2.6 pow10 F +GLIBC_2.2.6 pow10f F +GLIBC_2.2.6 pow10l F +GLIBC_2.2.6 powf F +GLIBC_2.2.6 powl F +GLIBC_2.2.6 remainder F +GLIBC_2.2.6 remainderf F +GLIBC_2.2.6 remainderl F +GLIBC_2.2.6 remquo F +GLIBC_2.2.6 remquof F +GLIBC_2.2.6 remquol F +GLIBC_2.2.6 rint F +GLIBC_2.2.6 rintf F +GLIBC_2.2.6 rintl F +GLIBC_2.2.6 round F +GLIBC_2.2.6 roundf F +GLIBC_2.2.6 roundl F +GLIBC_2.2.6 scalb F +GLIBC_2.2.6 scalbf F +GLIBC_2.2.6 scalbl F +GLIBC_2.2.6 scalbln F +GLIBC_2.2.6 scalblnf F +GLIBC_2.2.6 scalblnl F +GLIBC_2.2.6 scalbn F +GLIBC_2.2.6 scalbnf F +GLIBC_2.2.6 scalbnl F +GLIBC_2.2.6 signgam D 0x4 +GLIBC_2.2.6 significand F +GLIBC_2.2.6 significandf F +GLIBC_2.2.6 significandl F +GLIBC_2.2.6 sin F +GLIBC_2.2.6 sincos F +GLIBC_2.2.6 sincosf F +GLIBC_2.2.6 sincosl F +GLIBC_2.2.6 sinf F +GLIBC_2.2.6 sinh F +GLIBC_2.2.6 sinhf F +GLIBC_2.2.6 sinhl F +GLIBC_2.2.6 sinl F +GLIBC_2.2.6 sqrt F +GLIBC_2.2.6 sqrtf F +GLIBC_2.2.6 sqrtl F +GLIBC_2.2.6 tan F +GLIBC_2.2.6 tanf F +GLIBC_2.2.6 tanh F +GLIBC_2.2.6 tanhf F +GLIBC_2.2.6 tanhl F +GLIBC_2.2.6 tanl F +GLIBC_2.2.6 tgamma F +GLIBC_2.2.6 tgammaf F +GLIBC_2.2.6 tgammal F +GLIBC_2.2.6 trunc F +GLIBC_2.2.6 truncf F +GLIBC_2.2.6 truncl F +GLIBC_2.2.6 y0 F +GLIBC_2.2.6 y0f F +GLIBC_2.2.6 y0l F +GLIBC_2.2.6 y1 F +GLIBC_2.2.6 y1f F +GLIBC_2.2.6 y1l F +GLIBC_2.2.6 yn F +GLIBC_2.2.6 ynf F +GLIBC_2.2.6 ynl F +GLIBC_2.23 __signgam D 0x4 +GLIBC_2.23 lgamma F +GLIBC_2.23 lgammaf F +GLIBC_2.23 lgammal F +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 __iscanonicall F +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.26 __acosf128_finite F +GLIBC_2.26 __acoshf128_finite F +GLIBC_2.26 __asinf128_finite F +GLIBC_2.26 __atan2f128_finite F +GLIBC_2.26 __atanhf128_finite F +GLIBC_2.26 __coshf128_finite F +GLIBC_2.26 __exp10f128_finite F +GLIBC_2.26 __exp2f128_finite F +GLIBC_2.26 __expf128_finite F +GLIBC_2.26 __finitef128 F +GLIBC_2.26 __fmodf128_finite F +GLIBC_2.26 __fpclassifyf128 F +GLIBC_2.26 __gammaf128_r_finite F +GLIBC_2.26 __hypotf128_finite F +GLIBC_2.26 __iseqsigf128 F +GLIBC_2.26 __isinff128 F +GLIBC_2.26 __issignalingf128 F +GLIBC_2.26 __j0f128_finite F +GLIBC_2.26 __j1f128_finite F +GLIBC_2.26 __jnf128_finite F +GLIBC_2.26 __lgammaf128_r_finite F +GLIBC_2.26 __log10f128_finite F +GLIBC_2.26 __log2f128_finite F +GLIBC_2.26 __logf128_finite F +GLIBC_2.26 __powf128_finite F +GLIBC_2.26 __remainderf128_finite F +GLIBC_2.26 __signbitf128 F +GLIBC_2.26 __sinhf128_finite F +GLIBC_2.26 __sqrtf128_finite F +GLIBC_2.26 __y0f128_finite F +GLIBC_2.26 __y1f128_finite F +GLIBC_2.26 __ynf128_finite F +GLIBC_2.26 acosf128 F +GLIBC_2.26 acoshf128 F +GLIBC_2.26 asinf128 F +GLIBC_2.26 asinhf128 F +GLIBC_2.26 atan2f128 F +GLIBC_2.26 atanf128 F +GLIBC_2.26 atanhf128 F +GLIBC_2.26 cabsf128 F +GLIBC_2.26 cacosf128 F +GLIBC_2.26 cacoshf128 F +GLIBC_2.26 canonicalizef128 F +GLIBC_2.26 cargf128 F +GLIBC_2.26 casinf128 F +GLIBC_2.26 casinhf128 F +GLIBC_2.26 catanf128 F +GLIBC_2.26 catanhf128 F +GLIBC_2.26 cbrtf128 F +GLIBC_2.26 ccosf128 F +GLIBC_2.26 ccoshf128 F +GLIBC_2.26 ceilf128 F +GLIBC_2.26 cexpf128 F +GLIBC_2.26 cimagf128 F +GLIBC_2.26 clog10f128 F +GLIBC_2.26 clogf128 F +GLIBC_2.26 conjf128 F +GLIBC_2.26 copysignf128 F +GLIBC_2.26 cosf128 F +GLIBC_2.26 coshf128 F +GLIBC_2.26 cpowf128 F +GLIBC_2.26 cprojf128 F +GLIBC_2.26 crealf128 F +GLIBC_2.26 csinf128 F +GLIBC_2.26 csinhf128 F +GLIBC_2.26 csqrtf128 F +GLIBC_2.26 ctanf128 F +GLIBC_2.26 ctanhf128 F +GLIBC_2.26 erfcf128 F +GLIBC_2.26 erff128 F +GLIBC_2.26 exp10f128 F +GLIBC_2.26 exp2f128 F +GLIBC_2.26 expf128 F +GLIBC_2.26 expm1f128 F +GLIBC_2.26 fabsf128 F +GLIBC_2.26 fdimf128 F +GLIBC_2.26 floorf128 F +GLIBC_2.26 fmaf128 F +GLIBC_2.26 fmaxf128 F +GLIBC_2.26 fmaxmagf128 F +GLIBC_2.26 fminf128 F +GLIBC_2.26 fminmagf128 F +GLIBC_2.26 fmodf128 F +GLIBC_2.26 frexpf128 F +GLIBC_2.26 fromfpf128 F +GLIBC_2.26 fromfpxf128 F +GLIBC_2.26 getpayloadf128 F +GLIBC_2.26 hypotf128 F +GLIBC_2.26 ilogbf128 F +GLIBC_2.26 j0f128 F +GLIBC_2.26 j1f128 F +GLIBC_2.26 jnf128 F +GLIBC_2.26 ldexpf128 F +GLIBC_2.26 lgammaf128 F +GLIBC_2.26 lgammaf128_r F +GLIBC_2.26 llogbf128 F +GLIBC_2.26 llrintf128 F +GLIBC_2.26 llroundf128 F +GLIBC_2.26 log10f128 F +GLIBC_2.26 log1pf128 F +GLIBC_2.26 log2f128 F +GLIBC_2.26 logbf128 F +GLIBC_2.26 logf128 F +GLIBC_2.26 lrintf128 F +GLIBC_2.26 lroundf128 F +GLIBC_2.26 modff128 F +GLIBC_2.26 nanf128 F +GLIBC_2.26 nearbyintf128 F +GLIBC_2.26 nextafterf128 F +GLIBC_2.26 nextdownf128 F +GLIBC_2.26 nextupf128 F +GLIBC_2.26 powf128 F +GLIBC_2.26 remainderf128 F +GLIBC_2.26 remquof128 F +GLIBC_2.26 rintf128 F +GLIBC_2.26 roundevenf128 F +GLIBC_2.26 roundf128 F +GLIBC_2.26 scalblnf128 F +GLIBC_2.26 scalbnf128 F +GLIBC_2.26 setpayloadf128 F +GLIBC_2.26 setpayloadsigf128 F +GLIBC_2.26 sincosf128 F +GLIBC_2.26 sinf128 F +GLIBC_2.26 sinhf128 F +GLIBC_2.26 sqrtf128 F +GLIBC_2.26 tanf128 F +GLIBC_2.26 tanhf128 F +GLIBC_2.26 tgammaf128 F +GLIBC_2.26 totalorderf128 F +GLIBC_2.26 totalordermagf128 F +GLIBC_2.26 truncf128 F +GLIBC_2.26 ufromfpf128 F +GLIBC_2.26 ufromfpxf128 F +GLIBC_2.26 y0f128 F +GLIBC_2.26 y1f128 F +GLIBC_2.26 ynf128 F +GLIBC_2.27 acosf32 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F +GLIBC_2.27 exp10f64x F +GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F +GLIBC_2.27 exp2f64x F +GLIBC_2.27 expf F +GLIBC_2.27 expf32 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F +GLIBC_2.27 log1pf64x F +GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F +GLIBC_2.27 logbf64x F +GLIBC_2.27 logf F +GLIBC_2.27 logf32 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F +GLIBC_2.27 nextupf64x F +GLIBC_2.27 powf F +GLIBC_2.27 powf32 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F +GLIBC_2.27 ynf64x F +GLIBC_2.28 daddl F +GLIBC_2.28 ddivl F +GLIBC_2.28 dmull F +GLIBC_2.28 dsubl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32divf128 F +GLIBC_2.28 f32divf32x F +GLIBC_2.28 f32divf64 F +GLIBC_2.28 f32divf64x F +GLIBC_2.28 f32mulf128 F +GLIBC_2.28 f32mulf32x F +GLIBC_2.28 f32mulf64 F +GLIBC_2.28 f32mulf64x F +GLIBC_2.28 f32subf128 F +GLIBC_2.28 f32subf32x F +GLIBC_2.28 f32subf64 F +GLIBC_2.28 f32subf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f32xdivf128 F +GLIBC_2.28 f32xdivf64 F +GLIBC_2.28 f32xdivf64x F +GLIBC_2.28 f32xmulf128 F +GLIBC_2.28 f32xmulf64 F +GLIBC_2.28 f32xmulf64x F +GLIBC_2.28 f32xsubf128 F +GLIBC_2.28 f32xsubf64 F +GLIBC_2.28 f32xsubf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64divf128 F +GLIBC_2.28 f64divf64x F +GLIBC_2.28 f64mulf128 F +GLIBC_2.28 f64mulf64x F +GLIBC_2.28 f64subf128 F +GLIBC_2.28 f64subf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 f64xdivf128 F +GLIBC_2.28 f64xmulf128 F +GLIBC_2.28 f64xsubf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F +GLIBC_2.28 fdiv F +GLIBC_2.28 fdivl F +GLIBC_2.28 fmul F +GLIBC_2.28 fmull F +GLIBC_2.28 fsub F +GLIBC_2.28 fsubl F +GLIBC_2.29 exp F +GLIBC_2.29 exp2 F +GLIBC_2.29 log F +GLIBC_2.29 log2 F +GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F +GLIBC_2.32 exp10f F +GLIBC_2.35 dfmal F +GLIBC_2.35 dsqrtl F +GLIBC_2.35 f32fmaf128 F +GLIBC_2.35 f32fmaf32x F +GLIBC_2.35 f32fmaf64 F +GLIBC_2.35 f32fmaf64x F +GLIBC_2.35 f32sqrtf128 F +GLIBC_2.35 f32sqrtf32x F +GLIBC_2.35 f32sqrtf64 F +GLIBC_2.35 f32sqrtf64x F +GLIBC_2.35 f32xfmaf128 F +GLIBC_2.35 f32xfmaf64 F +GLIBC_2.35 f32xfmaf64x F +GLIBC_2.35 f32xsqrtf128 F +GLIBC_2.35 f32xsqrtf64 F +GLIBC_2.35 f32xsqrtf64x F +GLIBC_2.35 f64fmaf128 F +GLIBC_2.35 f64fmaf64x F +GLIBC_2.35 f64sqrtf128 F +GLIBC_2.35 f64sqrtf64x F +GLIBC_2.35 f64xfmaf128 F +GLIBC_2.35 f64xsqrtf128 F +GLIBC_2.35 ffma F +GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F +GLIBC_2.35 fsqrt F +GLIBC_2.35 fsqrtl F +GLIBC_2.35 hypot F +GLIBC_2.35 hypotf F diff --git a/sysdeps/mach/hurd/x86_64/libmachuser.abilist b/sysdeps/mach/hurd/x86_64/libmachuser.abilist new file mode 100644 index 00000000..edcc656d --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libmachuser.abilist @@ -0,0 +1,336 @@ +Base _S_exc_server F +Base _S_exc_server_routines D 0x8 +Base __default_pager_info F +Base __default_pager_object_create F +Base __default_pager_object_pages F +Base __default_pager_objects F +Base __default_pager_paging_file F +Base __default_pager_register_fileserver F +Base __device_close F +Base __device_get_status F +Base __device_intr_ack F +Base __device_intr_register F +Base __device_map F +Base __device_open F +Base __device_open_request F +Base __device_read F +Base __device_read_inband F +Base __device_read_request F +Base __device_read_request_inband F +Base __device_set_filter F +Base __device_set_status F +Base __device_write F +Base __device_write_inband F +Base __device_write_request F +Base __device_write_request_inband F +Base __exception_raise F +Base __gsync_requeue F +Base __gsync_wait F +Base __gsync_wake F +Base __host_adjust_time F +Base __host_adjust_time64 F +Base __host_get_boot_info F +Base __host_get_time F +Base __host_get_time64 F +Base __host_info F +Base __host_kernel_version F +Base __host_processor_set_priv F +Base __host_processor_sets F +Base __host_processors F +Base __host_reboot F +Base __host_set_time F +Base __host_set_time64 F +Base __i386_get_gdt F +Base __i386_get_ldt F +Base __i386_io_perm_create F +Base __i386_io_perm_modify F +Base __i386_set_gdt F +Base __i386_set_ldt F +Base __mach_notify_new_task F +Base __mach_port_allocate_name_rpc F +Base __mach_port_allocate_rpc F +Base __mach_port_clear_protected_payload F +Base __mach_port_deallocate_rpc F +Base __mach_port_destroy F +Base __mach_port_extract_right F +Base __mach_port_get_receive_status F +Base __mach_port_get_refs F +Base __mach_port_get_set_status F +Base __mach_port_insert_right_rpc F +Base __mach_port_mod_refs F +Base __mach_port_move_member F +Base __mach_port_names F +Base __mach_port_rename F +Base __mach_port_request_notification F +Base __mach_port_set_mscount F +Base __mach_port_set_protected_payload F +Base __mach_port_set_qlimit F +Base __mach_port_set_seqno F +Base __mach_port_type F +Base __mach_ports_lookup F +Base __mach_ports_register F +Base __memory_object_change_attributes F +Base __memory_object_change_completed F +Base __memory_object_copy F +Base __memory_object_create F +Base __memory_object_create_proxy F +Base __memory_object_data_error F +Base __memory_object_data_initialize F +Base __memory_object_data_request F +Base __memory_object_data_return F +Base __memory_object_data_supply F +Base __memory_object_data_unavailable F +Base __memory_object_data_unlock F +Base __memory_object_destroy F +Base __memory_object_get_attributes F +Base __memory_object_init F +Base __memory_object_lock_completed F +Base __memory_object_lock_request F +Base __memory_object_ready F +Base __memory_object_supply_completed F +Base __memory_object_terminate F +Base __processor_assign F +Base __processor_control F +Base __processor_exit F +Base __processor_get_assignment F +Base __processor_info F +Base __processor_set_create F +Base __processor_set_default F +Base __processor_set_destroy F +Base __processor_set_info F +Base __processor_set_max_priority F +Base __processor_set_policy_disable F +Base __processor_set_policy_enable F +Base __processor_set_tasks F +Base __processor_set_threads F +Base __processor_start F +Base __register_new_task_notification F +Base __task_assign F +Base __task_assign_default F +Base __task_create_rpc F +Base __task_disable_pc_sampling F +Base __task_enable_pc_sampling F +Base __task_get_assignment F +Base __task_get_emulation_vector F +Base __task_get_sampled_pcs F +Base __task_get_special_port F +Base __task_info F +Base __task_priority F +Base __task_ras_control F +Base __task_resume F +Base __task_set_emulation F +Base __task_set_emulation_vector F +Base __task_set_essential F +Base __task_set_name F +Base __task_set_special_port_rpc F +Base __task_suspend_rpc F +Base __task_terminate_rpc F +Base __task_threads F +Base __thread_abort F +Base __thread_assign F +Base __thread_assign_default F +Base __thread_create F +Base __thread_depress_abort_rpc F +Base __thread_disable_pc_sampling F +Base __thread_enable_pc_sampling F +Base __thread_get_assignment F +Base __thread_get_sampled_pcs F +Base __thread_get_special_port F +Base __thread_get_state F +Base __thread_info F +Base __thread_max_priority F +Base __thread_policy F +Base __thread_priority F +Base __thread_resume F +Base __thread_set_special_port F +Base __thread_set_state F +Base __thread_suspend F +Base __thread_terminate F +Base __thread_terminate_release F +Base __thread_wire F +Base __vm_allocate_contiguous F +Base __vm_allocate_rpc F +Base __vm_cache_statistics F +Base __vm_copy F +Base __vm_deallocate_rpc F +Base __vm_inherit F +Base __vm_machine_attribute F +Base __vm_map_rpc F +Base __vm_msync F +Base __vm_object_sync F +Base __vm_protect F +Base __vm_read F +Base __vm_region F +Base __vm_region_create_proxy F +Base __vm_set_default_memory_manager F +Base __vm_statistics F +Base __vm_wire F +Base __vm_wire_all F +Base __vm_write F +Base default_pager_info F +Base default_pager_object_create F +Base default_pager_object_pages F +Base default_pager_objects F +Base default_pager_paging_file F +Base default_pager_register_fileserver F +Base device_close F +Base device_get_status F +Base device_intr_ack F +Base device_intr_register F +Base device_map F +Base device_open F +Base device_open_request F +Base device_read F +Base device_read_inband F +Base device_read_request F +Base device_read_request_inband F +Base device_set_filter F +Base device_set_status F +Base device_write F +Base device_write_inband F +Base device_write_request F +Base device_write_request_inband F +Base exception_raise F +Base gsync_requeue F +Base gsync_wait F +Base gsync_wake F +Base host_adjust_time F +Base host_adjust_time64 F +Base host_get_boot_info F +Base host_get_time F +Base host_get_time64 F +Base host_info F +Base host_kernel_version F +Base host_processor_set_priv F +Base host_processor_sets F +Base host_processors F +Base host_reboot F +Base host_set_time F +Base host_set_time64 F +Base i386_get_gdt F +Base i386_get_ldt F +Base i386_io_perm_create F +Base i386_io_perm_modify F +Base i386_set_gdt F +Base i386_set_ldt F +Base mach_notify_new_task F +Base mach_port_allocate_name_rpc F +Base mach_port_allocate_rpc F +Base mach_port_clear_protected_payload F +Base mach_port_deallocate_rpc F +Base mach_port_destroy F +Base mach_port_extract_right F +Base mach_port_get_receive_status F +Base mach_port_get_refs F +Base mach_port_get_set_status F +Base mach_port_insert_right_rpc F +Base mach_port_mod_refs F +Base mach_port_move_member F +Base mach_port_names F +Base mach_port_rename F +Base mach_port_request_notification F +Base mach_port_set_mscount F +Base mach_port_set_protected_payload F +Base mach_port_set_qlimit F +Base mach_port_set_seqno F +Base mach_port_type F +Base mach_ports_lookup F +Base mach_ports_register F +Base memory_object_change_attributes F +Base memory_object_change_completed F +Base memory_object_copy F +Base memory_object_create F +Base memory_object_create_proxy F +Base memory_object_data_error F +Base memory_object_data_initialize F +Base memory_object_data_request F +Base memory_object_data_return F +Base memory_object_data_supply F +Base memory_object_data_unavailable F +Base memory_object_data_unlock F +Base memory_object_destroy F +Base memory_object_get_attributes F +Base memory_object_init F +Base memory_object_lock_completed F +Base memory_object_lock_request F +Base memory_object_ready F +Base memory_object_supply_completed F +Base memory_object_terminate F +Base processor_assign F +Base processor_control F +Base processor_exit F +Base processor_get_assignment F +Base processor_info F +Base processor_set_create F +Base processor_set_default F +Base processor_set_destroy F +Base processor_set_info F +Base processor_set_max_priority F +Base processor_set_policy_disable F +Base processor_set_policy_enable F +Base processor_set_tasks F +Base processor_set_threads F +Base processor_start F +Base register_new_task_notification F +Base task_assign F +Base task_assign_default F +Base task_create_rpc F +Base task_disable_pc_sampling F +Base task_enable_pc_sampling F +Base task_get_assignment F +Base task_get_emulation_vector F +Base task_get_sampled_pcs F +Base task_get_special_port F +Base task_info F +Base task_priority F +Base task_ras_control F +Base task_resume F +Base task_set_emulation F +Base task_set_emulation_vector F +Base task_set_essential F +Base task_set_name F +Base task_set_special_port_rpc F +Base task_suspend_rpc F +Base task_terminate_rpc F +Base task_threads F +Base thread_abort F +Base thread_assign F +Base thread_assign_default F +Base thread_create F +Base thread_depress_abort_rpc F +Base thread_disable_pc_sampling F +Base thread_enable_pc_sampling F +Base thread_get_assignment F +Base thread_get_sampled_pcs F +Base thread_get_special_port F +Base thread_get_state F +Base thread_info F +Base thread_max_priority F +Base thread_policy F +Base thread_priority F +Base thread_resume F +Base thread_set_special_port F +Base thread_set_state F +Base thread_suspend F +Base thread_terminate F +Base thread_terminate_release F +Base thread_wire F +Base vm_allocate_contiguous F +Base vm_allocate_rpc F +Base vm_cache_statistics F +Base vm_copy F +Base vm_deallocate_rpc F +Base vm_inherit F +Base vm_machine_attribute F +Base vm_map_rpc F +Base vm_msync F +Base vm_object_sync F +Base vm_protect F +Base vm_read F +Base vm_region F +Base vm_region_create_proxy F +Base vm_set_default_memory_manager F +Base vm_statistics F +Base vm_wire F +Base vm_wire_all F +Base vm_write 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..055530f3 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libmvec.abilist @@ -0,0 +1,216 @@ +GLIBC_2.22 _ZGVbN2v_cos F +GLIBC_2.22 _ZGVbN2v_exp F +GLIBC_2.22 _ZGVbN2v_log F +GLIBC_2.22 _ZGVbN2v_sin F +GLIBC_2.22 _ZGVbN2vv_pow F +GLIBC_2.22 _ZGVbN2vvv_sincos F +GLIBC_2.22 _ZGVbN4v_cosf F +GLIBC_2.22 _ZGVbN4v_expf F +GLIBC_2.22 _ZGVbN4v_logf F +GLIBC_2.22 _ZGVbN4v_sinf F +GLIBC_2.22 _ZGVbN4vv_powf F +GLIBC_2.22 _ZGVbN4vvv_sincosf F +GLIBC_2.22 _ZGVcN4v_cos F +GLIBC_2.22 _ZGVcN4v_exp F +GLIBC_2.22 _ZGVcN4v_log F +GLIBC_2.22 _ZGVcN4v_sin F +GLIBC_2.22 _ZGVcN4vv_pow F +GLIBC_2.22 _ZGVcN4vvv_sincos F +GLIBC_2.22 _ZGVcN8v_cosf F +GLIBC_2.22 _ZGVcN8v_expf F +GLIBC_2.22 _ZGVcN8v_logf F +GLIBC_2.22 _ZGVcN8v_sinf F +GLIBC_2.22 _ZGVcN8vv_powf F +GLIBC_2.22 _ZGVcN8vvv_sincosf F +GLIBC_2.22 _ZGVdN4v_cos F +GLIBC_2.22 _ZGVdN4v_exp F +GLIBC_2.22 _ZGVdN4v_log F +GLIBC_2.22 _ZGVdN4v_sin F +GLIBC_2.22 _ZGVdN4vv_pow F +GLIBC_2.22 _ZGVdN4vvv_sincos F +GLIBC_2.22 _ZGVdN8v_cosf F +GLIBC_2.22 _ZGVdN8v_expf F +GLIBC_2.22 _ZGVdN8v_logf F +GLIBC_2.22 _ZGVdN8v_sinf F +GLIBC_2.22 _ZGVdN8vv_powf F +GLIBC_2.22 _ZGVdN8vvv_sincosf F +GLIBC_2.22 _ZGVeN16v_cosf F +GLIBC_2.22 _ZGVeN16v_expf F +GLIBC_2.22 _ZGVeN16v_logf F +GLIBC_2.22 _ZGVeN16v_sinf F +GLIBC_2.22 _ZGVeN16vv_powf F +GLIBC_2.22 _ZGVeN16vvv_sincosf F +GLIBC_2.22 _ZGVeN8v_cos F +GLIBC_2.22 _ZGVeN8v_exp F +GLIBC_2.22 _ZGVeN8v_log F +GLIBC_2.22 _ZGVeN8v_sin F +GLIBC_2.22 _ZGVeN8vv_pow F +GLIBC_2.22 _ZGVeN8vvv_sincos F +GLIBC_2.35 _ZGVbN2v_acos F +GLIBC_2.35 _ZGVbN2v_acosh F +GLIBC_2.35 _ZGVbN2v_asin F +GLIBC_2.35 _ZGVbN2v_asinh F +GLIBC_2.35 _ZGVbN2v_atan F +GLIBC_2.35 _ZGVbN2v_atanh F +GLIBC_2.35 _ZGVbN2v_cbrt F +GLIBC_2.35 _ZGVbN2v_cosh F +GLIBC_2.35 _ZGVbN2v_erf F +GLIBC_2.35 _ZGVbN2v_erfc F +GLIBC_2.35 _ZGVbN2v_exp10 F +GLIBC_2.35 _ZGVbN2v_exp2 F +GLIBC_2.35 _ZGVbN2v_expm1 F +GLIBC_2.35 _ZGVbN2v_log10 F +GLIBC_2.35 _ZGVbN2v_log1p F +GLIBC_2.35 _ZGVbN2v_log2 F +GLIBC_2.35 _ZGVbN2v_sinh F +GLIBC_2.35 _ZGVbN2v_tan F +GLIBC_2.35 _ZGVbN2v_tanh F +GLIBC_2.35 _ZGVbN2vv_atan2 F +GLIBC_2.35 _ZGVbN2vv_hypot F +GLIBC_2.35 _ZGVbN4v_acosf F +GLIBC_2.35 _ZGVbN4v_acoshf F +GLIBC_2.35 _ZGVbN4v_asinf F +GLIBC_2.35 _ZGVbN4v_asinhf F +GLIBC_2.35 _ZGVbN4v_atanf F +GLIBC_2.35 _ZGVbN4v_atanhf F +GLIBC_2.35 _ZGVbN4v_cbrtf F +GLIBC_2.35 _ZGVbN4v_coshf F +GLIBC_2.35 _ZGVbN4v_erfcf F +GLIBC_2.35 _ZGVbN4v_erff F +GLIBC_2.35 _ZGVbN4v_exp10f F +GLIBC_2.35 _ZGVbN4v_exp2f F +GLIBC_2.35 _ZGVbN4v_expm1f F +GLIBC_2.35 _ZGVbN4v_log10f F +GLIBC_2.35 _ZGVbN4v_log1pf F +GLIBC_2.35 _ZGVbN4v_log2f F +GLIBC_2.35 _ZGVbN4v_sinhf F +GLIBC_2.35 _ZGVbN4v_tanf F +GLIBC_2.35 _ZGVbN4v_tanhf F +GLIBC_2.35 _ZGVbN4vv_atan2f F +GLIBC_2.35 _ZGVbN4vv_hypotf F +GLIBC_2.35 _ZGVcN4v_acos F +GLIBC_2.35 _ZGVcN4v_acosh F +GLIBC_2.35 _ZGVcN4v_asin F +GLIBC_2.35 _ZGVcN4v_asinh F +GLIBC_2.35 _ZGVcN4v_atan F +GLIBC_2.35 _ZGVcN4v_atanh F +GLIBC_2.35 _ZGVcN4v_cbrt F +GLIBC_2.35 _ZGVcN4v_cosh F +GLIBC_2.35 _ZGVcN4v_erf F +GLIBC_2.35 _ZGVcN4v_erfc F +GLIBC_2.35 _ZGVcN4v_exp10 F +GLIBC_2.35 _ZGVcN4v_exp2 F +GLIBC_2.35 _ZGVcN4v_expm1 F +GLIBC_2.35 _ZGVcN4v_log10 F +GLIBC_2.35 _ZGVcN4v_log1p F +GLIBC_2.35 _ZGVcN4v_log2 F +GLIBC_2.35 _ZGVcN4v_sinh F +GLIBC_2.35 _ZGVcN4v_tan F +GLIBC_2.35 _ZGVcN4v_tanh F +GLIBC_2.35 _ZGVcN4vv_atan2 F +GLIBC_2.35 _ZGVcN4vv_hypot F +GLIBC_2.35 _ZGVcN8v_acosf F +GLIBC_2.35 _ZGVcN8v_acoshf F +GLIBC_2.35 _ZGVcN8v_asinf F +GLIBC_2.35 _ZGVcN8v_asinhf F +GLIBC_2.35 _ZGVcN8v_atanf F +GLIBC_2.35 _ZGVcN8v_atanhf F +GLIBC_2.35 _ZGVcN8v_cbrtf F +GLIBC_2.35 _ZGVcN8v_coshf F +GLIBC_2.35 _ZGVcN8v_erfcf F +GLIBC_2.35 _ZGVcN8v_erff F +GLIBC_2.35 _ZGVcN8v_exp10f F +GLIBC_2.35 _ZGVcN8v_exp2f F +GLIBC_2.35 _ZGVcN8v_expm1f F +GLIBC_2.35 _ZGVcN8v_log10f F +GLIBC_2.35 _ZGVcN8v_log1pf F +GLIBC_2.35 _ZGVcN8v_log2f F +GLIBC_2.35 _ZGVcN8v_sinhf F +GLIBC_2.35 _ZGVcN8v_tanf F +GLIBC_2.35 _ZGVcN8v_tanhf F +GLIBC_2.35 _ZGVcN8vv_atan2f F +GLIBC_2.35 _ZGVcN8vv_hypotf F +GLIBC_2.35 _ZGVdN4v_acos F +GLIBC_2.35 _ZGVdN4v_acosh F +GLIBC_2.35 _ZGVdN4v_asin F +GLIBC_2.35 _ZGVdN4v_asinh F +GLIBC_2.35 _ZGVdN4v_atan F +GLIBC_2.35 _ZGVdN4v_atanh F +GLIBC_2.35 _ZGVdN4v_cbrt F +GLIBC_2.35 _ZGVdN4v_cosh F +GLIBC_2.35 _ZGVdN4v_erf F +GLIBC_2.35 _ZGVdN4v_erfc F +GLIBC_2.35 _ZGVdN4v_exp10 F +GLIBC_2.35 _ZGVdN4v_exp2 F +GLIBC_2.35 _ZGVdN4v_expm1 F +GLIBC_2.35 _ZGVdN4v_log10 F +GLIBC_2.35 _ZGVdN4v_log1p F +GLIBC_2.35 _ZGVdN4v_log2 F +GLIBC_2.35 _ZGVdN4v_sinh F +GLIBC_2.35 _ZGVdN4v_tan F +GLIBC_2.35 _ZGVdN4v_tanh F +GLIBC_2.35 _ZGVdN4vv_atan2 F +GLIBC_2.35 _ZGVdN4vv_hypot F +GLIBC_2.35 _ZGVdN8v_acosf F +GLIBC_2.35 _ZGVdN8v_acoshf F +GLIBC_2.35 _ZGVdN8v_asinf F +GLIBC_2.35 _ZGVdN8v_asinhf F +GLIBC_2.35 _ZGVdN8v_atanf F +GLIBC_2.35 _ZGVdN8v_atanhf F +GLIBC_2.35 _ZGVdN8v_cbrtf F +GLIBC_2.35 _ZGVdN8v_coshf F +GLIBC_2.35 _ZGVdN8v_erfcf F +GLIBC_2.35 _ZGVdN8v_erff F +GLIBC_2.35 _ZGVdN8v_exp10f F +GLIBC_2.35 _ZGVdN8v_exp2f F +GLIBC_2.35 _ZGVdN8v_expm1f F +GLIBC_2.35 _ZGVdN8v_log10f F +GLIBC_2.35 _ZGVdN8v_log1pf F +GLIBC_2.35 _ZGVdN8v_log2f F +GLIBC_2.35 _ZGVdN8v_sinhf F +GLIBC_2.35 _ZGVdN8v_tanf F +GLIBC_2.35 _ZGVdN8v_tanhf F +GLIBC_2.35 _ZGVdN8vv_atan2f F +GLIBC_2.35 _ZGVdN8vv_hypotf F +GLIBC_2.35 _ZGVeN16v_acosf F +GLIBC_2.35 _ZGVeN16v_acoshf F +GLIBC_2.35 _ZGVeN16v_asinf F +GLIBC_2.35 _ZGVeN16v_asinhf F +GLIBC_2.35 _ZGVeN16v_atanf F +GLIBC_2.35 _ZGVeN16v_atanhf F +GLIBC_2.35 _ZGVeN16v_cbrtf F +GLIBC_2.35 _ZGVeN16v_coshf F +GLIBC_2.35 _ZGVeN16v_erfcf F +GLIBC_2.35 _ZGVeN16v_erff F +GLIBC_2.35 _ZGVeN16v_exp10f F +GLIBC_2.35 _ZGVeN16v_exp2f F +GLIBC_2.35 _ZGVeN16v_expm1f F +GLIBC_2.35 _ZGVeN16v_log10f F +GLIBC_2.35 _ZGVeN16v_log1pf F +GLIBC_2.35 _ZGVeN16v_log2f F +GLIBC_2.35 _ZGVeN16v_sinhf F +GLIBC_2.35 _ZGVeN16v_tanf F +GLIBC_2.35 _ZGVeN16v_tanhf F +GLIBC_2.35 _ZGVeN16vv_atan2f F +GLIBC_2.35 _ZGVeN16vv_hypotf F +GLIBC_2.35 _ZGVeN8v_acos F +GLIBC_2.35 _ZGVeN8v_acosh F +GLIBC_2.35 _ZGVeN8v_asin F +GLIBC_2.35 _ZGVeN8v_asinh F +GLIBC_2.35 _ZGVeN8v_atan F +GLIBC_2.35 _ZGVeN8v_atanh F +GLIBC_2.35 _ZGVeN8v_cbrt F +GLIBC_2.35 _ZGVeN8v_cosh F +GLIBC_2.35 _ZGVeN8v_erf F +GLIBC_2.35 _ZGVeN8v_erfc F +GLIBC_2.35 _ZGVeN8v_exp10 F +GLIBC_2.35 _ZGVeN8v_exp2 F +GLIBC_2.35 _ZGVeN8v_expm1 F +GLIBC_2.35 _ZGVeN8v_log10 F +GLIBC_2.35 _ZGVeN8v_log1p F +GLIBC_2.35 _ZGVeN8v_log2 F +GLIBC_2.35 _ZGVeN8v_sinh F +GLIBC_2.35 _ZGVeN8v_tan F +GLIBC_2.35 _ZGVeN8v_tanh F +GLIBC_2.35 _ZGVeN8vv_atan2 F +GLIBC_2.35 _ZGVeN8vv_hypot F diff --git a/sysdeps/mach/hurd/x86_64/libnsl.abilist b/sysdeps/mach/hurd/x86_64/libnsl.abilist new file mode 100644 index 00000000..c3979162 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libnsl.abilist @@ -0,0 +1,121 @@ +GLIBC_2.2.6 __free_fdresult F +GLIBC_2.2.6 __nis_default_access F +GLIBC_2.2.6 __nis_default_group F +GLIBC_2.2.6 __nis_default_owner F +GLIBC_2.2.6 __nis_default_ttl F +GLIBC_2.2.6 __nis_finddirectory F +GLIBC_2.2.6 __nis_hash F +GLIBC_2.2.6 __nisbind_connect F +GLIBC_2.2.6 __nisbind_create F +GLIBC_2.2.6 __nisbind_destroy F +GLIBC_2.2.6 __nisbind_next F +GLIBC_2.2.6 __yp_check F +GLIBC_2.2.6 nis_add F +GLIBC_2.2.6 nis_add_entry F +GLIBC_2.2.6 nis_addmember F +GLIBC_2.2.6 nis_checkpoint F +GLIBC_2.2.6 nis_clone_directory F +GLIBC_2.2.6 nis_clone_object F +GLIBC_2.2.6 nis_clone_result F +GLIBC_2.2.6 nis_creategroup F +GLIBC_2.2.6 nis_destroy_object F +GLIBC_2.2.6 nis_destroygroup F +GLIBC_2.2.6 nis_dir_cmp F +GLIBC_2.2.6 nis_domain_of F +GLIBC_2.2.6 nis_domain_of_r F +GLIBC_2.2.6 nis_first_entry F +GLIBC_2.2.6 nis_free_directory F +GLIBC_2.2.6 nis_free_object F +GLIBC_2.2.6 nis_free_request F +GLIBC_2.2.6 nis_freenames F +GLIBC_2.2.6 nis_freeresult F +GLIBC_2.2.6 nis_freeservlist F +GLIBC_2.2.6 nis_freetags F +GLIBC_2.2.6 nis_getnames F +GLIBC_2.2.6 nis_getservlist F +GLIBC_2.2.6 nis_ismember F +GLIBC_2.2.6 nis_leaf_of F +GLIBC_2.2.6 nis_leaf_of_r F +GLIBC_2.2.6 nis_lerror F +GLIBC_2.2.6 nis_list F +GLIBC_2.2.6 nis_local_directory F +GLIBC_2.2.6 nis_local_group F +GLIBC_2.2.6 nis_local_host F +GLIBC_2.2.6 nis_local_principal F +GLIBC_2.2.6 nis_lookup F +GLIBC_2.2.6 nis_mkdir F +GLIBC_2.2.6 nis_modify F +GLIBC_2.2.6 nis_modify_entry F +GLIBC_2.2.6 nis_name_of F +GLIBC_2.2.6 nis_name_of_r F +GLIBC_2.2.6 nis_next_entry F +GLIBC_2.2.6 nis_perror F +GLIBC_2.2.6 nis_ping F +GLIBC_2.2.6 nis_print_directory F +GLIBC_2.2.6 nis_print_entry F +GLIBC_2.2.6 nis_print_group F +GLIBC_2.2.6 nis_print_group_entry F +GLIBC_2.2.6 nis_print_link F +GLIBC_2.2.6 nis_print_object F +GLIBC_2.2.6 nis_print_result F +GLIBC_2.2.6 nis_print_rights F +GLIBC_2.2.6 nis_print_table F +GLIBC_2.2.6 nis_read_obj F +GLIBC_2.2.6 nis_remove F +GLIBC_2.2.6 nis_remove_entry F +GLIBC_2.2.6 nis_removemember F +GLIBC_2.2.6 nis_rmdir F +GLIBC_2.2.6 nis_servstate F +GLIBC_2.2.6 nis_sperrno F +GLIBC_2.2.6 nis_sperror F +GLIBC_2.2.6 nis_sperror_r F +GLIBC_2.2.6 nis_stats F +GLIBC_2.2.6 nis_verifygroup F +GLIBC_2.2.6 nis_write_obj F +GLIBC_2.2.6 readColdStartFile F +GLIBC_2.2.6 writeColdStartFile F +GLIBC_2.2.6 xdr_cback_data F +GLIBC_2.2.6 xdr_domainname F +GLIBC_2.2.6 xdr_keydat F +GLIBC_2.2.6 xdr_mapname F +GLIBC_2.2.6 xdr_obj_p F +GLIBC_2.2.6 xdr_peername F +GLIBC_2.2.6 xdr_valdat F +GLIBC_2.2.6 xdr_yp_buf F +GLIBC_2.2.6 xdr_ypall F +GLIBC_2.2.6 xdr_ypbind_binding F +GLIBC_2.2.6 xdr_ypbind_resp F +GLIBC_2.2.6 xdr_ypbind_resptype F +GLIBC_2.2.6 xdr_ypbind_setdom F +GLIBC_2.2.6 xdr_ypdelete_args F +GLIBC_2.2.6 xdr_ypmap_parms F +GLIBC_2.2.6 xdr_ypmaplist F +GLIBC_2.2.6 xdr_yppush_status F +GLIBC_2.2.6 xdr_yppushresp_xfr F +GLIBC_2.2.6 xdr_ypreq_key F +GLIBC_2.2.6 xdr_ypreq_nokey F +GLIBC_2.2.6 xdr_ypreq_xfr F +GLIBC_2.2.6 xdr_ypresp_all F +GLIBC_2.2.6 xdr_ypresp_key_val F +GLIBC_2.2.6 xdr_ypresp_maplist F +GLIBC_2.2.6 xdr_ypresp_master F +GLIBC_2.2.6 xdr_ypresp_order F +GLIBC_2.2.6 xdr_ypresp_val F +GLIBC_2.2.6 xdr_ypresp_xfr F +GLIBC_2.2.6 xdr_ypstat F +GLIBC_2.2.6 xdr_ypupdate_args F +GLIBC_2.2.6 xdr_ypxfrstat F +GLIBC_2.2.6 yp_all F +GLIBC_2.2.6 yp_bind F +GLIBC_2.2.6 yp_first F +GLIBC_2.2.6 yp_get_default_domain F +GLIBC_2.2.6 yp_maplist F +GLIBC_2.2.6 yp_master F +GLIBC_2.2.6 yp_match F +GLIBC_2.2.6 yp_next F +GLIBC_2.2.6 yp_order F +GLIBC_2.2.6 yp_unbind F +GLIBC_2.2.6 yp_update F +GLIBC_2.2.6 ypbinderr_string F +GLIBC_2.2.6 yperr_string F +GLIBC_2.2.6 ypprot_err 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..b9c9b75c --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libpthread.abilist @@ -0,0 +1,178 @@ +GLIBC_2.12 __mutex_lock_solid F +GLIBC_2.12 __mutex_unlock_solid F +GLIBC_2.12 __pthread_get_cleanup_stack F +GLIBC_2.12 __pthread_key_create F +GLIBC_2.12 __pthread_kill F +GLIBC_2.12 __pthread_mutex_transfer_np F +GLIBC_2.12 __pthread_self F +GLIBC_2.12 __pthread_spin_destroy F +GLIBC_2.12 __pthread_spin_init F +GLIBC_2.12 __pthread_spin_lock F +GLIBC_2.12 __pthread_spin_trylock F +GLIBC_2.12 __pthread_spin_unlock F +GLIBC_2.12 _cthreads_flockfile F +GLIBC_2.12 _cthreads_ftrylockfile F +GLIBC_2.12 _cthreads_funlockfile F +GLIBC_2.12 _pthread_spin_lock F +GLIBC_2.12 cthread_detach F +GLIBC_2.12 cthread_fork F +GLIBC_2.12 cthread_getspecific F +GLIBC_2.12 cthread_keycreate F +GLIBC_2.12 cthread_setspecific F +GLIBC_2.12 flockfile F +GLIBC_2.12 ftrylockfile F +GLIBC_2.12 funlockfile F +GLIBC_2.12 pthread_atfork F +GLIBC_2.12 pthread_attr_destroy F +GLIBC_2.12 pthread_attr_getdetachstate F +GLIBC_2.12 pthread_attr_getguardsize F +GLIBC_2.12 pthread_attr_getinheritsched F +GLIBC_2.12 pthread_attr_getschedparam F +GLIBC_2.12 pthread_attr_getschedpolicy F +GLIBC_2.12 pthread_attr_getscope F +GLIBC_2.12 pthread_attr_getstack F +GLIBC_2.12 pthread_attr_getstackaddr F +GLIBC_2.12 pthread_attr_getstacksize F +GLIBC_2.12 pthread_attr_init F +GLIBC_2.12 pthread_attr_setdetachstate F +GLIBC_2.12 pthread_attr_setguardsize F +GLIBC_2.12 pthread_attr_setinheritsched F +GLIBC_2.12 pthread_attr_setschedparam F +GLIBC_2.12 pthread_attr_setschedpolicy F +GLIBC_2.12 pthread_attr_setscope F +GLIBC_2.12 pthread_attr_setstack F +GLIBC_2.12 pthread_attr_setstackaddr F +GLIBC_2.12 pthread_attr_setstacksize F +GLIBC_2.12 pthread_barrier_destroy F +GLIBC_2.12 pthread_barrier_init F +GLIBC_2.12 pthread_barrier_wait F +GLIBC_2.12 pthread_barrierattr_destroy F +GLIBC_2.12 pthread_barrierattr_getpshared F +GLIBC_2.12 pthread_barrierattr_init F +GLIBC_2.12 pthread_barrierattr_setpshared F +GLIBC_2.12 pthread_cancel F +GLIBC_2.12 pthread_cond_broadcast F +GLIBC_2.12 pthread_cond_destroy F +GLIBC_2.12 pthread_cond_init F +GLIBC_2.12 pthread_cond_signal F +GLIBC_2.12 pthread_cond_timedwait F +GLIBC_2.12 pthread_cond_wait F +GLIBC_2.12 pthread_condattr_destroy F +GLIBC_2.12 pthread_condattr_getclock F +GLIBC_2.12 pthread_condattr_getpshared F +GLIBC_2.12 pthread_condattr_init F +GLIBC_2.12 pthread_condattr_setclock F +GLIBC_2.12 pthread_condattr_setpshared F +GLIBC_2.12 pthread_create F +GLIBC_2.12 pthread_detach F +GLIBC_2.12 pthread_equal F +GLIBC_2.12 pthread_exit F +GLIBC_2.12 pthread_getattr_np F +GLIBC_2.12 pthread_getconcurrency F +GLIBC_2.12 pthread_getcpuclockid F +GLIBC_2.12 pthread_getschedparam F +GLIBC_2.12 pthread_getspecific F +GLIBC_2.12 pthread_join F +GLIBC_2.12 pthread_key_create F +GLIBC_2.12 pthread_key_delete F +GLIBC_2.12 pthread_kill F +GLIBC_2.12 pthread_mutex_destroy F +GLIBC_2.12 pthread_mutex_getprioceiling F +GLIBC_2.12 pthread_mutex_init F +GLIBC_2.12 pthread_mutex_lock F +GLIBC_2.12 pthread_mutex_setprioceiling F +GLIBC_2.12 pthread_mutex_timedlock F +GLIBC_2.12 pthread_mutex_transfer_np F +GLIBC_2.12 pthread_mutex_trylock F +GLIBC_2.12 pthread_mutex_unlock F +GLIBC_2.12 pthread_mutexattr_destroy F +GLIBC_2.12 pthread_mutexattr_getprioceiling F +GLIBC_2.12 pthread_mutexattr_getprotocol F +GLIBC_2.12 pthread_mutexattr_getpshared F +GLIBC_2.12 pthread_mutexattr_gettype F +GLIBC_2.12 pthread_mutexattr_init F +GLIBC_2.12 pthread_mutexattr_setprioceiling F +GLIBC_2.12 pthread_mutexattr_setprotocol F +GLIBC_2.12 pthread_mutexattr_setpshared F +GLIBC_2.12 pthread_mutexattr_settype F +GLIBC_2.12 pthread_once F +GLIBC_2.12 pthread_rwlock_destroy F +GLIBC_2.12 pthread_rwlock_init F +GLIBC_2.12 pthread_rwlock_rdlock F +GLIBC_2.12 pthread_rwlock_timedrdlock F +GLIBC_2.12 pthread_rwlock_timedwrlock F +GLIBC_2.12 pthread_rwlock_tryrdlock F +GLIBC_2.12 pthread_rwlock_trywrlock F +GLIBC_2.12 pthread_rwlock_unlock F +GLIBC_2.12 pthread_rwlock_wrlock F +GLIBC_2.12 pthread_rwlockattr_destroy F +GLIBC_2.12 pthread_rwlockattr_getpshared F +GLIBC_2.12 pthread_rwlockattr_init F +GLIBC_2.12 pthread_rwlockattr_setpshared F +GLIBC_2.12 pthread_self F +GLIBC_2.12 pthread_setcancelstate F +GLIBC_2.12 pthread_setcanceltype F +GLIBC_2.12 pthread_setconcurrency F +GLIBC_2.12 pthread_setschedparam F +GLIBC_2.12 pthread_setschedprio F +GLIBC_2.12 pthread_setspecific F +GLIBC_2.12 pthread_sigmask F +GLIBC_2.12 pthread_spin_destroy F +GLIBC_2.12 pthread_spin_init F +GLIBC_2.12 pthread_spin_lock F +GLIBC_2.12 pthread_spin_trylock F +GLIBC_2.12 pthread_spin_unlock F +GLIBC_2.12 pthread_testcancel F +GLIBC_2.12 pthread_yield F +GLIBC_2.12 sem_close F +GLIBC_2.12 sem_destroy F +GLIBC_2.12 sem_getvalue F +GLIBC_2.12 sem_init F +GLIBC_2.12 sem_open F +GLIBC_2.12 sem_post F +GLIBC_2.12 sem_timedwait F +GLIBC_2.12 sem_trywait F +GLIBC_2.12 sem_unlink F +GLIBC_2.12 sem_wait F +GLIBC_2.2.6 _IO_flockfile F +GLIBC_2.2.6 _IO_ftrylockfile F +GLIBC_2.2.6 _IO_funlockfile F +GLIBC_2.2.6 __errno_location F +GLIBC_2.2.6 __h_errno_location F +GLIBC_2.21 pthread_hurd_cond_timedwait_np F +GLIBC_2.21 pthread_hurd_cond_wait_np F +GLIBC_2.32 call_once F +GLIBC_2.32 cnd_broadcast F +GLIBC_2.32 cnd_destroy F +GLIBC_2.32 cnd_init F +GLIBC_2.32 cnd_signal F +GLIBC_2.32 cnd_timedwait F +GLIBC_2.32 cnd_wait F +GLIBC_2.32 mtx_destroy F +GLIBC_2.32 mtx_init F +GLIBC_2.32 mtx_lock F +GLIBC_2.32 mtx_timedlock F +GLIBC_2.32 mtx_trylock F +GLIBC_2.32 mtx_unlock F +GLIBC_2.32 pthread_clockjoin_np F +GLIBC_2.32 pthread_cond_clockwait F +GLIBC_2.32 pthread_mutex_clocklock F +GLIBC_2.32 pthread_mutex_consistent F +GLIBC_2.32 pthread_mutex_consistent_np F +GLIBC_2.32 pthread_mutexattr_getrobust F +GLIBC_2.32 pthread_mutexattr_getrobust_np F +GLIBC_2.32 pthread_mutexattr_setrobust F +GLIBC_2.32 pthread_mutexattr_setrobust_np F +GLIBC_2.32 pthread_rwlock_clockrdlock F +GLIBC_2.32 pthread_rwlock_clockwrlock F +GLIBC_2.32 pthread_timedjoin_np F +GLIBC_2.32 pthread_tryjoin_np F +GLIBC_2.32 sem_clockwait F +GLIBC_2.32 thrd_create F +GLIBC_2.32 thrd_detach F +GLIBC_2.32 thrd_exit F +GLIBC_2.32 thrd_join F +GLIBC_2.32 tss_create F +GLIBC_2.32 tss_delete F +GLIBC_2.32 tss_get F +GLIBC_2.32 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..c6992bcb --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libresolv.abilist @@ -0,0 +1,67 @@ +GLIBC_2.2.6 __b64_ntop F +GLIBC_2.2.6 __b64_pton F +GLIBC_2.2.6 __dn_count_labels F +GLIBC_2.2.6 __fp_nquery F +GLIBC_2.2.6 __fp_query F +GLIBC_2.2.6 __fp_resstat F +GLIBC_2.2.6 __hostalias F +GLIBC_2.2.6 __loc_aton F +GLIBC_2.2.6 __loc_ntoa F +GLIBC_2.2.6 __p_cdname F +GLIBC_2.2.6 __p_cdnname F +GLIBC_2.2.6 __p_class F +GLIBC_2.2.6 __p_class_syms D 0xa8 +GLIBC_2.2.6 __p_fqname F +GLIBC_2.2.6 __p_fqnname F +GLIBC_2.2.6 __p_option F +GLIBC_2.2.6 __p_query F +GLIBC_2.2.6 __p_secstodate F +GLIBC_2.2.6 __p_time F +GLIBC_2.2.6 __p_type F +GLIBC_2.2.6 __p_type_syms D 0x450 +GLIBC_2.2.6 __putlong F +GLIBC_2.2.6 __putshort F +GLIBC_2.2.6 __res_close F +GLIBC_2.2.6 __res_hostalias F +GLIBC_2.2.6 __res_isourserver F +GLIBC_2.2.6 __res_nameinquery F +GLIBC_2.2.6 __res_queriesmatch F +GLIBC_2.2.6 __sym_ntop F +GLIBC_2.2.6 __sym_ntos F +GLIBC_2.2.6 __sym_ston F +GLIBC_2.2.6 _gethtbyaddr F +GLIBC_2.2.6 _gethtbyname F +GLIBC_2.2.6 _gethtbyname2 F +GLIBC_2.2.6 _gethtent F +GLIBC_2.2.6 _getlong F +GLIBC_2.2.6 _getshort F +GLIBC_2.2.6 _res_opcodes D 0x80 +GLIBC_2.2.6 _sethtent F +GLIBC_2.2.6 inet_net_ntop F +GLIBC_2.2.6 inet_net_pton F +GLIBC_2.2.6 inet_neta F +GLIBC_2.2.6 res_gethostbyaddr F +GLIBC_2.2.6 res_gethostbyname F +GLIBC_2.2.6 res_gethostbyname2 F +GLIBC_2.2.6 res_send_setqhook F +GLIBC_2.2.6 res_send_setrhook F +GLIBC_2.3.2 __p_rcode F +GLIBC_2.9 ns_datetosecs F +GLIBC_2.9 ns_format_ttl F +GLIBC_2.9 ns_get16 F +GLIBC_2.9 ns_get32 F +GLIBC_2.9 ns_initparse F +GLIBC_2.9 ns_makecanon F +GLIBC_2.9 ns_msg_getflag F +GLIBC_2.9 ns_name_ntol F +GLIBC_2.9 ns_name_rollback F +GLIBC_2.9 ns_parse_ttl F +GLIBC_2.9 ns_parserr F +GLIBC_2.9 ns_put16 F +GLIBC_2.9 ns_put32 F +GLIBC_2.9 ns_samedomain F +GLIBC_2.9 ns_samename F +GLIBC_2.9 ns_skiprr F +GLIBC_2.9 ns_sprintrr F +GLIBC_2.9 ns_sprintrrf F +GLIBC_2.9 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..022e10b8 --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/librt.abilist @@ -0,0 +1,35 @@ +GLIBC_2.2.6 aio_cancel F +GLIBC_2.2.6 aio_cancel64 F +GLIBC_2.2.6 aio_error F +GLIBC_2.2.6 aio_error64 F +GLIBC_2.2.6 aio_fsync F +GLIBC_2.2.6 aio_fsync64 F +GLIBC_2.2.6 aio_init F +GLIBC_2.2.6 aio_read F +GLIBC_2.2.6 aio_read64 F +GLIBC_2.2.6 aio_return F +GLIBC_2.2.6 aio_return64 F +GLIBC_2.2.6 aio_suspend F +GLIBC_2.2.6 aio_suspend64 F +GLIBC_2.2.6 aio_write F +GLIBC_2.2.6 aio_write64 F +GLIBC_2.2.6 lio_listio F +GLIBC_2.2.6 lio_listio64 F +GLIBC_2.2.6 timer_create F +GLIBC_2.2.6 timer_delete F +GLIBC_2.2.6 timer_getoverrun F +GLIBC_2.2.6 timer_gettime F +GLIBC_2.2.6 timer_settime F +GLIBC_2.3.4 mq_close F +GLIBC_2.3.4 mq_getattr F +GLIBC_2.3.4 mq_notify F +GLIBC_2.3.4 mq_open F +GLIBC_2.3.4 mq_receive F +GLIBC_2.3.4 mq_send F +GLIBC_2.3.4 mq_setattr F +GLIBC_2.3.4 mq_timedreceive F +GLIBC_2.3.4 mq_timedsend F +GLIBC_2.3.4 mq_unlink F +GLIBC_2.4 lio_listio F +GLIBC_2.4 lio_listio64 F +GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/mach/hurd/x86_64/libutil.abilist b/sysdeps/mach/hurd/x86_64/libutil.abilist new file mode 100644 index 00000000..0196d40e --- /dev/null +++ b/sysdeps/mach/hurd/x86_64/libutil.abilist @@ -0,0 +1 @@ +GLIBC_2.2.6 __libutil_version_placeholder F