From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com [IPv6:2607:f8b0:4864:20::32a]) by sourceware.org (Postfix) with ESMTPS id E6D803856B40 for ; Mon, 12 Dec 2022 14:16:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E6D803856B40 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-ot1-x32a.google.com with SMTP id p10-20020a9d76ca000000b0066d6c6bce58so7342870otl.7 for ; Mon, 12 Dec 2022 06:16:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=eh5AkMFzBw5V6r7NkdUv188mWeTgImxo7CG6QxBypHQ=; b=hX3mZ0WXx7bC/I0Kyl2vN/L0MwK+VMQfs/qbb1wIr+UHAbz0HCZepj/3pBmPe34nvH YWk2/KkiExE92HaMnQviZmwaz233EVbB9dY/mKMapxOcIA/MbviYsoIa6FhtQa54DDgC 1y91SPHbOQSS/W+ND1r1sJOOUDCLe99OsxnO1fSbBbVc5dRYoqYNhij/g27UXxA6Sg/c SMw9aRal7RkVWxrBQUxzARnVKcqFFfQ3GUI1cZD26odescmRP+yExkcpTdtjVtAzUIcm vLMn/jY3cPWVmciLDvmPUhEKHU8VSKmREBQU+/YnfGrVVU0AxRgHgM9ey0xX3d7peuC/ Ep3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=eh5AkMFzBw5V6r7NkdUv188mWeTgImxo7CG6QxBypHQ=; b=YLu9YIEK9pAMS9PvIBqaFQcocb9JboBUJvFFn+oTIkPBZCVRQNGtSCztzJ0pIoOPS3 jZGlLSpCae4ZTbOCzCWJMgHNXFuG0wunKpd5gLUotg/w3JDkJBMaTlCSy8uIx+DICx7a f4/cMIL/UTI4BAG/hNOj5PRrsG+T2jWXPtqx9wLrU6jyTZgnQMr3uYMKHRjVx3bWNds7 2UFLDSBQkNUHxeMVZIh9A0eLiY/A7lfNbtjYPMBA3rEM3lVngbplNO/UteOTsZlQQzVd UtvSexL+jpicbW15hD0AEHOg9KAbvGIdA+j1EDSgiJL48DQJR+fg4F3k1fKrEsVypa81 HpSw== X-Gm-Message-State: ANoB5pl9/yW7f/IQzsq9F85NX4ZjhrjiXiDLbA4PYRqt3qUdlevp+DYE R2g793Aqj6Nv8KDFvifZIc05mA== X-Google-Smtp-Source: AA0mqf5W9Gkdz1f1bBSZsiO9CoeoTWQG3x3DgFZTD2ZZTVlUnRPxTCG/BCt0dIC4aIqgEaL/6HbO8Q== X-Received: by 2002:a9d:7552:0:b0:670:98f6:67b6 with SMTP id b18-20020a9d7552000000b0067098f667b6mr1499373otl.23.1670854580158; Mon, 12 Dec 2022 06:16:20 -0800 (PST) Received: from [192.168.15.31] (201-92-181-161.dsl.telesp.net.br. [201.92.181.161]) by smtp.gmail.com with ESMTPSA id h26-20020a9d6f9a000000b00670641eb272sm4141086otq.20.2022.12.12.06.16.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 12 Dec 2022 06:16:19 -0800 (PST) Message-ID: <0c14b424-af63-a5ec-5545-ef79bd323058@linaro.org> Date: Mon, 12 Dec 2022 11:16:16 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: [PATCH 4/7] Move libc_freeres_ptrs and libc_subfreeres to weak functions Content-Language: en-US To: Florian Weimer Cc: Adhemerval Zanella via Libc-alpha , Fangrui Song References: <20221115193159.173838-1-adhemerval.zanella@linaro.org> <20221115193159.173838-5-adhemerval.zanella@linaro.org> <874ju0ubs0.fsf@oldenburg.str.redhat.com> <87iligsone.fsf@oldenburg.str.redhat.com> From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: <87iligsone.fsf@oldenburg.str.redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 12/12/22 11:05, Florian Weimer wrote: > * Adhemerval Zanella Netto: > >>> I think you should consider introducing a call_free_static_weak that >>> does something like >>> >>> if (&ptr != NULL) >>> free (ptr); >>> >>> in the static case, and calls >>> >>> free (ptr); >>> >>> unconditionally for the dynamic case. And then add attribute_hidden >>> variable declarations to a suitable wrapper header under include/. >>> >>> This avoids writing all these little helper functions. >> >> We already have call_free_static_weak function that does exactly that, > > I don't see call_free_static_weak? > >> maybe you are proposing a something like: >> >> # ifdef SHARED >> # define declare_libc_freeres (name, ptr) \ >> static void name (void) { free (ptr); } >> # else >> # define declare_libc_freeres (name, ptr) \ >> static void name (void) { if (ptr != NULL) free (ptr); } >> # endif > > It has to be &ptr != NULL for the weak case, and you also need to create > a weak alias. Right, and do we really need a weak_alias in this fact? Wouldn't weak_function suffice in this case for !SHARED?