public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/toolchain/glibc-patches:master commit in: 9999/
Date: Fri, 24 Jan 2025 11:27:35 +0000 (UTC)	[thread overview]
Message-ID: <1737718044.76b1cd8ec361bee90e8ebfcd58dd44f8017684c5.sam@gentoo> (raw)

commit:     76b1cd8ec361bee90e8ebfcd58dd44f8017684c5
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 24 11:27:24 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan 24 11:27:24 2025 +0000
URL:        https://gitweb.gentoo.org/proj/toolchain/glibc-patches.git/commit/?id=76b1cd8e

9999: drop now-obsolete revert

It landed upstream.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...ib-Support-malloc-managed-environ-arrays-.patch | 246 ---------------------
 1 file changed, 246 deletions(-)

diff --git a/9999/0007-Revert-stdlib-Support-malloc-managed-environ-arrays-.patch b/9999/0007-Revert-stdlib-Support-malloc-managed-environ-arrays-.patch
deleted file mode 100644
index baeba66..0000000
--- a/9999/0007-Revert-stdlib-Support-malloc-managed-environ-arrays-.patch
+++ /dev/null
@@ -1,246 +0,0 @@
-https://sourceware.org/PR32588
-
-From 9cd3432490deb23be736bd79f9a4bffc8820cc6e Mon Sep 17 00:00:00 2001
-Message-ID: <9cd3432490deb23be736bd79f9a4bffc8820cc6e.1737676467.git.sam@gentoo.org>
-From: Sam James <sam@gentoo.org>
-Date: Thu, 23 Jan 2025 23:54:25 +0000
-Subject: [PATCH] Revert "stdlib: Support malloc-managed environ arrays for
- compatibility"
-
-This reverts commit b62759db04b8ed7f829c06f1d7c3b8fb70616493.
----
- csu/init-first.c           |  1 -
- csu/libc-start.c           |  1 -
- include/unistd.h           |  3 --
- posix/environ.c            |  2 --
- stdlib/Makefile            |  1 -
- stdlib/setenv.c            | 66 +++++++++++++++++++-------------------
- stdlib/tst-setenv-malloc.c | 64 ------------------------------------
- 7 files changed, 33 insertions(+), 105 deletions(-)
- delete mode 100644 stdlib/tst-setenv-malloc.c
-
-diff --git a/csu/init-first.c b/csu/init-first.c
-index 0ad6f75dcdd..e35e4ce84f1 100644
---- a/csu/init-first.c
-+++ b/csu/init-first.c
-@@ -61,7 +61,6 @@ _init_first (int argc, char **argv, char **envp)
-   __libc_argc = argc;
-   __libc_argv = argv;
-   __environ = envp;
--  __environ_startup = envp;
- 
- #ifndef SHARED
-   /* First the initialization which normally would be done by the
-diff --git a/csu/libc-start.c b/csu/libc-start.c
-index 4e15b6191dc..6f3d52e223d 100644
---- a/csu/libc-start.c
-+++ b/csu/libc-start.c
-@@ -244,7 +244,6 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
-   char **ev = &argv[argc + 1];
- 
-   __environ = ev;
--  __environ_startup = ev;
- 
-   /* Store the lowest stack address.  This is done in ld.so if this is
-      the code for the DSO.  */
-diff --git a/include/unistd.h b/include/unistd.h
-index ada957f9d04..e241603b813 100644
---- a/include/unistd.h
-+++ b/include/unistd.h
-@@ -203,9 +203,6 @@ libc_hidden_proto (__tcsetpgrp)
- extern int __libc_enable_secure attribute_relro;
- rtld_hidden_proto (__libc_enable_secure)
- 
--/* Original value of __environ.  Initialized by _init_first (dynamic)
--   or __libc_start_main (static).  */
--extern char **__environ_startup attribute_hidden;
- 
- /* Various internal function.  */
- extern void __libc_check_standard_fds (void) attribute_hidden;
-diff --git a/posix/environ.c b/posix/environ.c
-index 2430b47d8ee..a0ed0d80eab 100644
---- a/posix/environ.c
-+++ b/posix/environ.c
-@@ -10,5 +10,3 @@ weak_alias (__environ, environ)
- /* The SVR4 ABI says `_environ' will be the name to use
-    in case the user overrides the weak alias `environ'.  */
- weak_alias (__environ, _environ)
--
--char **__environ_startup;
-diff --git a/stdlib/Makefile b/stdlib/Makefile
-index ee95b2e79a2..a5fbc1a27e1 100644
---- a/stdlib/Makefile
-+++ b/stdlib/Makefile
-@@ -316,7 +316,6 @@ tests := \
-   tst-setcontext9 \
-   tst-setcontext10 \
-   tst-setcontext11 \
--  tst-setenv-malloc \
-   tst-stdbit-Wconversion \
-   tst-stdbit-builtins \
-   tst-stdc_bit_ceil \
-diff --git a/stdlib/setenv.c b/stdlib/setenv.c
-index c6dc9f7945a..2a2eec9c987 100644
---- a/stdlib/setenv.c
-+++ b/stdlib/setenv.c
-@@ -191,52 +191,52 @@ __add_to_environ (const char *name, const char *value, const char *combined,
- 	ep[1] = NULL;
-       else
- 	{
--	  /* We cannot use __environ as is and need a larger allocation.  */
--
--	  if (start_environ == __environ_startup
--	      || __environ_is_from_array_list (start_environ))
--	    {
--	      /* Allocate a new array, managed in the list.  */
--	      struct environ_array *target_array
--		= __environ_new_array (required_size);
--	      if (target_array == NULL)
--		{
--		  UNLOCK;
--		  return -1;
--		}
--	      result_environ = &target_array->array[0];
--
--	      /* Copy over the __environ array contents.  This code
--		 handles the case start_environ == ep == NULL, too.  */
--	      size_t i;
--	      for (i = 0; start_environ + i < ep; ++i)
--		/* Regular store because unless there has been direct
--		   manipulation of the environment, target_array is still
--		   a private copy.  */
--		result_environ[i] = atomic_load_relaxed (start_environ + i);
--	    }
-+	  /* We cannot use __environ as is and need to copy over the
-+	     __environ contents into an array managed via
-+	     __environ_array_list.  */
-+
-+	  struct environ_array *target_array;
-+	  if (__environ_array_list != NULL
-+	      && required_size <= __environ_array_list->allocated)
-+	    /* Existing array has enough room.  Contents is copied below.  */
-+	    target_array = __environ_array_list;
- 	  else
- 	    {
--	      /* Otherwise the application installed its own pointer.
--		 Historically, this pointer was managed using realloc.
--		 Continue doing so.  This disables multi-threading
--		 support.  */
--	      result_environ = __libc_reallocarray (start_environ,
--						    required_size,
--						    sizeof (*result_environ));
--	      if (result_environ == NULL)
-+	      /* Allocate a new array.  */
-+	      target_array = __environ_new_array (required_size);
-+	      if (target_array == NULL)
- 		{
- 		  UNLOCK;
- 		  return -1;
- 		}
- 	    }
- 
-+	  /* Copy over the __environ array contents.  This forward
-+	     copy slides backwards part of the array if __environ
-+	     points into target_array->array.  This happens if an
-+	     application makes an assignment like:
-+
-+	       environ = &environ[1];
-+
-+	     The forward copy avoids clobbering values that still
-+	     needing copying.  This code handles the case
-+	     start_environ == ep == NULL, too.  */
-+	  size_t i;
-+	  for (i = 0; start_environ + i < ep; ++i)
-+	    /* Regular store because unless there has been direct
-+	       manipulation of the environment, target_array is still
-+	       a private copy.  */
-+	    target_array->array[i] = atomic_load_relaxed (start_environ + i);
-+
- 	  /* This is the new place where we should add the element.  */
--	  ep = result_environ + (required_size - 2);
-+	  ep = target_array->array + i;
- 
- 	  /* Add the null terminator in case there was a pointer there
- 	     previously.  */
- 	  ep[1] = NULL;
-+
-+	  /* And __environ should be repointed to our array.  */
-+	  result_environ = &target_array->array[0];
- 	}
-     }
- 
-diff --git a/stdlib/tst-setenv-malloc.c b/stdlib/tst-setenv-malloc.c
-deleted file mode 100644
-index 18a9d36842e..00000000000
---- a/stdlib/tst-setenv-malloc.c
-+++ /dev/null
-@@ -1,64 +0,0 @@
--/* Test using setenv with a malloc-allocated environ variable.
--   Copyright (C) 2025 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
--   <https://www.gnu.org/licenses/>.  */
--
--/* This test is not in the scope for POSIX or any other standard, but
--   some applications assume that environ is a heap-allocated pointer
--   after a call to setenv on an empty environment.  */
--
--#include <stdlib.h>
--#include <unistd.h>
--#include <support/check.h>
--#include <support/support.h>
--
--static const char *original_path;
--static char **save_environ;
--
--static void
--rewrite_environ (void)
--{
--  save_environ = environ;
--  environ = xmalloc (sizeof (*environ));
--  *environ = NULL;
--  TEST_COMPARE (setenv ("A", "1", 1), 0);
--  TEST_COMPARE (setenv ("B", "2", 1), 0);
--  TEST_VERIFY (environ != save_environ);
--  TEST_COMPARE_STRING (environ[0], "A=1");
--  TEST_COMPARE_STRING (environ[1], "B=2");
--  TEST_COMPARE_STRING (environ[2], NULL);
--  TEST_COMPARE_STRING (getenv ("PATH"), NULL);
--  free (environ);
--  environ = save_environ;
--  TEST_COMPARE_STRING (getenv ("PATH"), original_path);
--}
--
--static int
--do_test (void)
--{
--  original_path = getenv ("PATH");
--  rewrite_environ ();
--
--  /* Test again after reallocated the environment due to an initial
--     setenv call.  */
--  TEST_COMPARE (setenv ("TST_SETENV_MALLOC", "1", 1), 0);
--  TEST_VERIFY (environ != save_environ);
--  rewrite_environ ();
--
--  return 0;
--}
--
--#include <support/test-driver.c>
-
-base-commit: b62759db04b8ed7f829c06f1d7c3b8fb70616493
--- 
-2.48.1
-


             reply	other threads:[~2025-01-24 11:27 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-24 11:27 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-01-24  1:28 [gentoo-commits] proj/toolchain/glibc-patches:master commit in: 9999/ Sam James
2024-12-22  6:28 Sam James
2024-08-26 16:38 Sam James
2024-02-19  0:52 Andreas K. Hüttel
2024-01-11 23:28 Andreas K. Hüttel
2024-01-11 23:27 Andreas K. Hüttel
2023-12-25 20:15 Andreas K. Hüttel
2023-12-25 20:11 Andreas K. Hüttel
2023-12-23 21:58 Andreas K. Hüttel
2023-10-04 19:13 Andreas K. Hüttel
2023-09-11 17:21 Andreas K. Hüttel
2023-07-17 20:40 Andreas K. Hüttel
2023-02-01 19:47 Andreas K. Hüttel
2023-01-01 18:42 Andreas K. Hüttel
2022-09-20 17:56 Andreas K. Hüttel
2022-09-19 21:26 Andreas K. Hüttel
2022-08-08 21:22 Andreas K. Hüttel
2022-07-29 12:20 WANG Xuerui
2022-07-05  4:02 Andreas K. Hüttel
2022-04-16 11:54 Andreas K. Hüttel
2022-04-16 11:54 Andreas K. Hüttel
2022-04-16 11:54 Andreas K. Hüttel
2022-03-27 16:12 Andreas K. Hüttel
2022-03-07  1:04 Andreas K. Hüttel
2022-02-21 21:42 Andreas K. Hüttel
2022-02-12 18:45 Andreas K. Hüttel
2022-01-06 15:13 Andreas K. Hüttel
2022-01-05 21:19 Andreas K. Hüttel
2022-01-04 11:00 Andreas K. Hüttel
2021-12-01 16:30 Andreas K. Hüttel
2021-12-01 16:17 Andreas K. Hüttel
2021-08-02 22:42 Andreas K. Hüttel
2021-08-02 22:41 Andreas K. Hüttel
2021-07-22 23:17 Andreas K. Hüttel
2021-05-25 20:30 Andreas K. Hüttel
2021-04-10 15:34 Andreas K. Hüttel
2021-02-27 19:18 Andreas K. Hüttel
2020-07-23 23:20 Andreas K. Hüttel
2020-07-18 16:23 Andreas K. Hüttel
2020-05-13  8:52 Andreas K. Hüttel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1737718044.76b1cd8ec361bee90e8ebfcd58dd44f8017684c5.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox