From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [62.209.51.94]) by sourceware.org (Postfix) with ESMTPS id D9DC73870863 for ; Mon, 27 Apr 2020 15:30:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org D9DC73870863 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 03RFCHxj012331 for ; Mon, 27 Apr 2020 17:30:45 +0200 Received: from eur03-ve1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2058.outbound.protection.outlook.com [104.47.9.58]) by mx07-00178001.pphosted.com with ESMTP id 30mhcbtght-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 27 Apr 2020 17:30:45 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K1uneS9/zzJw6qtVesxz7z32dW0kBSmEK0nhXCnNvWi0Jwe+z73tH+IUJ9e8dzbsJPKxeHUBYtriszNaEvEU5xSG86s2CktAnaKSa0Mqd16PdIv0kE2GXqJUBwkFQ3i11mEu4ropKTgoUUM2/BQDXlm4i+nDYg2zi/zeiLTeyVsW3dBaWcMjqZybXLiA83khcf0AGbWa2M5sEz+adwuOv1TEbH/Jf+nHYC+V4u/XQJWcTK2QPi9/198+4BqgdwZrMClt6Ib5wCZ1rq6jPNImrXN2jIeaUGvxcVx9GjnJ/x/HazxgaJgWnB4JeM7BFS6kQhOiMOu6aKXyttrFrKoIHg== 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-SenderADCheck; bh=G9hr+cocEr/Iei6gcXvLVDtN2LTkX8H7pNNuilvP954=; b=ESTELyNzyPS9GvzFI3s95X7sCoVgHp+w69L6ZI2RkH7rAoXrtgOKYxNSd7II4dGsu8AbEibrP2dR4a/33N0e0HkrxeyjSaRKRcSt/2ZefbxJ0k7PGX++JSQAvc+9VMjL3b3n5Qk7X4qeW8gboGC5vj/s8j+Vq+tCkmiGA898awROyAPhqvsUZK+EMNnJ7b6lMcNyeqEuLX4T96NmSwNM3F+qRNtD1H+UjyjuuQ4hapklQSTtD14y88pzMYwB9NS+klnqK6hbdjG03Xg29ukc0wZY8eF/FWZWedh4u6IiUWNhy8mhmHw/KYNZ1PeLeytoo5xTEYf6JkM7eF1+QEYAMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=st.com; dmarc=pass action=none header.from=st.com; dkim=pass header.d=st.com; arc=none Received: from DB8PR10MB3467.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:13b::21) by DB8PR10MB2697.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:a9::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.13; Mon, 27 Apr 2020 15:30:44 +0000 Received: from DB8PR10MB3467.EURPRD10.PROD.OUTLOOK.COM ([fe80::b1fd:2690:9ca:b9bd]) by DB8PR10MB3467.EURPRD10.PROD.OUTLOOK.COM ([fe80::b1fd:2690:9ca:b9bd%8]) with mapi id 15.20.2937.020; Mon, 27 Apr 2020 15:30:44 +0000 From: Torbjorn SVENSSON To: "newlib@sourceware.org" CC: Niklas DAHLQUIST Subject: [PATCH] Implemented sysconf for Arm Thread-Topic: [PATCH] Implemented sysconf for Arm Thread-Index: AdYcqJ7wcp7qPoYASY61tN5B7IXZaA== Date: Mon, 27 Apr 2020 15:30:43 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [165.225.76.172] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fc18813d-31ef-4079-09b0-08d7eabff383 x-ms-traffictypediagnostic: DB8PR10MB2697: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:341; x-forefront-prvs: 0386B406AA x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB8PR10MB3467.EURPRD10.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(376002)(39860400002)(346002)(136003)(396003)(2906002)(33656002)(4326008)(26005)(9686003)(6916009)(5660300002)(55016002)(6506007)(66446008)(316002)(186003)(55236004)(8676002)(66946007)(81156014)(52536014)(7696005)(8936002)(66476007)(64756008)(71200400001)(66574012)(66556008)(86362001)(76116006)(478600001); DIR:OUT; SFP:1101; received-spf: None (protection.outlook.com: st.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: I9SQiH7k23LqMicKkyZl9KaJUyb//9eZDTou5Dga5cLoAQfhFgLwE+qwM00ExS3lCZcX9ig7qmvID3S02CTfMfvMz+qa5RslZmph9KzZxDHxI/suD/6mSSsVBKICwnjoe4095I1VmL0jieLKkmxLLtGZtUN20wq793PimIXQNEt4PCIs/dByTGkwhEvVpzOhawNPFnjraFpncSchBRnbG4ZaI6/7F22EZdm2zAvUC6jtGJgeufDDFhs9B4Wd1UNuMTtwOOq8So0HJT2/pi7Mq9rV37YJeYo/eI+K1sShKkiCqfZCeOCIRMumyNCnPh7Eo7MsZDLrogDfSvbGDMg4GtnaGGvHMdaix6nva1ei+ruI01VbwRdcC3Vg1I1mM6EF+1910qzq1yZiMBKH2wYMNDV8RUv4djDQszjUz7sRnGcC0vh83nu9a4a2DV1doHbY x-ms-exchange-antispam-messagedata: rJvcFaEkE1hfzNNbPfnWDwPjFYJHSLy/0oKCZmTPjnX7OKpCtVK26fVwuhomqJ6R+mBV1MoklkhgoJ8ysXZP/JwFzWVeLQ6K/UezY8WqaLRhpoLy2pKqAHFeUScOQaiFisNvbw8MxICn+kmJGPbWx2Gnci7IgybQerwGuGp/iRamzfgC2+7b0MqU9INURuLrIZqMXh4npJXxSICtdtjM/J9neBL3QueFLoYeeDfpt3oMY6oi+iQCvr2mbSDAlGi8Bk6m67nWRIPtv/7VWH+QB3qcMdq0pVLjxo7uMbCsKt74ZiLBKmAgkF63DThOjSejVVlm0W/3o/WcDhrmeFjD1S7qBav+RYBgvaJa9ahIqwgePTc+baGkfxUyIpoGtxfbYoUK+DoLH5dsfpNbDBTmhb3EZwNqL5y+PCjnr1zwF+KH9pyfIG0i52aFR7DfNj2W/pQUj18cjV3RfJn22d6IVaNIiyr8y9D6ElBvPFJ9tc8i8ykzdmcTtwCOJFpeY0K5GdIQsljx9MKke/PPD38Xf5kYHy4QMpfqNZY4InJHEyTN7kjGFrTy1gC/URebYVcJSA4gKbNNUuTg4fR/B9RLc5g0QGpwyKgwaomAP9Bqe54v6FtiVEjc/5V3wQMsQBCgqhc9Qxq92qURUk4hFURT02uJ2MzJf1iy+oySWLUFH1ocIueSSNm36Ed4NZZZlaG2phAsPqT/u7WgVR1RI/VS+Ig7kH7F9ijfJ5dt+leARXQbR2wXZ8Ecn0e/YgpzzsbkTyuR5MyeCKxLQ7vgUXJzgN/35qg/vOPsW5PQnlPKwyA= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: ST.COM X-MS-Exchange-CrossTenant-Network-Message-Id: fc18813d-31ef-4079-09b0-08d7eabff383 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2020 15:30:44.0114 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: qzNztf2IixstauW7lYAm/OEHiZ0dqtmj+uvXW3uJgDWFtwoyL/BEo1LpKh9eZOrlSZDZ2BSAplQDT8ETW1ZJXmBaWXrzGYFrnh67zqGHytc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR10MB2697 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-04-27_11:2020-04-27, 2020-04-27 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 suspectscore=0 adultscore=0 phishscore=0 bulkscore=0 spamscore=0 mlxlogscore=557 clxscore=1011 impostorscore=0 lowpriorityscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004270127 X-Spam-Status: No, score=-26.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, 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:30:57 -0000 The default implementation can be overridden outside newlib to allow a different page size to improve malloc on devices with a small footprint without needing to rebuild newlib. Signed-off-by: Torbj=F6rn SVENSSON Signed-off-by: Niklas DAHLQUIST --- newlib/libc/stdlib/mallocr.c | 2 +- newlib/libc/sys/arm/Makefile.am | 2 +- newlib/libc/sys/arm/Makefile.in | 12 ++++++++++-- newlib/libc/sys/arm/sysconf.c | 20 ++++++++++++++++++++ 4 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 newlib/libc/sys/arm/sysconf.c diff --git a/newlib/libc/stdlib/mallocr.c b/newlib/libc/stdlib/mallocr.c index 26d1c89cc..28d278f51 100644 --- a/newlib/libc/stdlib/mallocr.c +++ b/newlib/libc/stdlib/mallocr.c @@ -316,7 +316,7 @@ extern "C" { # undef WIN32 #endif =20 -#ifndef _WIN32 +#if !defined(_WIN32) && !defined(__ARM_EABI__) #ifdef SMALL_MEMORY #define malloc_getpagesize (128) #else diff --git a/newlib/libc/sys/arm/Makefile.am b/newlib/libc/sys/arm/Makefile= .am index 711872de3..9111f3647 100644 --- a/newlib/libc/sys/arm/Makefile.am +++ b/newlib/libc/sys/arm/Makefile.am @@ -14,7 +14,7 @@ else extra_objs =3D endif =20 -lib_a_SOURCES =3D access.c aeabi_atexit.c +lib_a_SOURCES =3D access.c aeabi_atexit.c sysconf.c lib_a_LIBADD =3D $(extra_objs) EXTRA_lib_a_SOURCES =3D trap.S syscalls.c libcfunc.c lib_a_DEPENDENCIES =3D $(extra_objs) diff --git a/newlib/libc/sys/arm/Makefile.in b/newlib/libc/sys/arm/Makefile= .in index c01e4e2ed..67fb695f5 100644 --- a/newlib/libc/sys/arm/Makefile.in +++ b/newlib/libc/sys/arm/Makefile.in @@ -70,7 +70,8 @@ ARFLAGS =3D cru lib_a_AR =3D $(AR) $(ARFLAGS) @MAY_SUPPLY_SYSCALLS_TRUE@am__DEPENDENCIES_1 =3D $(lpfx)libcfunc.o \ @MAY_SUPPLY_SYSCALLS_TRUE@ $(lpfx)trap.o $(lpfx)syscalls.o -am_lib_a_OBJECTS =3D lib_a-access.$(OBJEXT) lib_a-aeabi_atexit.$(OBJEXT) +am_lib_a_OBJECTS =3D lib_a-access.$(OBJEXT) lib_a-aeabi_atexit.$(OBJEXT) \ + lib_a-sysconf.$(OBJEXT) lib_a_OBJECTS =3D $(am_lib_a_OBJECTS) DEFAULT_INCLUDES =3D -I.@am__isrc@ depcomp =3D @@ -183,6 +184,7 @@ pdfdir =3D @pdfdir@ prefix =3D @prefix@ program_transform_name =3D @program_transform_name@ psdir =3D @psdir@ +runstatedir =3D @runstatedir@ sbindir =3D @sbindir@ sharedstatedir =3D @sharedstatedir@ srcdir =3D @srcdir@ @@ -198,7 +200,7 @@ AM_CCASFLAGS =3D $(INCLUDES) noinst_LIBRARIES =3D lib.a @MAY_SUPPLY_SYSCALLS_FALSE@extra_objs =3D=20 @MAY_SUPPLY_SYSCALLS_TRUE@extra_objs =3D $(lpfx)libcfunc.o $(lpfx)trap.o $= (lpfx)syscalls.o -lib_a_SOURCES =3D access.c aeabi_atexit.c +lib_a_SOURCES =3D access.c aeabi_atexit.c sysconf.c lib_a_LIBADD =3D $(extra_objs) EXTRA_lib_a_SOURCES =3D trap.S syscalls.c libcfunc.c lib_a_DEPENDENCIES =3D $(extra_objs) @@ -288,6 +290,12 @@ lib_a-aeabi_atexit.o: aeabi_atexit.c lib_a-aeabi_atexit.obj: aeabi_atexit.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) = $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-aeabi_atexit.obj `if test -f 'aeabi_a= texit.c'; then $(CYGPATH_W) 'aeabi_atexit.c'; else $(CYGPATH_W) '$(srcdir)/= aeabi_atexit.c'; fi` =20 +lib_a-sysconf.o: sysconf.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) = $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sysconf.o `test -f 'sysconf.c' || ech= o '$(srcdir)/'`sysconf.c + +lib_a-sysconf.obj: sysconf.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) = $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sysconf.obj `if test -f 'sysconf.c'; = then $(CYGPATH_W) 'sysconf.c'; else $(CYGPATH_W) '$(srcdir)/sysconf.c'; fi` + lib_a-syscalls.o: syscalls.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) = $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-syscalls.o `test -f 'syscalls.c' || e= cho '$(srcdir)/'`syscalls.c =20 diff --git a/newlib/libc/sys/arm/sysconf.c b/newlib/libc/sys/arm/sysconf.c new file mode 100644 index 000000000..86a324fa4 --- /dev/null +++ b/newlib/libc/sys/arm/sysconf.c @@ -0,0 +1,20 @@ +/* libc/sys/arm/sysconf.c - The sysconf function */ + +/* Copyright 2020, STMicroelectronics */ + +#include +#include + +long sysconf(int name) +{ + switch (name) + { + case _SC_PAGESIZE: + return 4096; + + default: + errno =3D EINVAL; + return -1; + } + return -1; /* Can't get here */ +} --=20 2.18.0