From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) by sourceware.org (Postfix) with ESMTPS id CEB923858D33 for ; Thu, 1 Feb 2024 20:55:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CEB923858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=foss.st.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CEB923858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=91.207.212.93 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706820955; cv=none; b=YeA+1mOssT5WVBgGP7Zhn2a7kY9sVpvYs/inDc+yAj760JnqFoEB48RH/G4v+GV6Sil0mTx26RdViO7ODn1cbO9HydSIJjiIRF/lYp6K/wyFqsQp5ErTjCx/bXw9bLpJXWLXB5P817YBNyyQZcpsywM/s2EGsg1aQ3S+16r3JOs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706820955; c=relaxed/simple; bh=d0Mi5px3wUMsjryPsOFpc65Fx/H6wAm76DOzjtoi9AM=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=yA8s9CRqPqZGkkaXSP85ukzL8uTvyH0k0pmDAgyky2IEYLo+fNjp3ljclt1EJAtuobEpUULjbk/DrUjRrPMIv9CKmPQNQTnpEWGrrZQZFrDUpQihNuzXeD2LG+Xzk/RrmPUhAHeMULdhvjWcnPYlFH6Yuo0sxe6Ud0x+Hn5tJe8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 411DRKF5006780 for ; Thu, 1 Feb 2024 21:55:52 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h= message-id:date:mime-version:subject:to:references:from :in-reply-to:content-type:content-transfer-encoding; s= selector1; bh=s/sRO4Sp99n7oTBU7VvIUd4gq/RL58WtfpV848Ow6A8=; b=qL sePucWwO1QYxy3wAhBVOxwK+2JCgoZolTLorEQA2yqKNniNHMYVhaCAIEmZyaAcH +B4cIETvkYBVCaF4aTbUjzPNBRrqXy2K1ZLHJcmBfwfx4eFfoFan4pVQtC47apx7 ndHeg3sCWM7T/s79P7266lNYTScIvcwJKmdxw7mKFIM3PItph9EcEgn6pValLd0T n5+fGn8LYoTK+JoqBFXRlHj3ijx3FfwRWQ5wKsEuIHUXsbcWPxnHn+qhZXl54p8G /DIuweFQV288S/wwbZa1S4OVBH+NB82nylvmysyJzHSDXT7SVGlgT1QTGZGpr+vR 9BckZj8U/dXQRQLewArA== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3vvqu96k7b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 01 Feb 2024 21:55:52 +0100 (CET) Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id D5F38100053 for ; Thu, 1 Feb 2024 21:55:51 +0100 (CET) Received: from Webmail-eu.st.com (shfdag1node3.st.com [10.75.129.71]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 924D628968B for ; Thu, 1 Feb 2024 21:55:51 +0100 (CET) Received: from [10.252.20.240] (10.252.20.240) by SHFDAG1NODE3.st.com (10.75.129.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 1 Feb 2024 21:55:51 +0100 Message-ID: <4dfaab6c-f66a-434c-9c0e-bb4efd4c3195@foss.st.com> Date: Thu, 1 Feb 2024 21:55:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Problem with recent change to getlocalename_l To: References: Content-Language: en-US From: Torbjorn SVENSSON In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.252.20.240] X-ClientProxiedBy: SHFCAS1NODE1.st.com (10.75.129.72) To SHFDAG1NODE3.st.com (10.75.129.71) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-01_06,2024-01-31_01,2023-05-22_02 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,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 List-Id: On 2024-02-01 20:11, Corinna Vinschen wrote: > No, wait. > > On Feb 1 20:00, Corinna Vinschen wrote: >> Given that this new functionality needs a 32 byte buffer, and given that >> _REENT_SMALL targets are... well... small, I made the new buffer >> optional via `#ifdef _MB_CAPABLE' in struct _misc_reent, which only used >> by _REENT_SMALL targets. >> >> Apparently I missed to take the _REENT_CHECK_MISC expression into account. >> AFAICS the culprit is the _REENT_INIT_MISC macro now. >> >> Can you please check if this change fixes the problem? > > Try this one instead, please: > > diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h > index 4e60c3096ae2..1fd503b9a699 100644 > --- a/newlib/libc/include/sys/reent.h > +++ b/newlib/libc/include/sys/reent.h > @@ -514,8 +514,8 @@ struct _reent > #define _REENT_CHECK_EMERGENCY(var) \ > _REENT_CHECK(var, _emergency, char *, _REENT_EMERGENCY_SIZE, /* nothing */) > > -#define _REENT_INIT_MISC(var) do { \ > - struct _reent *_r = (var); \ > +/* Do not call directly, use _REENT_INIT_MISC(var) instead */ Maybe do an #undef after the _REENT_INIT_MISC has been define to prevent the __REENT_INIT_MISC_BODY symbol to be visible outside this block would work here? > +#define __REENT_INIT_MISC_BODY(_r) \ > _r->_misc->_strtok_last = _NULL; \ > _r->_misc->_mblen_state.__count = 0; \ > _r->_misc->_mblen_state.__value.__wch = 0; \ > @@ -533,10 +533,20 @@ struct _reent > _r->_misc->_wcrtomb_state.__value.__wch = 0; \ > _r->_misc->_wcsrtombs_state.__count = 0; \ > _r->_misc->_wcsrtombs_state.__value.__wch = 0; \ > - _r->_misc->_getlocale_l_buf[0] = '\0'; \ > _r->_misc->_l64a_buf[0] = '\0'; \ > - _r->_misc->_getdate_err = 0; \ > + _r->_misc->_getdate_err = 0; > +#ifdef _MB_CAPABLE > +#define _REENT_INIT_MISC(var) do { \ > + struct _reent *_r = (var); \ > + __REENT_INIT_MISC_BODY(_r) \ > + _r->_misc->_getlocale_l_buf[0] = '\0'; \ > +} while (0) > +#else > +#define _REENT_INIT_MISC(var) do { \ > + struct _reent *_r = (var); \ > + __REENT_INIT_MISC_BODY(_r) \ > } while (0) > +#endif Something like this here: #undef __REENT_INIT_MISC_BODY > #define _REENT_CHECK_MISC(var) \ > _REENT_CHECK(var, _misc, struct _misc_reent *, sizeof *((var)->_misc), _REENT_INIT_MISC(var)) > >