From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS3215 2.6.0.0/16 X-Spam-Status: No, score=-4.2 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 3E1261F8C6 for ; Tue, 6 Jul 2021 15:10:56 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6752F388F03B for ; Tue, 6 Jul 2021 15:10:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6752F388F03B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1625584254; bh=4R0N/hHFBNGY14Bz5EVltkPRFZ+l94KUou/SMiEt7EQ=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=bCBR7E21V7Zf4RJl6iKQ1uw6g1dLZYuZ+NMp1egWOUQZr/SR8WIavX9FyysNus86n oqNqeIJWBP63pF4voosnJ0Q5pfRdIUZXEh26gxMjrLe25jbSgOHtYTyQe1NroFcKLT 4r9o40PexCbx0Gj1hxKaJqLb/JAdq/XEsEVHehxg= Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) by sourceware.org (Postfix) with ESMTPS id E4D85388F010 for ; Tue, 6 Jul 2021 14:58:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E4D85388F010 Received: by mail-pg1-x52a.google.com with SMTP id h4so21632870pgp.5 for ; Tue, 06 Jul 2021 07:58:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=4R0N/hHFBNGY14Bz5EVltkPRFZ+l94KUou/SMiEt7EQ=; b=fwwrMHosZbBSBT+AtwbFyw2PAH2xFI3/QYdacf4GqHudDu/S1fEuaffAuSy1mGQKtW B9jFf7xfHan364gUPsgFVywFQ5R7UX6AwIQ1kTSb54zkn3MVTq42ft12zFlsHSk+0y3J ZiW5g3dmH1QSF5PDO3ElMR05eVFRk6zpiVNjl5e8WjYL4k7/TX7Fvj+fTmpCC7Nofj1r xzJDf5xKKdmg9vPAY9fr8mPUcrpPPD0J8biEobG6f/jOzwqFdfaWCZJcntHi/o9xvV7B 2B28stHRlQi/C85jPpyX9WMfJuRKbTEWr3MSa0WqxZEJs/LROMXGfA3Pir9kTMEExraI miIA== X-Gm-Message-State: AOAM531yBHZErrn3V5Jt47HbR159KSWN+OAABPhjIcrYKtLtdtC5BsKY vCh+Z2i+L3G7qxLCOvLypv1TWsDIajSWvw== X-Google-Smtp-Source: ABdhPJzsyWgc34/jfwfQQcruxmkT+2+YGgtksr3wjqUO6obaYEtQRxd2Vg2x5Z7Byx5x8SFGVZLPcA== X-Received: by 2002:a62:8802:0:b029:323:605d:8f3a with SMTP id l2-20020a6288020000b0290323605d8f3amr3543142pfd.20.1625583524732; Tue, 06 Jul 2021 07:58:44 -0700 (PDT) Received: from birita.. ([177.194.59.218]) by smtp.gmail.com with ESMTPSA id n23sm19018488pgv.76.2021.07.06.07.58.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Jul 2021 07:58:44 -0700 (PDT) To: libc-alpha@sourceware.org Subject: [PATCH v7 0/4] Add close_range, closefrom, and posix_spawn_file_actions_closefrom_np Date: Tue, 6 Jul 2021 11:58:35 -0300 Message-Id: <20210706145839.1658623-1-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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: , From: Adhemerval Zanella via Libc-alpha Reply-To: Adhemerval Zanella Errors-To: libc-alpha-bounces+e=80x24.org@sourceware.org Sender: "Libc-alpha" Linux v5.9 added a new close_range syscall, which allows the caller to issue the kernel to close or set close-on-exec on a range of file descriptors. This patchset export the syscall along with two GNU extensions: closefrom, with similar semantics from other systems ((Solaris, OpenBSD, NetBSD, FreeBSD); and posix_spawn_file_actions_closefrom_np, which allows use close_range semantic on posix_spawn(). The first patch is libsupport one for the tests. The second patch adds the Linux specific close_range syscall. The third adds the GNU extension closefrom(), which use close_range() if available. The firth adds the posix_spawn extension. Adhemerval Zanella (4): support: Add support_stack_alloc linux: Add close_range io: Add closefrom [BZ #10353] posix: Add posix_spawn_file_actions_addclosefrom_np NEWS | 12 + include/bits/unistd_ext.h | 6 + include/unistd.h | 1 + io/Makefile | 4 +- io/Versions | 3 + io/closefrom.c | 34 ++ io/tst-closefrom.c | 152 +++++++++ manual/llio.texi | 59 ++++ posix/Makefile | 4 +- posix/Versions | 1 + posix/spawn.h | 8 + posix/spawn_faction_addclosefrom.c | 57 ++++ posix/spawn_faction_destroy.c | 1 + posix/spawn_int.h | 6 + posix/tst-spawn5.c | 284 ++++++++++++++++ posix/unistd.h | 6 + support/Makefile | 1 + support/support.h | 19 ++ support/support_stack_alloc.c | 79 +++++ support/xsigstack.c | 43 +-- sysdeps/generic/spawn_int_def.h | 24 ++ sysdeps/mach/hurd/i386/libc.abilist | 2 + sysdeps/mach/hurd/spawni.c | 4 + sysdeps/posix/spawni.c | 4 + sysdeps/unix/sysv/linux/Makefile | 6 +- sysdeps/unix/sysv/linux/Versions | 1 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 3 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 + sysdeps/unix/sysv/linux/arc/libc.abilist | 3 + sysdeps/unix/sysv/linux/arm/be/libc.abilist | 3 + sysdeps/unix/sysv/linux/arm/le/libc.abilist | 3 + sysdeps/unix/sysv/linux/bits/unistd_ext.h | 22 ++ sysdeps/unix/sysv/linux/closefrom.c | 36 +++ sysdeps/unix/sysv/linux/closefrom_fallback.c | 99 ++++++ sysdeps/unix/sysv/linux/csky/libc.abilist | 3 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 + sysdeps/unix/sysv/linux/i386/libc.abilist | 3 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 + .../sysv/linux/m68k/coldfire/libc.abilist | 3 + .../unix/sysv/linux/m68k/m680x0/libc.abilist | 3 + .../sysv/linux/microblaze/be/libc.abilist | 3 + .../sysv/linux/microblaze/le/libc.abilist | 3 + .../sysv/linux/mips/mips32/fpu/libc.abilist | 3 + .../sysv/linux/mips/mips32/nofpu/libc.abilist | 3 + .../sysv/linux/mips/mips64/n32/libc.abilist | 3 + .../sysv/linux/mips/mips64/n64/libc.abilist | 3 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 3 + .../linux/powerpc/powerpc32/fpu/libc.abilist | 3 + .../powerpc/powerpc32/nofpu/libc.abilist | 3 + .../linux/powerpc/powerpc64/be/libc.abilist | 3 + .../linux/powerpc/powerpc64/le/libc.abilist | 3 + .../unix/sysv/linux/riscv/rv32/libc.abilist | 3 + .../unix/sysv/linux/riscv/rv64/libc.abilist | 3 + .../unix/sysv/linux/s390/s390-32/libc.abilist | 3 + .../unix/sysv/linux/s390/s390-64/libc.abilist | 3 + sysdeps/unix/sysv/linux/sh/be/libc.abilist | 3 + sysdeps/unix/sysv/linux/sh/le/libc.abilist | 3 + .../sysv/linux/sparc/sparc32/libc.abilist | 3 + .../sysv/linux/sparc/sparc64/libc.abilist | 3 + sysdeps/unix/sysv/linux/spawn_int_def.h | 25 ++ sysdeps/unix/sysv/linux/spawni.c | 34 +- sysdeps/unix/sysv/linux/syscalls.list | 1 + sysdeps/unix/sysv/linux/tst-close_range.c | 303 ++++++++++++++++++ .../unix/sysv/linux/x86_64/64/libc.abilist | 3 + .../unix/sysv/linux/x86_64/x32/libc.abilist | 3 + 65 files changed, 1380 insertions(+), 57 deletions(-) create mode 100644 include/bits/unistd_ext.h create mode 100644 io/closefrom.c create mode 100644 io/tst-closefrom.c create mode 100644 posix/spawn_faction_addclosefrom.c create mode 100644 posix/tst-spawn5.c create mode 100644 support/support_stack_alloc.c create mode 100644 sysdeps/generic/spawn_int_def.h create mode 100644 sysdeps/unix/sysv/linux/closefrom.c create mode 100644 sysdeps/unix/sysv/linux/closefrom_fallback.c create mode 100644 sysdeps/unix/sysv/linux/spawn_int_def.h create mode 100644 sysdeps/unix/sysv/linux/tst-close_range.c -- 2.30.2