From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic311-31.consmr.mail.ir2.yahoo.com (sonic311-31.consmr.mail.ir2.yahoo.com [77.238.176.163]) by sourceware.org (Postfix) with ESMTPS id 120EA388700C for ; Mon, 27 Apr 2020 15:58:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 120EA388700C X-YMail-OSG: QGpJpT0VM1nXPX3rdnl2Rd8VbjPCE2BCnmWwNoQtvsY9A6dlDeOz5VJ8nCjMtbw CyMGNNq96SDWFU9gb3lCb4U9.kUnprGEh8fhcv.F3CuNn5jFS2uFAYzvtHciLWvZGny.fzjV9As9 x4dPKAEiHZBvEelkfdxa40lsNMKfKTkerY6_NBZTYwvJxbM5CZPa1B4rjicb1i0OaCS1m5hr1ek9 RaCUG6UlyWvCF6IBWuBuYWrU3vQfAQ_BbAoxmuSgX10vbRHvTP6p5tnVXRrys6wMzk_5MAt8H7ez 8xQZenG9AIw9QSqrtgg02elAP9aYYKQJyeKrbyYD2yvGbng8i9ev8eNyzo.113xQTQPHGMJxxJs. 2_rF5ZTQ3rpR8mD2IiEt63yzkPJIHaVokz0pomeoQ.x8cU5EWYG6KP7ANCG3hkVbVUTpCcs_lGZL HofwZjsIQXZxMURZ1Q4UwPk7YhmU2_TnEBsUQAAscqLB0P7HfTT0a8555L6qMn2H.xvBW9D1Y242 nzX193yeDqAk5L7L3nHOqDp68WyV5aq6oBFCWBPKXF7BcutlurA0jrBCPpGnxYOvYI4hK32lJidA StyubhNV1UkS1CTsa8qFV61PoMdOQMM41JSlbQo23sllpxb4ft.gzQvGXSwIHGozXazJi6ZRcNgM w5bQPdbnn7RQhoxYThi3CMhJg8FhxsIc4CT1EEVo8INpzZkm_bUAJENEWROjxq4s0xi6wehMQfgo 91lzxqqpoVXd8dOBn8kD.cx5bUULiHv0CohuzhdNteLTJYmEtoOz8f6FtbXDUYSW7f8h41Xzhc3T 7cZuwmuMRFFTQHLe_JWgfLb0QVjS_c7RNU2sUj.Y3BHtWHBZmBqPEmspA6SBXqxOjlVv3SIGS8z9 9GPHRxiiB_6oKBufBkg6rkeMpHgxSZ8TBbD1PnJZCNyHR7gwco49dOfmSH4a1jIf2iwsp4CYmEu5 5AXNt71CYd.K.FCdhee_u1H8nND32zI3.x3DO19hlUw8DjjM10pDGnPrjMqv3oDT3IBo1hSlaCCZ 5MTZ107rWXMDrK5008USlRzE_J2NeoIYPX9duaVytQkIE2r5D_RCLpgxhvYWyZiOiWjorOxQfKeV mZxRUaNFW91HW.NhCxXAu7G6j9ZbskhAU4b05yHm8e7NuDm.fJ8INKRFiUnIqf8uv7xZykMRK162 9yyscxTNlop43HpCkjZG4T6W_enVOxqcSrN4WVf8rQh8ltGfM_A1g6M8zgiy1wLaB8zb1s59qlNe OuijJ7h.9X40vQaV2_kq2ew6WrdLiolFCVnv7oBJS0aSIh9911BUKW6KIPaqp5lxO3FmF8hEI68O YMoDbwjYWIDOU2ujsT1bVIjejVhIhw8.9 Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.ir2.yahoo.com with HTTP; Mon, 27 Apr 2020 15:58:20 +0000 Date: Mon, 27 Apr 2020 15:58:17 +0000 (UTC) From: "R. Diez" To: "newlib@sourceware.org" Message-ID: <989180140.2023825.1588003097077@mail.yahoo.com> Subject: _REENT_CHECK_VERIFY calls __assert_func even if NDEBUG is defined MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable References: <989180140.2023825.1588003097077.ref@mail.yahoo.com> X-Mailer: WebService/1.1.15756 YMailNorrin Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0 X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2020 15:58:25 -0000 Hallo all: I have used Newlib 3.1.0 (and older versions) for quite some time. I am try= ing to upgrade to the latest release/snapshot 3.3.0, but I hit a compilatio= n error in release builds (with NDEBUG defined): newlib-3.3.0/newlib/libc/stdlib/rand.c:78: undefined reference to `__assert= _func' I tracked it down to this definition: /* Specify how to handle reent_check malloc failures. */ #ifdef _REENT_CHECK_VERIFY #include #define __reent_assert(x) ((x) ? (void)0 : __assert_func(__FILE__, __LINE__= , (char *)0, "REENT malloc succeeded")) #else #define __reent_assert(x) ((void)0) #endif This is unfortunate. First of all, I wonder what happens if malloc fails an= d there is no assert. Will there be a crash? Then, I would like to assert() in debug builds, and not in release builds. = My code does not define __assert_func in release builds, because assertions= are only supposed to work if NDEBUG is not defined. That has been working = fine for years, until this Newlib version. I am configuring Newlib with --disable-newlib-multithread , because my embe= dded firmware has no threads. But I guess I still have to deal with "struct= _reent", don't I? I would have hoped that, in this single-thread situation= , any reentrancy structure could be allocated statically. Or is there any w= ay to avoid this malloc()? Thanks in advance, =C2=A0 rdiez