From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id 15D6478003C for ; Thu, 18 Jul 2024 04:58:26 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=w3c2AlH9OE3tRl6xkMrf2x2o4Ko8zrmmMkgbNpSRCIM=; c=relaxed/simple; d=groups.io; h=From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20240206; t=1721278706; v=1; b=1uL91X01gZbGRrtfPTeg+tN50bEJ40NYDcg9WNY2xAj9wTa6tZRXifJtbDaIsLQBQbjF9W2p qB8zWREQFit9fsSMPe5iESKbMo0WP5SWC/UfieFtUKN/X1+beKBNWOZRqxUPEkhkSZmYH4+xDRV gvjGFUVkwZJyCux4fke+2eA2YZc8L+5vU+p1XiKjtZNv5js5g82X7ZSl+zdzwkg9lqAX5b/HrMr foUJUdt4JZgnmDe7TNJPaSvQkLYinGimAPqKeEORAadH/z7NAONmBAMqVBHI4XC+xBwasQ3cz9E 3EfDQZD/pz9oGxIxfP9PvPtOVfodz8cNZyj0ABvCldq0A== X-Received: by 127.0.0.2 with SMTP id mjWSYY7687511xuBUYTBuwBr; Wed, 17 Jul 2024 21:58:25 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11]) by mx.groups.io with SMTP id smtpd.web10.8450.1721278704448732375 for ; Wed, 17 Jul 2024 21:58:24 -0700 X-CSE-ConnectionGUID: FfsJBJCaQ8+t+8Vnr5tanQ== X-CSE-MsgGUID: OydwbdbqQkmmExIVf4YKKg== X-IronPort-AV: E=McAfee;i="6700,10204,11136"; a="29399212" X-IronPort-AV: E=Sophos;i="6.09,216,1716274800"; d="scan'208";a="29399212" X-Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jul 2024 21:58:24 -0700 X-CSE-ConnectionGUID: XBei5kVkSzKhjAvt6gIG2A== X-CSE-MsgGUID: lSzNloYNQ3SweJM4LWM1Ag== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.09,216,1716274800"; d="scan'208";a="55773394" X-Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orviesa004.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 17 Jul 2024 21:58:24 -0700 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 17 Jul 2024 21:58:23 -0700 X-Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Wed, 17 Jul 2024 21:58:23 -0700 X-Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.49) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Wed, 17 Jul 2024 21:58:23 -0700 X-Received: from PH7PR11MB5943.namprd11.prod.outlook.com (2603:10b6:510:13f::19) by SN7PR11MB7589.namprd11.prod.outlook.com (2603:10b6:806:34a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.16; Thu, 18 Jul 2024 04:58:20 +0000 X-Received: from PH7PR11MB5943.namprd11.prod.outlook.com ([fe80::15cc:b461:7bb8:b69f]) by PH7PR11MB5943.namprd11.prod.outlook.com ([fe80::15cc:b461:7bb8:b69f%5]) with mapi id 15.20.7762.027; Thu, 18 Jul 2024 04:58:20 +0000 From: "Jayaprakash, N" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: Rebecca Cran Subject: Re: [edk2-devel] [edk2-libc Patch 1/1] edk2-libc: Support for compiling Python UEFI interpreter with VS2022 Thread-Topic: [edk2-libc Patch 1/1] edk2-libc: Support for compiling Python UEFI interpreter with VS2022 Thread-Index: AQHa2BdBNEEjxRpu4k+1MnBfxhuEsbH7F1kAgADVSAA= Date: Thu, 18 Jul 2024 04:58:20 +0000 Message-ID: References: <20240717070053.323-1-n.jayaprakash@intel.com> <20240717070053.323-2-n.jayaprakash@intel.com> In-Reply-To: Accept-Language: en-IN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR11MB5943:EE_|SN7PR11MB7589:EE_ x-ms-office365-filtering-correlation-id: c2aadba4-957b-4626-0d01-08dca6e63e7f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: =?us-ascii?Q?WqLH2JBHUC77tCKB6IHgZXXkG9Iud5rCR8hNKSqy9wLgJ+lHfq7pG8DNDrRc?= =?us-ascii?Q?hkCajXOzmTLhhCLvicQUGrz0ttVJbqonvmAsYwZArE5fnpUE2+d0Jv2Bdglm?= =?us-ascii?Q?jaUD8JU4bR1Fh70ABu8AYcGTUFAjyt5H36wLGtmx4M/5apI99WEGZXnFErwV?= =?us-ascii?Q?elhfnhHeWkODFl9OZ/DUWc9E6FBOSsRp86vQRY1d40joHjJ9FEzjBXCoPWVM?= =?us-ascii?Q?yA+NzJPeCM0Ethy+yGGV4fgjshoIA+3bvwQU1BAD478/n7wU22hrNfy9Nyn4?= =?us-ascii?Q?LK3ItNCuD97GXnXc0jUxTA2BFEhBmyUUSGgV5VjQfyor/ZEME6FnH7SOojWH?= =?us-ascii?Q?Q0sMoaRZEF8x+f8L2PfsxbicPiVjg+1ittEcsbccYSDKwD/Yrh/bI4UmYv8h?= =?us-ascii?Q?V62IxjoyP9RCxv4wEEqxmuptdiGMMh7DHa0U9UEt87x8ikXhkPOp6RyAt3zR?= =?us-ascii?Q?dGdy7NaGm/juMvQWJxCupnnsWF3e4jyJZ/x8aAaq8K9BtENGvL7k0TklDu08?= =?us-ascii?Q?uMzIjJhOETGlk2IoOdYMIXf0LO/BHWg1bnLjiY3UMruFe0s7Vtn71KLXZ84u?= =?us-ascii?Q?NnHaef5DFy3pe7Lsni01lT+Go2A6QAdzmOabWTBzsgdYySe6efODZyFJxwmx?= =?us-ascii?Q?SdO+MMaR3HP6LDUBbUv0eGxPgUrKoTnJ6Gjgpfvw5QGSBwB2S2PkNUF6IExL?= =?us-ascii?Q?n9tfkeafxDijH0YVaEOjV48j99vIDCfKav4wxY4vCfcQw26vU3FkIGEh8ktm?= =?us-ascii?Q?1o12nDseN8aqJALcl/glPcUe4KXsps9KCshbOx85BhtCq0cLpeDibqJAO1Aj?= =?us-ascii?Q?yK/MSIPxWpLHSOKxcqaHPXoaIsviEDjRdcaRASsWrlemBBXcSu0UDl8PXL3N?= =?us-ascii?Q?A1h9C8rUblqKDhGcppqfXtEW4K+FoTa5Wz38zduxaqupEVKrrczbrKwTdK5W?= =?us-ascii?Q?Czd4uNiXUmzx5sNMvRvvavJx7xf+gALuI0quGnnHteqse0DrEMBw9rUizhGF?= =?us-ascii?Q?thEhQFUWocTnjBtk1YTxrdG6pdvnYnjBTc36sOYaQrhjs7FMukcd0VpEjZbq?= =?us-ascii?Q?eIvD3nEMCaCCbBEzHgyFj/6TpvQ5WXqe2fdTWrDu+sANpvT7BM1QwlDcR3wV?= =?us-ascii?Q?hWsjfvvyqNifIKG51bYg1JLstUDgEDKTGJsrUuYMfOE9rM3W7hwkUW2/b1tn?= =?us-ascii?Q?okAIVJNHS7e1kmlnbV+IyKGOpJcc4FV2HqoTd3U9Co5WRvelwbX7Qb9GNX/Y?= =?us-ascii?Q?zdyUZMFujibZzWu42RdP8oXjVyLDeYBBwJkJVVz1iieG47uGqmjXsqDzviQ3?= =?us-ascii?Q?Pgc+VWe/2rEXyCFrGI4kbqeJh1KJiY0WCa+pnX7IxGc22MukOA/xB5/YfsYE?= =?us-ascii?Q?9ENRUuI=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?mQ99jfCjn5PmVpehpn+xuSv+ZhCumwnhjHDbR+itDQ8k2s/0nXiABzpJx02I?= =?us-ascii?Q?ouwgTzeEB5+IaI+IKKNm+p4H0UQUdTPsQRJjrdgj4TxNstkYScNGfx6qQqEG?= =?us-ascii?Q?+Qt3WVSb4O/ATlTrMheXutSMxyYMEeBmbVBmEGLQ+z6H35xYV5JlvdlQkgDf?= =?us-ascii?Q?q0eSFPi1gI/Fqe1edjr0WnsaUgj8MHMYOQSpfxkvuzPXzmqL9RJCKxVPyTzV?= =?us-ascii?Q?H+YKDdRD947YE/z3OGIWj2txgcLUiPROMdTznyi0oj95ZcuPpm1uvD+vMtOo?= =?us-ascii?Q?yplIiF02yLJ/XdyLpl/KtgT/pRUFBQ7YE11ftqi5l3VG7EdPNS/B/kRJs0oZ?= =?us-ascii?Q?le1DDrYizjHmi9t24xRVmkgIx5HxpzKojw1hEQ+0x+x5oLlStCzmDHzEB6ci?= =?us-ascii?Q?xD3gPUayuVqPO+ZhPmX+oXEi+r6VDtAM5OGezNmd/ivtxcJw/dMFcloieEmz?= =?us-ascii?Q?LJ86/D2FAI4ijfNY19m9BvvEFhLpd9ckaxtuxWeXUkikOWoMQHjNXdwhsGRb?= =?us-ascii?Q?jrK9X7iL5KqYeLE1qa43lZJGOU2Vx5/i4wDAxDtMQBfoXL+TVsWxwAf4Gcoq?= =?us-ascii?Q?u73MHje4ekpCD6/iet/E25mpDZckHSbEZNcDhcnozziDW2BD70sVLA7mHiYw?= =?us-ascii?Q?wg+oPnrDMK7qlfgTCoxSOIU+D6jrHZDc5W1+CIbpOGfSXSmj7qxBx4DQHKIN?= =?us-ascii?Q?g6dli6OceANtDqrgoDHlkU/PwKMuvRlVDzuaITsTO2UiAW7jUruPbi8SmxDf?= =?us-ascii?Q?344bJ1s3XLQjadkCQB1R1H+sAf4INkcV8laJy+jWKzFR/VmC8TT+9ET05Da5?= =?us-ascii?Q?HFcV6jSjcmxpyNEyf1h0U6vEK5EqcA6migN7yMboLuvLownTHawJrhdksFBL?= =?us-ascii?Q?gWUscGLd5+54Ck9I/RTmoObFJnnkBW+xsVohTRBA63O2mN2vh5d+rSkCOJpd?= =?us-ascii?Q?JpK1unQMAn61RkJ9xwLUs/KpQY1i2t3SWBxfPJAc/QuFT7308Uvj4ioNSfI8?= =?us-ascii?Q?vlbBbpbGfn32wTYOLAvzBu1SGxRxyIM70vtbC3gwjPBVc8rXlv0YpaaBpjvz?= =?us-ascii?Q?P8yjms4e8JCVoA1lUqzTMby7BkD2jUP+0wj/zHaXaNXuCEJPBVmRCMsAlP7u?= =?us-ascii?Q?Y7nuMsLGTPqimlgGndISxb4WxrzJCN4YJ2t2K9bmWIn3FjWhEPcdEsgip4Ar?= =?us-ascii?Q?maARrj+kzGaK7kDQgLygRd7KJcXLq+KaE2basPXUZPQJ+n/izXLyAIVxznzC?= =?us-ascii?Q?6IV8S5Fi+eQ4RAZ+pR0ywKdrDEEsTMUiNJRFPY3AOAbZ4h+78v48sta77G9G?= =?us-ascii?Q?uXGsXDEJYaHp88azphXbSb+X7lNsZcGuyPvvMWstuTHtFEdg+nL/uRp2QdkX?= =?us-ascii?Q?HkZaWHk9XnbWM+c26ywiwY+wzKjwCCUQ4FYvAzpzAjyEnuALUyc9Z/Qylfz7?= =?us-ascii?Q?zQHfI3bB5Mwl21hXjmi01ka4LffNptrijTrwdmcn4DAlQfoyXVQTuR4LeUyk?= =?us-ascii?Q?n4ksoNU9zwsb0/NZ0LdMK+YU57JyMm3oL1wqCy64SkcJoBgE5R09ZrpjTjn4?= =?us-ascii?Q?tG7ShjtSI5H0sphA2erxVXdE8pMDCuNRI2z3+Bws?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB5943.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2aadba4-957b-4626-0d01-08dca6e63e7f X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2024 04:58:20.0865 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Mxdp3boyjDFkTub2xJfKQRpw3m69p/ARhsham5+a8nkhvI9X89l8Eism8ILB8sg17jvZtgQ5HPAxBT4cEE695g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB7589 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Wed, 17 Jul 2024 21:58:24 -0700 Resent-From: n.jayaprakash@intel.com Reply-To: devel@edk2.groups.io,n.jayaprakash@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: XQWgMol3eEEdAjh10xWtKaDex7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=1uL91X01; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io Hi Mike, It's a big list of warnings treated as errors in VS2022. So, I have captured all these compilation issues in the BZ: https://bugzill= a.tianocore.org/show_bug.cgi?id=3D4811 GitHub actions with VS2019 and GCC building successfully post these fixes i= n my fork of edk2-libc. VS2019 Github action: https://github.com/jpshivakavi/edk2-libc-jp/actions/r= uns/9969663166 GCC github action: https://github.com/jpshivakavi/edk2-libc-jp/actions/runs= /9969663158 I have also verified the builds with VS2022 in my local workspace.=20 Regards, JP -----Original Message----- From: Kinney, Michael D =20 Sent: Wednesday, July 17, 2024 9:40 PM To: Jayaprakash, N ; devel@edk2.groups.io Cc: Rebecca Cran ; Kinney, Michael D Subject: RE: [edk2-libc Patch 1/1] edk2-libc: Support for compiling Python = UEFI interpreter with VS2022 Can you list the compiler errors that are being fixed by this patch? Mike > -----Original Message----- > From: Jayaprakash, N > Sent: Tuesday, July 16, 2024 11:59 PM > To: devel@edk2.groups.io > Cc: Jayaprakash, N ; Rebecca Cran=20 > ; Kinney, Michael D > Subject: [edk2-libc Patch 1/1] edk2-libc: Support for compiling Python=20 > UEFI interpreter with VS2022 >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4811 >=20 > This commit fixes the compilation issues observed with several=20 > components in the edk2-libc repo while trying to compile Python=20 > interpreter for UEFI. >=20 > Cc: Rebecca Cran > Cc: Michael D Kinney > Cc: Jayaprakash N > Signed-off-by: Jayaprakash N > --- > AppPkg/Applications/Enquire/Enquire.c | 48 +++++------ > .../OrderedCollectionTest.c | 10 +-- > .../Sockets/DataSource/DataSource.c | 10 +-- > AppPkg/Applications/Sockets/OobRx/OobRx.c | 4 +- > .../Applications/Sockets/RawIp4Rx/RawIp4Rx.c | 4 +- > StdLib/BsdSocketLib/getnetbyht.c | 9 ++- > StdLib/BsdSocketLib/ns_print.c | 57 +++++++------ > StdLib/EfiSocketLib/Socket.c | 80 +++++++++---------- > 8 files changed, 116 insertions(+), 106 deletions(-) >=20 > diff --git a/AppPkg/Applications/Enquire/Enquire.c > b/AppPkg/Applications/Enquire/Enquire.c > index 1e1db69..5e34f48 100644 > --- a/AppPkg/Applications/Enquire/Enquire.c > +++ b/AppPkg/Applications/Enquire/Enquire.c > @@ -5,7 +5,7 @@ > Steven Pemberton, CWI, Amsterdam; "Steven.Pemberton@cwi.nl" > Used with permission. >=20 > - Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved. > + Copyright (c) 2010 - 2024, Intel Corporation. All rights=20 > + reserved.
> This program and the accompanying materials > are licensed and made available under the terms and conditions of=20 > the BSD License > which accompanies this distribution. The full text of the license=20 > may be found at @@ -918,15 +918,15 @@ memeq( } >=20 > Void > -farewell(int bugs) > +farewell(int bugs_local) > { > - if (bugs =3D=3D 0) exit(0); > + if (bugs_local =3D=3D 0) exit(0); > printf("\n%sFor hints on dealing with the ", co); > - if (bugs =3D=3D 1) printf("problem"); > - else printf("%d problems", bugs); > + if (bugs_local =3D=3D 1) printf("problem"); else printf("%d problems"= ,=20 > + bugs_local); > printf(" above\n see the section 'TROUBLESHOOTING' in the file "); > printf("%s%s\n", FILENAME, oc); > - exit(bugs); > + exit(bugs_local); > } >=20 > /* The program has received a signal where it wasn't expecting one */=20 > @@ -1927,51 +1927,51 @@ int cprop( void ) >=20 > if (c_signed) { > #ifndef NO_UC > -/* Syntax error? Define NO_UC */ Volatile unsigned char c1, char_max; > - c1=3D0; char_max=3D0; > +/* Syntax error? Define NO_UC */ Volatile unsigned char c1, char_max_loc= al; > + c1=3D0; char_max_local=3D0; > c1++; > - if (setjmp(lab)=3D=3D0) { /* Yields char_max */ > - while (c1>char_max) { > - char_max=3Dc1; > + if (setjmp(lab)=3D=3D0) { /* Yields char_max_local */ > + while (c1>char_max_local) { > + char_max_local=3Dc1; > c1++; > } > } > Unexpected(4); > if (sizeof(char) =3D=3D sizeof(int)) { > u_define(D_UCHAR_MAX, "", "UCHAR", "_MAX", > - (ulong) char_max, > + (ulong) char_max_local, > (ulong) UCHAR_MAX, ""); > } else { > i_define(D_UCHAR_MAX, "", "UCHAR", "_MAX", > - (long) char_max, 0L, > + (long) char_max_local, 0L, > (long) UCHAR_MAX, ""); > } > #endif > } else { > #ifndef NO_SC > -/* Syntax error? Define NO_SC */ Volatile signed char c1, char_max,=20 > char_min; > - c1=3D0; char_max=3D0; > +/* Syntax error? Define NO_SC */ Volatile signed char c1,=20 > +char_max_local, > char_min_local; > + c1=3D0; char_max_local=3D0; > c1++; > - if (setjmp(lab)=3D=3D0) { /* Yields char_max */ > - while (c1>char_max) { > - char_max=3Dc1; > + if (setjmp(lab)=3D=3D0) { /* Yields char_max_local */ > + while (c1>char_max_local) { > + char_max_local=3Dc1; > c1++; > } > } > - c1=3D0; char_min=3D0; > + c1=3D0; char_min_local=3D0; > c1--; > - if (setjmp(lab)=3D=3D0) { /* Yields char_min */ > - while (c1 - char_min=3Dc1; > + if (setjmp(lab)=3D=3D0) { /* Yields char_min_local */ > + while (c1 + char_min_local=3Dc1; > c1--; > } > } > Unexpected(5); > i_define(D_SCHAR_MIN, "", "SCHAR", "_MIN", > - (long) char_min, (long) maxint, > + (long) char_min_local, (long) maxint, > (long) SCHAR_MIN, ""); > i_define(D_SCHAR_MAX, "", "SCHAR", "_MAX", > - (long) char_max, 0L, > + (long) char_max_local, 0L, > (long) SCHAR_MAX, ""); > #endif /* NO_SC */ > } > diff --git > a/AppPkg/Applications/OrderedCollectionTest/OrderedCollectionTest.c > b/AppPkg/Applications/OrderedCollectionTest/OrderedCollectionTest.c > index 712ee8f..ea44b31 100644 > ---=20 > a/AppPkg/Applications/OrderedCollectionTest/OrderedCollectionTest.c > +++ b/AppPkg/Applications/OrderedCollectionTest/OrderedCollectionTest. > +++ c > @@ -7,7 +7,7 @@ > per default, eg. serial line). >=20 > Copyright (C) 2014, Red Hat, Inc. > - Copyright (c) 2010 - 2011, Intel Corporation. All rights=20 > reserved.
> + Copyright (c) 2010 - 2024, Intel Corporation. All rights=20 > + reserved.
>=20 > SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -458,10=20 > +458,10 @@ SetupInputOutput ( >=20 > case 'h': > fprintf (stderr, > - "%1$s: simple OrderedCollectionLib tester\n" > + "%s: simple OrderedCollectionLib tester\n" > "\n" > - "Usage: 1. %1$s [-i InputFile] [-o OutputFile]\n" > - " 2. %1$s -h\n" > + "Usage: 1. %s [-i InputFile] [-o OutputFile]\n" > + " 2. %s -h\n" > "\n" > "Options:\n" > " -i InputFile : read commands from InputFile\n" > @@ -469,7 +469,7 @@ SetupInputOutput ( > " -o OutputFile: write command responses to OutputFile\n" > " (will write to stdout if absent)\n" > " -h : print this help and exit\n" > - "\n", ArgV[0]); > + "\n", ArgV[0], ArgV[0], ArgV[0]); > ListCommands (); > exit (EXIT_SUCCESS); >=20 > diff --git a/AppPkg/Applications/Sockets/DataSource/DataSource.c > b/AppPkg/Applications/Sockets/DataSource/DataSource.c > index 360689e..0ca6a9a 100644 > --- a/AppPkg/Applications/Sockets/DataSource/DataSource.c > +++ b/AppPkg/Applications/Sockets/DataSource/DataSource.c > @@ -1,7 +1,7 @@ > /** @file > Data source for network testing. >=20 > - Copyright (c) 2011-2012, Intel Corporation. All rights reserved. > + Copyright (c) 2011-2024, Intel Corporation. All rights reserved. > SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > **/ > @@ -538,7 +538,7 @@ EFI_STATUS > SocketSend ( > ) > { > - size_t BytesSent; > + size_t BytesSentLocal; > EFI_STATUS Status; > EFI_TPL TplPrevious; >=20 > @@ -562,8 +562,8 @@ SocketSend ( > // > // Send some bytes > // > - BytesSent =3D write ( Socket, &Buffer[0], sizeof ( Buffer )); > - if ( -1 =3D=3D BytesSent ) { > + BytesSentLocal =3D write ( Socket, &Buffer[0], sizeof ( Buffer )); > + if ( -1 =3D=3D BytesSentLocal ) { > DEBUG (( DEBUG_INFO, > "ERROR: send failed, errno: %d\r\n", > errno )); > @@ -589,7 +589,7 @@ Status =3D EFI_NOT_STARTED; > // > // Account for the data sent > // > - TotalBytesSent +=3D BytesSent; > + TotalBytesSent +=3D BytesSentLocal; >=20 > // > // Release the TimerCallback routine synchronization diff --git=20 > a/AppPkg/Applications/Sockets/OobRx/OobRx.c > b/AppPkg/Applications/Sockets/OobRx/OobRx.c > index 28e10d8..af07127 100644 > --- a/AppPkg/Applications/Sockets/OobRx/OobRx.c > +++ b/AppPkg/Applications/Sockets/OobRx/OobRx.c > @@ -150,7 +150,7 @@ OobRx ( > // > // Display the received OOB data > // > - printf ( "%5Ld OOB bytes received\r\n", (UINT64)BytesReceive= d ); > + printf ( "%5llu OOB bytes received\r\n",=20 > + (UINT64)BytesReceived > ); >=20 > // > // Account for the bytes received @@ -183,7 +183,7 @@=20 > OobRx ( > // > // Display the received data > // > - printf ( "%4Ld bytes received\r\n", (UINT64)BytesReceived = ); > + printf ( "%4llu bytes received\r\n",=20 > + (UINT64)BytesReceived ); >=20 > // > // Account for the bytes received diff --git=20 > a/AppPkg/Applications/Sockets/RawIp4Rx/RawIp4Rx.c > b/AppPkg/Applications/Sockets/RawIp4Rx/RawIp4Rx.c > index b52cd38..b190b44 100644 > --- a/AppPkg/Applications/Sockets/RawIp4Rx/RawIp4Rx.c > +++ b/AppPkg/Applications/Sockets/RawIp4Rx/RawIp4Rx.c > @@ -1,7 +1,7 @@ > /** @file > Raw IP4 receive application >=20 > - Copyright (c) 2011-2012, Intel Corporation. All rights reserved. > + Copyright (c) 2011-2024, Intel Corporation. All rights reserved. > SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > **/ > @@ -157,7 +157,7 @@ RawIp4Rx ( > // Display the bytes received > // > if ( 0 =3D=3D RetVal ) { > - printf ( "Total Bytes Received: %Ld\r\n", TotalBytesReceived = ); > + printf ( "Total Bytes Received: %llu\r\n",=20 > + TotalBytesReceived ); > } >=20 > // > diff --git a/StdLib/BsdSocketLib/getnetbyht.c > b/StdLib/BsdSocketLib/getnetbyht.c > index 08b8042..5907d44 100644 > --- a/StdLib/BsdSocketLib/getnetbyht.c > +++ b/StdLib/BsdSocketLib/getnetbyht.c > @@ -41,6 +41,11 @@ > * from getnetent.c 1.1 (Coimbra) 93/06/02 > */ >=20 > +/* > + * Copyright (c) 2024, Intel Corporation. All rights reserved. > + * SPDX-License-Identifier: BSD-2-Clause-Patent */ > + > #if defined(LIBC_SCCS) && !defined(lint) > static char sccsid[] =3D "@(#)getnetent.c 8.1 (Berkeley) 6/4/93"; > static char orig_rcsid[] =3D "From: Id: getnetent.c,v 8.4 1997/06/01=20 > 20:34:37 vixie Exp"; @@ -155,13 +160,13 @@ found: > } >=20 > struct netent * > -_getnetbyhtaddr(register unsigned long net, register int type) > +_getnetbyhtaddr(register unsigned long net_local, register int type) > { > register struct netent *p; >=20 > setnetent(_net_stayopen); > while ( NULL !=3D (p =3D getnetent()) ) > - if (p->n_addrtype =3D=3D type && p->n_net =3D=3D net) > + if (p->n_addrtype =3D=3D type && p->n_net =3D=3D net_local) > break; > if (!_net_stayopen) > endnetent(); > diff --git a/StdLib/BsdSocketLib/ns_print.c=20 > b/StdLib/BsdSocketLib/ns_print.c index ea29d01..fb19bf9 100644 > --- a/StdLib/BsdSocketLib/ns_print.c > +++ b/StdLib/BsdSocketLib/ns_print.c > @@ -55,6 +55,11 @@ > * > */ >=20 > +/* > + * Copyright (c) 2024, Intel Corporation. All rights reserved. > + * SPDX-License-Identifier: BSD-2-Clause-Patent */ > + > /* Import. */ >=20 > #include > @@ -211,7 +216,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, > break; >=20 > case ns_t_soa: { > - u_long t; > + u_long t_local; >=20 > /* Server name. */ > T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); @@=20 > -226,45 +231,45 @@ ns_sprintrrf(const u_char *msg, size_t msglen, > goto formerr; >=20 > /* Serial number. */ > - t =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > + t_local =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); > - len =3D SPRINTF((tmp, "%lu", (unsigned long)t)); > + len =3D SPRINTF((tmp, "%lu", (unsigned long)t_local)); > T(addstr(tmp, len, &buf, &buflen)); > T(spaced =3D addtab(len, 16, spaced, &buf, &buflen)); > T(addstr("; serial\n", 9, &buf, &buflen)); > spaced =3D 0; >=20 > /* Refresh interval. */ > - t =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > + t_local =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); > - T(len =3D ns_format_ttl(t, buf, buflen)); > + T(len =3D ns_format_ttl(t_local, buf, buflen)); > addlen(len, &buf, &buflen); > T(spaced =3D addtab(len, 16, spaced, &buf, &buflen)); > T(addstr("; refresh\n", 10, &buf, &buflen)); > spaced =3D 0; >=20 > /* Retry interval. */ > - t =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > + t_local =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); > - T(len =3D ns_format_ttl(t, buf, buflen)); > + T(len =3D ns_format_ttl(t_local, buf, buflen)); > addlen(len, &buf, &buflen); > T(spaced =3D addtab(len, 16, spaced, &buf, &buflen)); > T(addstr("; retry\n", 8, &buf, &buflen)); > spaced =3D 0; >=20 > /* Expiry. */ > - t =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > + t_local =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); > - T(len =3D ns_format_ttl(t, buf, buflen)); > + T(len =3D ns_format_ttl(t_local, buf, buflen)); > addlen(len, &buf, &buflen); > T(spaced =3D addtab(len, 16, spaced, &buf, &buflen)); > T(addstr("; expiry\n", 9, &buf, &buflen)); > spaced =3D 0; >=20 > /* Minimum TTL. */ > - t =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > + t_local =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); > - T(len =3D ns_format_ttl(t, buf, buflen)); > + T(len =3D ns_format_ttl(t_local, buf, buflen)); > addlen(len, &buf, &buflen); > T(addstr(" )", 2, &buf, &buflen)); > T(spaced =3D addtab(len, 16, spaced, &buf, &buflen)); @@ -276,15=20 > +281,15 @@ ns_sprintrrf(const u_char *msg, size_t msglen, > case ns_t_mx: > case ns_t_afsdb: > case ns_t_rt: { > - u_int t; > + u_int t_local; >=20 > if (rdlen < NS_INT16SZ) > goto formerr; >=20 > /* Priority. */ > - t =3D ns_get16(rdata); > + t_local =3D ns_get16(rdata); > rdata +=3D NS_INT16SZ; > - len =3D SPRINTF((tmp, "%u ", (unsigned int)t)); > + len =3D SPRINTF((tmp, "%u ", (unsigned int)t_local)); > T(addstr(tmp, len, &buf, &buflen)); >=20 > /* Target. */ > @@ -294,15 +299,15 @@ ns_sprintrrf(const u_char *msg, size_t msglen, > } >=20 > case ns_t_px: { > - u_int t; > + u_int t_local; >=20 > if (rdlen < NS_INT16SZ) > goto formerr; >=20 > /* Priority. */ > - t =3D ns_get16(rdata); > + t_local =3D ns_get16(rdata); > rdata +=3D NS_INT16SZ; > - len =3D SPRINTF((tmp, "%u ", (unsigned int)t)); > + len =3D SPRINTF((tmp, "%u ", (unsigned int)t_local)); > T(addstr(tmp, len, &buf, &buflen)); >=20 > /* Name1. */ > @@ -503,33 +508,33 @@ ns_sprintrrf(const u_char *msg, size_t msglen, > } >=20 > case ns_t_sig: { > - u_int type, algorithm, labels, footprint; > + u_int type_local, algorithm, labels, footprint; > const char *leader; > - u_long t; > + u_long t_local; > int n; >=20 > if (rdlen < 22) > goto formerr; >=20 > /* Type covered, Algorithm, Label count, Original TTL. */ > - type =3D ns_get16(rdata); rdata +=3D NS_INT16SZ; > + type_local =3D ns_get16(rdata); rdata +=3D NS_INT16SZ; > algorithm =3D *rdata++; > labels =3D *rdata++; > - t =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > + t_local =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > len =3D SPRINTF((tmp, " %s %d %lu ", > - p_type((int)type), (int)algorithm, (unsigned long)t))= ; > + p_type((int)type_local), (int)algorithm, (unsigned > long)t_local)); > T(addstr(tmp, len, &buf, &buflen)); > if (labels !=3D (u_int)dn_count_labels(name)) > goto formerr; >=20 > /* Signature expiry. */ > - t =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > - len =3D SPRINTF((tmp, "%s ", p_secstodate(t))); > + t_local =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > + len =3D SPRINTF((tmp, "%s ", p_secstodate(t_local))); > T(addstr(tmp, len, &buf, &buflen)); >=20 > /* Time signed. */ > - t =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > - len =3D SPRINTF((tmp, "%s ", p_secstodate(t))); > + t_local =3D ns_get32(rdata); rdata +=3D NS_INT32SZ; > + len =3D SPRINTF((tmp, "%s ", p_secstodate(t_local))); > T(addstr(tmp, len, &buf, &buflen)); >=20 > /* Signature Footprint. */ > diff --git a/StdLib/EfiSocketLib/Socket.c=20 > b/StdLib/EfiSocketLib/Socket.c index ee15b62..5f91744 100644 > --- a/StdLib/EfiSocketLib/Socket.c > +++ b/StdLib/EfiSocketLib/Socket.c > @@ -5,7 +5,7 @@ > * Bound - pSocket->PortList is not NULL > * Listen - AcceptWait event is not NULL >=20 > - Copyright (c) 2010 - 2014, Intel Corporation. All rights=20 > reserved.
> + Copyright (c) 2010 - 2024, Intel Corporation. All rights=20 > + reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent >=20 >=20 > @@ -570,7 +570,7 @@ EslSocket ( > int ApiArraySize; > ESL_SOCKET * pSocket; > EFI_STATUS Status; > - int errno; > + int error_num; >=20 > DBG_ENTER ( ); >=20 > @@ -583,7 +583,7 @@ EslSocket ( > } >=20 > // Assume success > - errno =3D 0; > + error_num =3D 0; > Status =3D EFI_SUCCESS; >=20 > // Use break instead of goto > @@ -595,7 +595,7 @@ EslSocket ( > DEBUG (( DEBUG_ERROR | DEBUG_SOCKET, > "ERROR - Invalid domain value\r\n" )); > Status =3D EFI_INVALID_PARAMETER; > - errno =3D EAFNOSUPPORT; > + error_num =3D EAFNOSUPPORT; > break; > } >=20 > @@ -625,7 +625,7 @@ EslSocket ( > "ERROR - Invalid type value\r\n" )); > // The socket type is not supported > Status =3D EFI_INVALID_PARAMETER; > - errno =3D EPROTOTYPE; > + error_num =3D EPROTOTYPE; > break; > } >=20 > @@ -665,15 +665,15 @@ EslSocket ( > if ( ppApiArrayEnd <=3D ppApiArray ) { > DEBUG (( DEBUG_ERROR | DEBUG_SOCKET, > "ERROR - The protocol is not supported!\r\n" )); > - errno =3D EPROTONOSUPPORT; > + error_num =3D EPROTONOSUPPORT; > break; > } >=20 > // The driver does not support this protocol > DEBUG (( DEBUG_ERROR | DEBUG_SOCKET, > "ERROR - The protocol does not support this socket=20 > type!\r\n" )); > - errno =3D EPROTONOSUPPORT; > - errno =3D EPROTOTYPE; > + error_num =3D EPROTONOSUPPORT; > + error_num =3D EPROTOTYPE; > break; > } > // Save the socket attributes > @@ -687,7 +687,7 @@ EslSocket ( > } > // Return the operation status > if ( NULL !=3D pErrno ) { > - *pErrno =3D errno; > + *pErrno =3D error_num; > } > DBG_EXIT_STATUS ( Status ); > return Status; > @@ -1334,7 +1334,7 @@ EslSocketClosePoll ( > IN int * pErrno > ) > { > - int errno; > + int error_num; > ESL_LAYER * pLayer; > ESL_SOCKET * pNextSocket; > ESL_SOCKET * pSocket; > @@ -1346,7 +1346,7 @@ EslSocketClosePoll ( > // > // Assume success > // > - errno =3D 0; > + error_num =3D 0; > Status =3D EFI_SUCCESS; >=20 > // > @@ -1401,7 +1401,7 @@ EslSocketClosePoll ( > // At least one port is still open > // > Status =3D EFI_NOT_READY; > - errno =3D EAGAIN; > + error_num =3D EAGAIN; > } > } > else { > @@ -1409,7 +1409,7 @@ EslSocketClosePoll ( > // SocketCloseStart was not called > // > Status =3D EFI_NOT_STARTED; > - errno =3D EPERM; > + error_num =3D EPERM; > } > break; > } > @@ -1428,7 +1428,7 @@ EslSocketClosePoll ( > // Socket not found > // > Status =3D EFI_NOT_FOUND; > - errno =3D ENOTSOCK; > + error_num =3D ENOTSOCK; > } >=20 > // > @@ -1440,7 +1440,7 @@ EslSocketClosePoll ( > // Return the operation status > // > if ( NULL !=3D pErrno ) { > - *pErrno =3D errno; > + *pErrno =3D error_num; > } > DBG_EXIT_STATUS ( Status ); > return Status; > @@ -1477,7 +1477,7 @@ EslSocketCloseStart ( > IN int * pErrno > ) > { > - int errno; > + int error_num; > ESL_PORT * pNextPort; > ESL_PORT * pPort; > ESL_SOCKET * pSocket; > @@ -1490,7 +1490,7 @@ EslSocketCloseStart ( > // Assume success > // > Status =3D EFI_SUCCESS; > - errno =3D 0; > + error_num =3D 0; >=20 > // > // Synchronize with the socket layer @@ -1521,7 +1521,7 @@=20 > EslSocketCloseStart ( > DEBUG_CLOSE | DEBUG_LISTEN |=20 > DEBUG_CONNECTION ); > if (( EFI_SUCCESS !=3D Status ) > && ( EFI_NOT_READY !=3D Status )) { > - errno =3D EIO; > + error_num =3D EIO; > break; > } >=20 > @@ -1535,12 +1535,12 @@ EslSocketCloseStart ( > // Attempt to finish closing the socket > // > if ( NULL =3D=3D pPort ) { > - Status =3D EslSocketClosePoll ( pSocketProtocol, &errno ); > + Status =3D EslSocketClosePoll ( pSocketProtocol, &error_num ); > } > } > else { > Status =3D EFI_NOT_READY; > - errno =3D EAGAIN; > + error_num =3D EAGAIN; > } >=20 > // > @@ -1552,7 +1552,7 @@ EslSocketCloseStart ( > // Return the operation status > // > if ( NULL !=3D pErrno ) { > - *pErrno =3D errno; > + *pErrno =3D error_num; > } > DBG_EXIT_STATUS ( Status ); > return Status; > @@ -1889,7 +1889,7 @@ EslSocketFree ( > ) > { > EFI_HANDLE ChildHandle; > - int errno; > + int error_num; > ESL_LAYER * pLayer; > ESL_SOCKET * pSocket; > ESL_SOCKET * pSocketPrevious; > @@ -1901,7 +1901,7 @@ EslSocketFree ( > // > // Assume failure > // > - errno =3D EIO; > + error_num =3D EIO; > pSocket =3D NULL; > Status =3D EFI_INVALID_PARAMETER; >=20 > @@ -1986,7 +1986,7 @@ EslSocketFree ( > "0x%08x: Free pSocket, %d bytes\r\n", > pSocket, > sizeof ( *pSocket ))); > - errno =3D 0; > + error_num =3D 0; > } > else { > DEBUG (( DEBUG_ERROR | DEBUG_POOL, @@ -2014,10 +2014,10 @@=20 > EslSocketFree ( > } >=20 > // > - // Return the errno value if possible > + // Return the error_num value if possible > // > if ( NULL !=3D pErrno ) { > - *pErrno =3D errno; > + *pErrno =3D error_num; > } >=20 > // > @@ -2751,7 +2751,7 @@ EslSocketOptionGet ( > IN int * pErrno > ) > { > - int errno; > + int error_num; > socklen_t LengthInBytes; > socklen_t MaxBytes; > CONST UINT8 * pOptionData; > @@ -2763,7 +2763,7 @@ EslSocketOptionGet ( > // > // Assume failure > // > - errno =3D EINVAL; > + error_num =3D EINVAL; > Status =3D EFI_INVALID_PARAMETER; >=20 > // > @@ -2795,7 +2795,7 @@ EslSocketOptionGet ( > OptionName, > (CONST void **=20 > __restrict)&pOptionData, > &LengthInBytes ); > - errno =3D pSocket->errno; > + error_num =3D pSocket->errno; > break; > } > else { > @@ -2814,7 +2814,7 @@ EslSocketOptionGet ( > "ERROR - %a does not support any options!\r\n", > pSocket->pApi->pName )); > } > - errno =3D ENOPROTOOPT; > + error_num =3D ENOPROTOOPT; > Status =3D EFI_INVALID_PARAMETER; > break; >=20 > @@ -2825,7 +2825,7 @@ EslSocketOptionGet ( > // Socket option not supported > // > DEBUG (( DEBUG_INFO | DEBUG_OPTION, "ERROR - Invalid socket=20 > option!\r\n" )); > - errno =3D EINVAL; > + error_num =3D EINVAL; > Status =3D EFI_INVALID_PARAMETER; > break; >=20 > @@ -2927,7 +2927,7 @@ EslSocketOptionGet ( > if ( LengthInBytes < MaxBytes ) { > ZeroMem ( &((UINT8 *)pOptionValue)[LengthInBytes], MaxBytes -=20 > LengthInBytes ); > } > - errno =3D 0; > + error_num =3D 0; > Status =3D EFI_SUCCESS; > } > } > @@ -2936,7 +2936,7 @@ EslSocketOptionGet ( > // Return the operation status > // > if ( NULL !=3D pErrno ) { > - *pErrno =3D errno; > + *pErrno =3D error_num; > } > DBG_EXIT_STATUS ( Status ); > return Status; > @@ -2971,7 +2971,7 @@ EslSocketOptionSet ( > ) > { > BOOLEAN bTrueFalse; > - int errno; > + int error_num; > socklen_t LengthInBytes; > UINT8 * pOptionData; > ESL_SOCKET * pSocket; > @@ -2982,7 +2982,7 @@ EslSocketOptionSet ( > // > // Assume failure > // > - errno =3D EINVAL; > + error_num =3D EINVAL; > Status =3D EFI_INVALID_PARAMETER; >=20 > // > @@ -3015,7 +3015,7 @@ EslSocketOptionSet ( > OptionName, > pOptionValue, > OptionLength ); > - errno =3D pSocket->errno; > + error_num =3D pSocket->errno; > break; > } > else { > @@ -3034,7 +3034,7 @@ EslSocketOptionSet ( > "ERROR - %a does not support any options!\r\n", > pSocket->pApi->pName )); > } > - errno =3D ENOPROTOOPT; > + error_num =3D ENOPROTOOPT; > Status =3D EFI_INVALID_PARAMETER; > break; >=20 > @@ -3046,7 +3046,7 @@ EslSocketOptionSet ( > // > DEBUG (( DEBUG_OPTION, > "ERROR - Sockets does not support this option!\r\n" = )); > - errno =3D EINVAL; > + error_num =3D EINVAL; > Status =3D EFI_INVALID_PARAMETER; > break; >=20 > @@ -3133,7 +3133,7 @@ EslSocketOptionSet ( > // Set the option value > // > CopyMem ( pOptionData, pOptionValue, LengthInBytes ); > - errno =3D 0; > + error_num =3D 0; > Status =3D EFI_SUCCESS; > } > else { > @@ -3150,7 +3150,7 @@ EslSocketOptionSet ( > // Return the operation status > // > if ( NULL !=3D pErrno ) { > - *pErrno =3D errno; > + *pErrno =3D error_num; > } > DBG_EXIT_STATUS ( Status ); > return Status; > -- > 2.45.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#119964): https://edk2.groups.io/g/devel/message/119964 Mute This Topic: https://groups.io/mt/107267145/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-