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 C63A43895467 for ; Tue, 19 May 2020 16:17:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C63A43895467 Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 04JG84pd027196 for ; Tue, 19 May 2020 18:17:30 +0200 Received: from eur04-vi1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2050.outbound.protection.outlook.com [104.47.14.50]) by mx07-00178001.pphosted.com with ESMTP id 31272h2qav-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 19 May 2020 18:17:30 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B+c+vOOyCyvRe4ZuyVaZi8b6/acfRfAJmwejEWqzZycG9UnL4aAzgMKdrP8e86rOenUFuCORGN317R0CGLU36j/lg0Sru2gwOFZtQPUxNKC/lQSLE7nV6z3ByiWZ2n0MOVk9KAnsNZMOECrBuAQXNSBN3zzSGjg6R38+bAV/9Ap8jznfIv3SwPf2NHcAHmlB7ub85yjW7xEev97uBTN+BzNBjhVheueoJLqqs2RovaAyreeJp+MNvgLBnXiOg+Ma3x7IOBCZQqJLyqTnuv9qxiwd6U52on5NhkhkzRhznsBl6RVpEgANtQse8HPQ3+8gBd4mE+qLQNI/X2p7hAgO5w== 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=/PWAbx2FSYigsdXEjVRh5FnQY0t6S7bw+7pX3WZ6f2U=; b=OAGI2IYcz7xCUHO/t271m6zrAgknAuL4cZJSHtVaX1saDWQbCHYrDn9zw87UOc2Fj/TM1VHIzR5y3Kc7ocB56GBTnbLFz/o6kEj9TF0yxQMEWu2em5wS563qsLdvmfbrA5hx+aHKrTLF6ECJ9S4dTJo4jyt/mgTxmYUDXswaUTP6m8OKJQnrP1Q3+cUgKEGH9+RQmeBhNEhbmgszCBErEiNxnKkGxRPxx6q8rVUHP6tOAk0NL6RgFez0jJiBS6gSH1m61nCzqW0eYMSDWm612NnpComvABucQa+VtsqanXO/jhTkkF87U0J3imwQw0ee5SwvzHuNK6PoQ1i+NUXnwg== 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 DB8PR10MB3180.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:f8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.25; Tue, 19 May 2020 16:17:29 +0000 Received: from DB8PR10MB3467.EURPRD10.PROD.OUTLOOK.COM ([fe80::8c49:d17d:d6fa:523c]) by DB8PR10MB3467.EURPRD10.PROD.OUTLOOK.COM ([fe80::8c49:d17d:d6fa:523c%7]) with mapi id 15.20.3000.034; Tue, 19 May 2020 16:17:29 +0000 From: Torbjorn SVENSSON To: "newlib@sourceware.org" CC: Niklas DAHLQUIST Subject: RE: [PATCH] Implemented sysconf for Arm Thread-Topic: [PATCH] Implemented sysconf for Arm Thread-Index: AdYcqJ7wcp7qPoYASY61tN5B7IXZaAHoMsPAAmuoN4A= Date: Tue, 19 May 2020 16:17:29 +0000 Message-ID: References: In-Reply-To: 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: ee9b0781-6f8c-4120-4cd4-08d7fc102088 x-ms-traffictypediagnostic: DB8PR10MB3180: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3276; x-forefront-prvs: 040866B734 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: V34GCvrEwTPpdv8KykI/XHKBVA/i0wI9fgzaiDWaDBOGyQ5iDQo3DQnmulM2KWlkUUephV+9cj30ne6HxeyjdfJjBVMy/uwYk86Q2ZpU5VXwCl06Afp4A/DjV1u0Bw8zDENdfJPpk1WUO9mc+4RbRfYo9k67xfD8jFaVEVgNZBRbJxRb55dGOTMXEueKul8I/OmXhUtlwrmOUirHnSh78bMOHeI/GIpDqLu40GAR2mzv0/Fk34ddnjcFelvECAFzYSJaUY3DhM2hZPUpsHVV6gBGel3jqQl7ErYbWjpGcEkYnaoLD+arEX1Qe66ac2brTNggBbGkr17KbtTeMc5U1YEzB+CILfVtdbrmd+waw576N7FC0trTwfEFJ46qVOpTDRM95vr4Jfb3m1UFa8Hlyy/WDdIrMfqMdpJp0BR8hzw2Ou6zHs92s/R8ZhRZ2kkw 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)(376002)(346002)(396003)(366004)(39860400002)(136003)(8936002)(186003)(8676002)(5660300002)(52536014)(2906002)(86362001)(76116006)(66946007)(9686003)(66446008)(6916009)(55016002)(66476007)(66556008)(64756008)(6506007)(53546011)(316002)(478600001)(71200400001)(7696005)(55236004)(33656002)(26005)(4326008)(66574014); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: RVIRsV0OERQ+lNHFFeF6mtcKNHi01EYETpDYGmaR7qw5/f1t8+oQjWScytNSUZyLYySN9Vde8rutu43VEZYPc0IEljMZfBuVj0UGpMXz3dF23nm0UDS9L42rbihGBUrBfOCkW3G61ie2QDGGOEy2thWX60Lk+Tr0Ia7T280E/SUpK0DjinFNf6xtMTiQBSsRSicrMMYBKcifPXAGxA/U2XUaoSvv0MmG7MWHYlk+IWK6fE/cJWagQ9Xh+cavfpITr+hBV2XZWqIGMgo97OoSOgZ95Qon+tlnGVG5/ArEJkagrHaONAfz5DwbMakzWdsk/vO/2D98Vsg3i3SlBYD3AzMQCCJYfPbMjj75OQ8tEbjdBhdqJKHRg3VfNw1M4J81pogsKPT9mTj0Pi5Th+WGBvO/1WZZ7065iiPjgiA0U39JFMCS+Un9zYS6HGMtNg9BcciKKOEojKeBM4FXm0RZuWi+NKCvkquA6ywvaYyCwOW4Q593j+ClQjfxKtfx+o5s 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: ee9b0781-6f8c-4120-4cd4-08d7fc102088 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2020 16:17:29.0469 (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: +GO4I0NXGRpz4kf/OZ1VfdER8ZVlxdD/XT86hxCAcXWp7fmqAr+AqD41Oh1rx2VbWjrEIx9x3MqhyFGv8qamJXWDM9RAgXR5N5rPvznspqc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR10MB3180 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.676 definitions=2020-05-19_05:2020-05-19, 2020-05-19 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 impostorscore=0 mlxlogscore=970 suspectscore=0 spamscore=0 cotscore=-2147483648 adultscore=0 priorityscore=1501 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2005190137 X-Spam-Status: No, score=-14.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, 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: Tue, 19 May 2020 16:17:33 -0000 Ping2! If it's not clear to the reviewer, the use-case that we want to fulfill her= e is to be able to override the page size for the malloc() call for the pro= ject and not require a new build of newlib. With this approach, simply re-implementing the function sysconf(int) in the= application to return the appropriate page size for the application and ha= ve the linker will select the local implementation over the newlib provided= one is enough to reserve a smaller memory block for malloc. I also need assistance to push the patch since I've not got commit access. Thanks. Torbj=F6rn -----Original Message----- From: Torbjorn SVENSSON=20 Sent: den 7 maj 2020 10:29 To: Newlib Cc: Niklas DAHLQUIST Subject: RE: [PATCH] Implemented sysconf for Arm Ping -----Original Message----- From: Newlib On Behalf Of Torbjorn SVENSSON= via Newlib Sent: den 27 april 2020 17:31 To: newlib@sourceware.org Cc: Niklas DAHLQUIST Subject: [PATCH] Implemented sysconf for Arm 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