From patchwork Wed Jan 3 17:14:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Bugaev X-Patchwork-Id: 83238 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 840EC3857C50 for ; Wed, 3 Jan 2024 17:16:30 +0000 (GMT) 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 B562E38582B3 for ; Wed, 3 Jan 2024 17:15:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B562E38582B3 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B562E38582B3 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704302114; cv=none; b=CO2FIUXA3exzO7Ansq0TzumrYBFe3ZCZqUK5AX/NmYHQqdOz0tA4cBUgQywZz6kIhCGCdIHKLVShk7U7/Gw9aXapwFOQvE+kwJOggtuwPa9wSBGjaW6iI45SxOwlpHzqqzOe+DY5VIiHBQ54m3uan01+HId6HdTpMIB848iu0vQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704302114; c=relaxed/simple; bh=2NmCbKIBq7cNBwA58tMseFgUGQ6lbQ4k9bJsZeZ6kEM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=BbQJLBNIeW4T9Do+jsL5G0xzJeTIo+LW8WYem87YrWSKt02/bNCix9SHECnT3Br+c3IfwtkfZQkHIA0/xjMtxR9r2qJ36II58EJk6+yMCRprycA/saDhAw0+qp9JQz3S704Sw4kodIk2s6XqDh15ElBkd/T/qKXMRfBbv5cLLv0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-50e7b51b0ceso636216e87.1 for ; Wed, 03 Jan 2024 09:15:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704302107; x=1704906907; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=hJB9C5SuvffxoIPxjQbt9biHJtG37wtY1eQ3qOLb+PA=; b=nB3RA6IUXoMTYuroIA+aMu1mnUN8QV53utHLhgaOzobEK8OwwmFmdgPc8zeuyEbqXh pyKlWEk8x7HK70ll3k+/R6qUBDyX5gHU1Lf6KytcUPe0RwKoKyPtQOkgB2BopJvOrWgU CyZQwce/dhZjKYgUUO2MwsmQn3nzd1nQKGrlbiSehFK6KyajSa6j9ESyTX+FCVc+pL5U Xn/dCQpYlCx2b1SaGKVi53Dr+CCY99nh7ViPNqeJ5Y89Ouo69CCORt9OFW5TvcbG0MJM Ri3W1Rk9q1KVjYauwmUY5pemk6LyCZcf/0YeL3QMKTg3MqgTONYLQMTOTruNeqEiScIc yotg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704302107; x=1704906907; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hJB9C5SuvffxoIPxjQbt9biHJtG37wtY1eQ3qOLb+PA=; b=xQFD/auuF7r4jebfHWn3qmY3XGiSFsdkjh83WcW7RuiFwyv78wE+pz2W3t8aHUjwa0 0C8G0kLoAw7uRWj4RWtBCNxy06wF1m9u7hsPZNbaYDC7RKEagbU5par2Tx+Da5KFYHGA Kfh3lwU226RKUNdNtL9IWjdj2O84fF/S6g8/5xfotv30TJb22K9e5JQv7vBUsET2Jd7T xAzd3FxbzMWjdbfQpq7VnvH59lkfEoMxQ7b+tX07hHkZcG/ZfF22X08k9VUzWQpT7ZLa fxy7kNmkUJpX0hE8IX1dodA4bFs01489yW6R9lEiETN5Ra11oTWVLVdjJWO3utRBMNIb JHeA== X-Gm-Message-State: AOJu0YxqvFGN/jbj0VMD2cyDUE3QVsO8/FOwVXgf2SiNfGczT1PhPSHX Epv7nYYsruJoRc07ri5WSMIQAhIdrRY= X-Google-Smtp-Source: AGHT+IHXJSRLzC6D7OzUShKq/idBbXeQ2xFBeb33i7TxUMd54XrXAbRjFYqG5se0gKsXNDUfDoSNNg== X-Received: by 2002:ac2:4a8c:0:b0:50e:61a9:87e0 with SMTP id l12-20020ac24a8c000000b0050e61a987e0mr764835lfp.2.1704302107242; Wed, 03 Jan 2024 09:15:07 -0800 (PST) Received: from surface-pro-6.. ([2a00:1370:818c:b32f:ebdc:fd0:376b:8006]) by smtp.gmail.com with ESMTPSA id y23-20020a196417000000b0050e6d84d177sm3546068lfb.279.2024.01.03.09.15.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jan 2024 09:15:06 -0800 (PST) From: Sergey Bugaev To: libc-alpha@sourceware.org, bug-hurd@gnu.org Subject: [RFC PATCH 03/23] Allow glibc to be compiled without EXEC_PAGESIZE Date: Wed, 3 Jan 2024 20:14:36 +0300 Message-ID: <20240103171502.1358371-4-bugaevc@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240103171502.1358371-1-bugaevc@gmail.com> References: <20240103171502.1358371-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, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org We would like to avoid statically defining any specific page size on aarch64-gnu, and instead make sure that everything uses the dynamic page size, available via vm_page_size and GLRO(dl_pagesize). There are currently a few places in glibc that require EXEC_PAGESIZE to be defined. Per Roland's suggestion [0], drop the static GLRO(dl_pagesize) initializers (for now, only if EXEC_PAGESIZE is not defined), and don't require EXEC_PAGESIZE definition for libio to enable mmap usage. [0]: https://mail.gnu.org/archive/html/bug-hurd/2011-10/msg00035.html Signed-off-by: Sergey Bugaev --- I opted to play it safe and only disable the static GLRO(dl_pagesize) initializers when EXEC_PAGESIZE is not defined (i.e. on aarch64-gnu). I can change this to be unconditional if that's considered OK. elf/dl-support.c | 6 +++++- elf/rtld.c | 2 ++ libio/libioP.h | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/elf/dl-support.c b/elf/dl-support.c index 2f502c8b..6375dc95 100644 --- a/elf/dl-support.c +++ b/elf/dl-support.c @@ -135,7 +135,11 @@ void *_dl_random; #include #include -size_t _dl_pagesize = EXEC_PAGESIZE; +size_t _dl_pagesize +#ifdef EXEC_PAGESIZE + = EXEC_PAGESIZE +#endif +; size_t _dl_minsigstacksize = CONSTANT_MINSIGSTKSZ; diff --git a/elf/rtld.c b/elf/rtld.c index 4f494b79..98b042c0 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -358,7 +358,9 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = ._dl_debug_fd = STDERR_FILENO, ._dl_lazy = 1, ._dl_fpu_control = _FPU_DEFAULT, +#ifdef EXEC_PAGESIZE ._dl_pagesize = EXEC_PAGESIZE, +#endif ._dl_inhibit_cache = 0, ._dl_profile_output = "/var/tmp", diff --git a/libio/libioP.h b/libio/libioP.h index 1af287b1..1a7f547e 100644 --- a/libio/libioP.h +++ b/libio/libioP.h @@ -852,7 +852,7 @@ extern off64_t _IO_seekpos_unlocked (FILE *, off64_t, int) # define MAP_ANONYMOUS MAP_ANON # endif -# if !defined(MAP_ANONYMOUS) || !defined(EXEC_PAGESIZE) +# if !defined(MAP_ANONYMOUS) # undef _G_HAVE_MMAP # define _G_HAVE_MMAP 0 # endif