From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oo1-xc33.google.com (mail-oo1-xc33.google.com [IPv6:2607:f8b0:4864:20::c33]) by sourceware.org (Postfix) with ESMTPS id B669F385801F for ; Tue, 8 Feb 2022 20:12:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B669F385801F Received: by mail-oo1-xc33.google.com with SMTP id o128-20020a4a4486000000b003181707ed40so1770101ooa.11 for ; Tue, 08 Feb 2022 12:12:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:in-reply-to :content-transfer-encoding; bh=zF3gfo54MhRAKVBmPZLih7Ydv3WwoyhqwEPBJXMm21o=; b=MiOTPA1CfI3ltPvbazmlDQPyBBqFKwLJOKuO7DSFla5YgblesBvhxMxCC8ngQ+vxVK GZgt9TbFUomvizZz6GsUsj1Gi2BkMRRi2naQ6pv/9pTEdz5ELGfHV2+D62X9R+C/c6ey ZjdNKnJ+vkYAC8bUNuMRmFEdRcLcJdXD6kf2HRFJPz9D79UaRaUxMPqfVOHe0eA9aXbz WTgFJh/3brSCGtTPR33Z/b4QKxYw7Bh1Urf3PIcTm79oYEJcwG1ulZrLCM51ULW/DlV2 zZKBx7enXb0WK/dKEl7BBijg+pgWsUUONGh4O6R9IHA1hlW8KgbXaESPlbkCRLmbqOy7 l7eg== X-Gm-Message-State: AOAM532hfIsY0Ej0+ZAU122uW1hz6i8fjElL9fQxisOlDmqClYW1nWM9 oOo9WrEEt9igIeGFHyarBmE+0g== X-Google-Smtp-Source: ABdhPJzrPvmaTl7An49qXHAwDdvLc8asrddDALev7wXBMVcB+1VtxMUQycdiCLVIfpKX8WHpr81HZQ== X-Received: by 2002:a4a:6:: with SMTP id 6mr757678ooh.73.1644351143084; Tue, 08 Feb 2022 12:12:23 -0800 (PST) Received: from ?IPV6:2804:431:c7ca:733:86a9:ad5:adef:2f3e? ([2804:431:c7ca:733:86a9:ad5:adef:2f3e]) by smtp.gmail.com with ESMTPSA id q4sm5605163otk.39.2022.02.08.12.12.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Feb 2022 12:12:22 -0800 (PST) Message-ID: Date: Tue, 8 Feb 2022 17:12:21 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.0 Subject: Re: [PATCH v2 3/5] Linux: Remove DL_FIND_ARG_COMPONENTS Content-Language: en-US To: Florian Weimer , libc-alpha@sourceware.org References: <9bec36d1dd2abe94ec402c22c213f1aac6350aed.1643886336.git.fweimer@redhat.com> From: Adhemerval Zanella In-Reply-To: <9bec36d1dd2abe94ec402c22c213f1aac6350aed.1643886336.git.fweimer@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Tue, 08 Feb 2022 20:12:25 -0000 On 03/02/2022 08:08, Florian Weimer via Libc-alpha wrote: > The generic definition is always used since the Native Client > port has been removed. LGTM, thanks. Reviewed-by: Adhemerval Zanella > --- > sysdeps/unix/sysv/linux/dl-sysdep.c | 25 ++++++++++--------------- > 1 file changed, 10 insertions(+), 15 deletions(-) > > diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.c b/sysdeps/unix/sysv/linux/dl-sysdep.c > index 72aa109f2f..a13e0ea7ad 100644 > --- a/sysdeps/unix/sysv/linux/dl-sysdep.c > +++ b/sysdeps/unix/sysv/linux/dl-sysdep.c > @@ -59,19 +59,6 @@ void *__libc_stack_end attribute_relro = NULL; > rtld_hidden_data_def(__libc_stack_end) > void *_dl_random attribute_relro = NULL; > > -#ifndef DL_FIND_ARG_COMPONENTS > -# define DL_FIND_ARG_COMPONENTS(cookie, argc, argv, envp, auxp) \ > - do { \ > - void **_tmp; \ > - (argc) = *(long int *) cookie; \ > - (argv) = (char **) ((long int *) cookie + 1); \ > - (envp) = (argv) + (argc) + 1; \ > - for (_tmp = (void **) (envp); *_tmp; ++_tmp) \ > - continue; \ > - (auxp) = (void *) ++_tmp; \ > - } while (0) > -#endif > - > #ifndef DL_STACK_END > # define DL_STACK_END(cookie) ((void *) (cookie)) > #endif > @@ -90,8 +77,16 @@ _dl_sysdep_start (void **start_argptr, > #endif > > __libc_stack_end = DL_STACK_END (start_argptr); > - DL_FIND_ARG_COMPONENTS (start_argptr, _dl_argc, _dl_argv, _environ, > - GLRO(dl_auxv)); > + _dl_argc = (intptr_t) *start_argptr; > + _dl_argv = (char **) (start_argptr + 1); /* Necessary aliasing violation. */ > + _environ = _dl_argv + _dl_argc + 1; > + for (char **tmp = _environ + 1; ; ++tmp) > + if (*tmp == NULL) > + { > + /* Another necessary aliasing violation. */ > + GLRO(dl_auxv) = (ElfW(auxv_t) *) (tmp + 1); > + break; > + } > > user_entry = (ElfW(Addr)) ENTRY_POINT; > GLRO(dl_platform) = NULL; /* Default to nothing known about the platform. */