From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2012.outbound.protection.outlook.com [40.92.73.12]) by sourceware.org (Postfix) with ESMTPS id B3DC73858C56 for ; Fri, 12 Apr 2024 11:40:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B3DC73858C56 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=hotmail.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=hotmail.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B3DC73858C56 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.92.73.12 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1712922013; cv=pass; b=ccS/Ko0AanEwBZvzOjL7a4NTB+bc/MbpNpjWgd1AksqLr7/zEqImweL7fpf+mrnRqcJ96UuMduQTY5P7QGjhtQl4E9ZWsRZo1N6ivMazphyfH4gHnx0hA6PcEgRM42sx+1CJnV30YvrLfgn6bS7km3QEl6d2JHrQvo43MCncnCI= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1712922013; c=relaxed/simple; bh=8LWdMKT7Dx2GWr7JNePbv7DFbtiQH5mWtvB17zxFb3M=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=D3HrUo+ebLcaQEvs9U2IZpaqR1uo68wnKO1t+7+Kb5LoP2vATMfQmiMYicGfXF+QOfVCAjT+zPfGhwVEMQKFC6+OKg1XBFvCAQ+te7VpHzbzUO6Dj/hQSBGhYEeNoTIPnuQxxKXlcq4aSVTTWS5t9qGuvYL6kJd53QcoQfv+EX4= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ck//9aCbGwWrUGyiN1a0i1vwFuUns20Ab6JCd8XUcr89WuKpM6PUOmwTIaSBmGVRZxLw5xBEW903RNeW8MGZxr9+cVovZt0E6MPLqDOfAaQqYAjAxMY/IjNqz00lDSKsI9O/XzENVl8jhjRttogGxYyagr2Uev68makh9dlWGPKfTBJLYfH/on5Z8XwLbHHcJtxt7Nc0dcWv3XJhPxt8DZ0wUgDatOMrAAiYRb3AUVB9CDcUqinwg9vZsAgRtRsDAVzTXkjcavnc0Y3PGhcsKPgJJC+XCNykOHyMY5KliD0BQ0D7hpHFbN3wpGJGPkJOA6IGaXwcaXLvP+fIFrsTuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DNZ6D59TgKmGX4gxbX74GQNXARMtYYW3PXqTBgCEu4I=; b=Zo7Qyosx2SPCq8DQGT0YmobRGUltItt0LtE8WFYTwkYrxT6sXOKzqD5HKNcBOAQn3zqFj7lrd2aftBCUJr371nsWREG8XLrqwtcMIyCINPbFeOLYsFwOF+BpaGJv662bf3YOdd1fbe3DtHhuMDrbXUm03tLEkYHAxDumadtfRidbjNmY+9yW1teBfCINC9JOtakz564C+qQRUgcGXajM2gJPLyyacEMNUE/0kRdKZniHFDE+QmhXb27DQlmw+MbZko2CGX1N0nH0h07ThGbqfmsquNNvyqs3d/OBO8wltod3b8N/XDAb4buHF833FmDhTrQvXcPgP0ahnvNfBwjw1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=HOTMAIL.DE; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DNZ6D59TgKmGX4gxbX74GQNXARMtYYW3PXqTBgCEu4I=; b=AR5ZETHY9Dy730nVJeNwEZnpdrMO4X8wO63B1bE+VcXSZ8q7Cd0f1RuCUIfT/5IAj+xkhZvcU28sockNg7gmGOMROoZTSR9CvNvfOVIi02wVUasuSLfxgm5Ls9pP6RpXtlyO0r/n7oR699oaZZPOPzSRiElaMfiQmIyiDzOVvjPCOMGI/+6xqe976+x9rFd/sJ2hEZmquN13Hq+nDAA6x9n8mSC20KrAyKni8ZMQNhd6/q81aafRezVJlgxe50dhgVSxQqoWuO1Ifx28JnCj2tOlUrMClYH6ZiuBUAH4krcMB27SDNxxt02RKfM42lcLHJjvetNhZWZXSBtJ/VynxA== Received: from AS8P193MB1285.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:333::21) by AS8P193MB2253.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:445::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Fri, 12 Apr 2024 11:40:08 +0000 Received: from AS8P193MB1285.EURP193.PROD.OUTLOOK.COM ([fe80::5403:f1ad:efaf:1f71]) by AS8P193MB1285.EURP193.PROD.OUTLOOK.COM ([fe80::5403:f1ad:efaf:1f71%4]) with mapi id 15.20.7409.053; Fri, 12 Apr 2024 11:40:08 +0000 Message-ID: Date: Fri, 12 Apr 2024 13:41:58 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] sim: riscv: Fix newlib issue with brk syscall To: Andrew Burgess , "gdb-patches@sourceware.org" References: <878r1i6e9s.fsf@redhat.com> Content-Language: en-US From: Bernd Edlinger In-Reply-To: <878r1i6e9s.fsf@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-TMN: [reX0DFY7ARyP7zF5kj6sxAefeK+TxKF09NyKLaKa5rgwvAIZEbCzVuZYahx9tWmH] X-ClientProxiedBy: FR3P281CA0045.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::16) To AS8P193MB1285.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:333::21) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P193MB1285:EE_|AS8P193MB2253:EE_ X-MS-Office365-Filtering-Correlation-Id: a2e3f8a7-6762-47c1-9f5c-08dc5ae54da1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x/7EmZYo0aR80221w7/+vYYWdrRuMQ/SuknKh92K/AxW8XP92A6rdQkfyzozqTrh8IWMcSRDzoi7L+oXUj8Cakm55xFV69XrVoni3+gOTDV8atM2rpFSbiTiauwq/CnzCHPna2G1N8UM58fE9B7tuHl+8Tr8ZIentr9JfzxW0i7KY9I4y1CDgzLjpL/lMEU5DdvfN+LdJrL5lTBafKiudubXZpQLgvZerXne8e+ui/MtOhrMdfbQMzp264UmzJInFTXYRPO7nu4ktDQvgcBZZSJiexgjBwtSB6cHi072Nb7VbKz/G4yOTsbCntYOQmUB+K3CfSPntbqLQagVuKe/IOJUS02w3V2fsUPNWEY1w8YWhHGA2H+K1BORYLzJXEJNdkb+jWk+pwVDjk0h6fKMisSCAd2dcIKBhCrkuzjjAqlsv+9aUQC4rQBYXE/D2qkV7IszyDjFkKYTLKPzyp6jWQ85p34bygZsaw3DBJlOym4mtbFNG88XHJLn9YWiIJp3E2KrdAEijDYTtrrzCgMPfCfB59lizzcsyUdjIdbl85tYbBqNr9fU/Gpq95qXW8GL X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b0tsL0s1VjhTK00vRTN3UG9WbFdiaWs5SnhTYTh3L1RuRHVIN3hiNVdhblVX?= =?utf-8?B?Ulc5b0dqK3oxaUJCR0REVWhXTHFSOG82RnBRNTBxWUlJV3pWbDIyK2RWQkhC?= =?utf-8?B?Yjd1VWJvaGx0QWpaaWx1K1NQUysyNlhON3lLMzgwbmJPejBuMVQ2c0tyLy9v?= =?utf-8?B?WEtnaG44QTZHR25qdG1sYzhVbTF3RGVDT3dDVG5rVGN5UmU4RkExdFExall2?= =?utf-8?B?RW03WlRiclFJc3BoZHhEdkdwZXJYcDIyZmxvRERJU3NodkJVZkp2cDFlYzdr?= =?utf-8?B?aEJVQVRodzBvd0QxZ0E2YWQ5dDNuZ0dyWDQ2dmZKVUFuUjF5WHN5RWdtcXR3?= =?utf-8?B?amJBY0VGQThPWkFOTnJmSjFGb1QxRDFtVy9yNUVlcWNhZlBxcFJPVWJOdDVp?= =?utf-8?B?MW1oWEw4RUU3emg2TGw4cHgzbTFIRnhBSmpVcTZnbEE3bE01M1U0NElQM2Mz?= =?utf-8?B?ZmEveFl6MDhoWmFDbjlXdEt3ZWxvV2VCVldiMTdQVVpXYzFhNVZ4Y1NiYXow?= =?utf-8?B?RnZFanJGUU01T051Sy9kakFzb1R2YlpzNzZpM2ZVNStGaUd3S3BMNEtWYW5k?= =?utf-8?B?Y1lEOFpmQXQ3SXhYUHlrTnNUdmhMQ0tNdjV1S1pBYVBzY28zNjJNeWZPVkgx?= =?utf-8?B?WHRSVWJMcnNnVzZOM0NUSUhIVG8ycURUVjFWc0hGNTZzMXAxWXFHYVhSdWlO?= =?utf-8?B?SUdQQVkxazB0ak1jQ0ZPRE1pc3dTL095Y2JyK2tnRWFhc2JqUFZuam01czd2?= =?utf-8?B?bTNpMnBlT1NPVmFxdHlCN0FlUE5PRWRjOVg1NnJDa0ppQVl4NTUwVjlRYlZY?= =?utf-8?B?eFdQTFN6MjRHK0l6dDQ1aTVVRlNsTTNLNWZEc1BiaXo3NzZRMHQ2ZGJJYXBE?= =?utf-8?B?L1d5SWhNeGJxYzFIK0N5QklXbGdERk4wQjZjTU9jVEJhREZXazdzVExzRFJP?= =?utf-8?B?a3lkZzl3Z1c5NkdXVCt3WThrOUw2OGFoODQwcG9Kbm5FN0dGTXhkYWtXSFg2?= =?utf-8?B?OThuR0Npd0R1cnI2NEhlYStnQTM1OEJEajAvaEluS25YeUpwYXFrY0JDWDN6?= =?utf-8?B?bVZyV2V2N1NSaFE3T2lhL2tuUGZzVXZpa0xWcXYvTnJ0Q0U5aEhRSlR5RjZV?= =?utf-8?B?UmNQMENtUkwyVzMxajJNZEdOemtxdWZrVkxDMkVKbVl3MVhXcDNzeHF3Rmcz?= =?utf-8?B?ZU1uTTlBM2tmNGl6b3l2SzVPWnNvSU9uSU1LNXg5MUd4ZnE2blowRGZYZjZL?= =?utf-8?B?cTBtaWR0OWhudjFJQ3VPUEh3dXNxL0FtcDdWSmQwR1haV1JBU3JHTldubmIy?= =?utf-8?B?ZkdraW9ubGlHOVhnMHNMUlJmeWRhWTl1em9MMm43REpCQ1dyUG9TYlIzZDBF?= =?utf-8?B?dWJGZ1BPUWM2Zm1zSnhCbmUvZ3phKzVlbDBlSk9vbGNja1lyL3lCNmZROWxU?= =?utf-8?B?eWtwVHlSWXQ2ak51V2U2eTd5Ri8ybFpKWGpxbEJiUWdPUk1kU3duVGVvanhi?= =?utf-8?B?bUhoQXhtaTMrVnQrc3ZxZlE2eTdZaGNIZWhTOHV5enM3TDhzajhTamhhejUr?= =?utf-8?B?cE9WUmJPaE13b1hiTWo1NGMrbWpQNjdQSUhBczJQUVJkUXVaQ090ZTUydk9v?= =?utf-8?B?VE8yRUpFZDBrNXI4K2lJZnJoajh1MW1JUTExUUJPYllIRUhEQ201U2pnSDdJ?= =?utf-8?B?WHd6bDVyeWd0M2MyWTYwVVlGOStmTmx4YUtZWDI2YXNzMlFVQXVMMXVuT2F2?= =?utf-8?Q?oCyABr/HuaXLNmiKoH5s81BNx30NkGIz5KCBUuu?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-80ceb.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: a2e3f8a7-6762-47c1-9f5c-08dc5ae54da1 X-MS-Exchange-CrossTenant-AuthSource: AS8P193MB1285.EURP193.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2024 11:40:08.0065 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8P193MB2253 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP 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 4/12/24 12:55, Andrew Burgess wrote: > Bernd Edlinger writes: > >> There is an issue with riscv newlib which uses >> a brk syscall when malloc is used, and when >> this syscall is not implemented, the malloc fails. >> This adds a simple handling for this syscall >> in order to make newlib happy. >> --- >> sim/riscv/sim-main.c | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/sim/riscv/sim-main.c b/sim/riscv/sim-main.c >> index 9c0d070aa60..4e3672505c6 100644 >> --- a/sim/riscv/sim-main.c >> +++ b/sim/riscv/sim-main.c >> @@ -30,6 +30,7 @@ >> #include "sim-main.h" >> #include "sim-signal.h" >> #include "sim-syscall.h" >> +#include "target-newlib-syscall.h" >> >> #include "opcode/riscv.h" >> >> @@ -629,6 +630,14 @@ execute_i (SIM_CPU *cpu, unsigned_word iw, const struct riscv_opcode *op) >> break; >> case MATCH_ECALL: >> TRACE_INSN (cpu, "ecall;"); >> + if (riscv_cpu->a7 == TARGET_NEWLIB_RISCV_SYS_brk) >> + { >> + TRACE_SYSCALL (cpu, "brk[%i](%#lx)", TARGET_NEWLIB_RISCV_SYS_brk, >> + (long)riscv_cpu->a0); >> + if (riscv_cpu->a0 == 0) >> + riscv_cpu->a0 = DEFAULT_MEM_SIZE / 2; >> + break; >> + } > > This doesn't seem like the right solution. I would have expected some > changes in sim/common/syscall.c in the function cb_syscall. This would > mean that the syscall would be handled via the sim_syscall call below. > This is the only target that would need such a quirk, in the newlib this was introduced for compatibility with qemu, (but funny thing the fopen syscall from newlib does not work with qemu :) but I have not seen a way to configure a callback from inside sim_syscall for such target- specific thing. I just saw similar things in sim/bfin/interp.c where a CB_SYS_mmap2 had to be implemented and apparently the complete sim_syscall was cloned into bfin_syscall which looked more ugly than this. >From there I took the idea to start the dynamic memory area at DEFAULT_MEM_SIZE / 2, which I also just did because I have not seen an easy way to find the end of the data segment. Thanks Bernd. > Thanks, > Andrew > >> riscv_cpu->a0 = sim_syscall (cpu, riscv_cpu->a7, riscv_cpu->a0, >> riscv_cpu->a1, riscv_cpu->a2, riscv_cpu->a3); >> break; >> -- >> 2.25.1 >