From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2061.outbound.protection.outlook.com [40.107.220.61]) by sourceware.org (Postfix) with ESMTPS id 195EA385DC08 for ; Mon, 19 Jul 2021 09:26:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 195EA385DC08 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=elektrobit.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=elektrobit.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=elektrobit.onmicrosoft.com; s=selector2-elektrobit-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=thU0tP0jUA+2pf9uF5VCH7VTj7igmn0quDHptKDcUjk=; b=Ii2KmaLnUsDNtbVyxAtDUKecE33w0vitTS87kO6Zp1hcOJ201iAqm/OHWlmxuEXHVcwCdTM3zGnQ/sYCILhFm0wfi7JuztYHrucIhJ5qv9GIODl7YI3V35FjM9JxYYLuLEVkbdB3c5NjPBXfgU1jGW90Q91qMyDCcausI1G5jlM= Received: from MWHPR22CA0065.namprd22.prod.outlook.com (2603:10b6:300:12a::27) by SN6PR08MB4701.namprd08.prod.outlook.com (2603:10b6:805:9e::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.24; Mon, 19 Jul 2021 09:26:43 +0000 Received: from MW2NAM12FT020.eop-nam12.prod.protection.outlook.com (2603:10b6:300:12a:cafe::8) by MWHPR22CA0065.outlook.office365.com (2603:10b6:300:12a::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.22 via Frontend Transport; Mon, 19 Jul 2021 09:26:43 +0000 X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is 213.95.163.135) smtp.mailfrom=elektrobit.com; sourceware.org; dkim=pass (signature was verified) header.d=elektrobit.onmicrosoft.com;sourceware.org; dmarc=none action=none header.from=elektrobit.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning elektrobit.com discourages use of 213.95.163.135 as permitted sender) Received: from denue6es002.localdomain (213.95.163.135) by MW2NAM12FT020.mail.protection.outlook.com (10.13.180.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.9 via Frontend Transport; Mon, 19 Jul 2021 09:26:42 +0000 Received: from denue6es002.securemail.local (localhost [127.0.0.1]) by denue6es002.localdomain (Postfix) with SMTP id 4GSxLS5ck6zlbj for ; Mon, 19 Jul 2021 11:26:40 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2109.outbound.protection.outlook.com [104.47.18.109]) by denue6es002.localdomain (Postfix) with ESMTPS for ; Mon, 19 Jul 2021 11:26:40 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ilH7VMLWhf43eTTFBOUpt+kWEwzTxyqE9LJB6+RXFjRK/KVDuE8/+d1Hm7dqGD5WQpNf7OMomod6nebcYxa2vgHTjnQ8bc6g+t2EdnmRSs+qjaHr/n6wL3tBZQctf6aZ4rnU3jtvmP4SFXlfrWLxlr3ndPHHS2hltdjpfEEdSIBBXs9hBsC2fCVedshZ1aSuF/dvs2MK9NLQ261iUBt1LRO1ii5dqXW28e1NY+qLlLoWeKMGkL0Fb0VPi557Xy0p6xXdWwo6iJWbOR3Md0tmiGprRYon9Sh1pPAN+S6exh2FwUW3KLtThsJCZDKaBBEdNgY5HUI2udX2JUC4m+/PNA== 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=thU0tP0jUA+2pf9uF5VCH7VTj7igmn0quDHptKDcUjk=; b=DKYj+eIGkCO/typzjgEQBn/LuaQ8Iea3YDKaWbq4zsMzj0xPQxqpg/UlHJBXyi8aDsG5Cbo2kBb78ftSAkMDWn61eF5cShl2fbIIMy9V77YBNtPJxrQpAMFjQmdcXULklDLlTGKmVdEm7keuvcMLCeq9mPFWIVJfhNTnw3IyjACAbUfERnU/3d/pH5DRJo7H9N8f4mEucGf38OTLbiEPgdvIiWVMJtnUhAQaI8KGaUkdV14vM4XC+fzcJR0zxKhyWPQ5r4Knc5n+tMHV+40jHnsYHXYRrgpf8tJMC8EwwTb2z/VgisOj85VrYXKKLFxHJhSlVQW6+AhN+ouue8BZIg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=elektrobit.com; dmarc=pass action=none header.from=elektrobit.com; dkim=pass header.d=elektrobit.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=elektrobit.onmicrosoft.com; s=selector2-elektrobit-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=thU0tP0jUA+2pf9uF5VCH7VTj7igmn0quDHptKDcUjk=; b=Ii2KmaLnUsDNtbVyxAtDUKecE33w0vitTS87kO6Zp1hcOJ201iAqm/OHWlmxuEXHVcwCdTM3zGnQ/sYCILhFm0wfi7JuztYHrucIhJ5qv9GIODl7YI3V35FjM9JxYYLuLEVkbdB3c5NjPBXfgU1jGW90Q91qMyDCcausI1G5jlM= Received: from AM9P195MB1300.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:3af::7) by AM9P195MB1362.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:38a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21; Mon, 19 Jul 2021 09:26:39 +0000 Received: from AM9P195MB1300.EURP195.PROD.OUTLOOK.COM ([fe80::e970:e367:c3ac:a4b1]) by AM9P195MB1300.EURP195.PROD.OUTLOOK.COM ([fe80::e970:e367:c3ac:a4b1%8]) with mapi id 15.20.4331.032; Mon, 19 Jul 2021 09:26:39 +0000 From: "Dmitrowski, Lukasz" To: "libc-help@sourceware.org" Subject: Bulding syscall wrapper: how glibc determines if assembly or macro wrapper will generated? Thread-Topic: Bulding syscall wrapper: how glibc determines if assembly or macro wrapper will generated? Thread-Index: Add8fsd92gN09tP+RwKupNUYnzTnNw== Date: Mon, 19 Jul 2021 09:26:39 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=elektrobit.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 8d19de79-fa25-4bad-4d7d-08d94a975225 x-ms-traffictypediagnostic: AM9P195MB1362:|SN6PR08MB4701: X-Microsoft-Antispam-PRVS: X-SM-outgoing: yes x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: WHm8/ZHDLuydf7YdqrzoIr3UW5KEvrcGETqBExgvMdkLuIxzjZA0GjldQWmwRz8YISfrqigPG+x044Kp87ky+YlYAO5cLPFKrOGxpHZjkUHvuNwR3bw/E0KqjX0rQlg9QzgPTGa7TiFbfYBmppNzwRnR9lA0X0gcMK6of4zheoc/06PQJsNkzYaVTqggYDSmGt7Oe6/4vZqZqnJPS5i7kFiKGu95ftD7by+K5Se6ocssPwhezEI/RUlD3AmINYVIFls7UmRPVHNlJXw0ul9vg8gob+rZA3rWmC4N2WVPtA7+3ofvd3dnwdvzs6i8TXIfqrOyn0y4+X14qQz99FhB8BHblAPhk+uwAXn+2r39iMeKlHEWwGkFe3xPfm6s9PttoieDKEiQ+hdPHQVgHpW4/Ec67RnNe9XOvtFei+yDhOfXgLTMMV9LqQFj/M/R94kiQTj+8dKUJaj4Om5kkB+0digFqqNVFS39TQZUSz1rZmzwRBtiq8uodbpazEfYTSsJOdk297Kd4F1TrmIRCdKo7eWR4EV6pAqj2Eo7lhsMdcDODsBhB3pPOThcsyIJpYowScfkXjv8WQ8zIZqLM3KrCdH0AzSzkBo3Katzc11+RJDQJ1RFZw9Wvl5DoL2hiH8fe13WwsGGvPEgjmw/bIWr4h/RelA3Ms1AtoFnfuFtzxYWzbEovYBy5Nh0HN5yutAil0YauvQ4CpXH7zhd2Pq/cP4niJFdjRZNxUJHf6U6VT1xfX4HS/N6GOmTK2m5KqZz2EYGmTsjUl0BQqDrrqlvKQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9P195MB1300.EURP195.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(39840400004)(376002)(396003)(346002)(366004)(136003)(7696005)(33656002)(166002)(2906002)(122000001)(6506007)(186003)(86362001)(38100700002)(76116006)(66446008)(66946007)(83380400001)(8676002)(5660300002)(64756008)(71200400001)(966005)(8936002)(316002)(52536014)(55016002)(66476007)(9686003)(66556008)(6916009)(478600001)(38070700004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?yAmFHd0tVlEDyrIyJcDUhFmVWc6G3z+4B6LbRnXEPltjorNwFUGHP7cF1iDL?= =?us-ascii?Q?R/i6r81H1+TBhbELQo3GIXJQEwRhg2EAw20GAgsOaGQjnV7yrDP5dQKY2xRS?= =?us-ascii?Q?p6mvxtk1XHMr7VCY1nJX+xyvP2iw1MKP0HyhObdm614L84i7TSzbmyy5RS/4?= =?us-ascii?Q?YvqXWZgcUVlFqZrY+s9gbHxq8TI4Z14h9gHzRHuIwq3chOSq60p5GV2BzC+W?= =?us-ascii?Q?rTbe5HAeiDoO75wDzb8hYecorh+x4E4qoR2zP4Rrud+yTa91jjZc2dvKdvjH?= =?us-ascii?Q?uS/tFZrPfdqr3W9nnnFp/fWOyEXXR3TRJ4dgDTPo0NAhF1WOtrtd1bVs4EJR?= =?us-ascii?Q?CCrhRfojZ0NL0Fg0ja2YGyk+WJ7yE6xhGRhp9OgYINvECxvo+GBcNsrEIXiX?= =?us-ascii?Q?8dDk2HU1O3vkfCqhsuZ6q6614+Cy94Dzxn9azBDjkUE91B8F6u2u64GCN8mY?= =?us-ascii?Q?8GRXuuRk+S8eb6iQziCqVTY0aLLlJeF7zmQ3spT3cFhMq4s26svgNC4Jn9vL?= =?us-ascii?Q?ryp2pc2QNiD3Ois96VxH/t3bjSX8bbsjmt8CEDiHfmixpPwdXtFE7cBVWOcf?= =?us-ascii?Q?KVrvnfFwgishS8bnrtM40Q2pUpnvRiwKnMGIs9BMGsHyGMtXFR7PEzQZrIaM?= =?us-ascii?Q?JrPamjUPMx7Yv5nDkiMRKjhJtL1tSmd9UqZYulR5MY+0g9MzvRK6g/I4O9pk?= =?us-ascii?Q?RGgIgu/sOQDhlzrda6ROf3eDrXlVKd1MpC0unFH6bFHo8+MOfaZwusUvHZMc?= =?us-ascii?Q?Jh5J51+i/SiA7Nr7KdmkIofHGc4Erbct3XIptoRpqnyepREwII3r0XtmF0om?= =?us-ascii?Q?/8m/IXXf8yZJhy/F8k0jQKfZSFZkKJ26F2ly8/Y6255I7UulahHXYrikQh14?= =?us-ascii?Q?VGqXQzFBkA32hZZ/w1mvSbIUAzCs1MijDEhQbGi8YZ7BJSbwmdtOULBucEOY?= =?us-ascii?Q?cKvrl+ICNLnLBqLvajr2osWWcH4puEQmUuHuPpQ+33fFNvIBX0BIlHjExq6x?= =?us-ascii?Q?ipoYo0CAjf7NKtHgGCaUWijNy8hhimwwFyTW2NGJMW1R7IOXxIVH3Ii942k8?= =?us-ascii?Q?cU98yuqLfsX2C8RKboLJVbmBl6RO6RYia8POyN3nbg6akHhLFMFdfbqmk36S?= =?us-ascii?Q?S9hHvTirVVH+B4mkscEdF6fBOuc88o6HTdr76UaY5ckAhKpZEBr3SEFnZWrI?= =?us-ascii?Q?SPO7Rn34lBrmfPg9chzVCr29hzlTxMn+L6twS2bvb3z8ldLlo7WrD7KtHOpJ?= =?us-ascii?Q?11pPJpWl/Vnn2u+zit1jwODEyAVD1EwfRN/86U5TrHrJ6+7ddcHdjjqgOEPU?= =?us-ascii?Q?4qRp1inmiDhzduL5sHWn4BGdc3LKc53pSRxroI/IWOewEv+sdhUQK1NAQuk6?= =?us-ascii?Q?ZJQby8w=3D?= x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9P195MB1362 X-SM-smarthost: [elektrobit-com.mail.protection.outlook.com] X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: MW2NAM12FT020.eop-nam12.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: a5c856f1-3c5c-4d86-2a9e-08d94a975016 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: h6gjg62F+W3JIoreCpm5/pmnHnwfL4ArWKskw7qeSYGZG4gB6oSPbPU+k/og/T61XDZioeIKx6A5zAKKkBOdepGPsNao6QAOdEe6alBNg6OAdZxTTpHE8YGHj+bdywWSfu9Bh8cM/z4xAmi0ZtgYVpB5XJZa8+jp07y5ZbBBflWwo4Tm4LCAcgypE1NG3okIk767SpMAu+28urdDx31/THje9Sln0BqPpZv8pZG+YYxsfULoMGTp/7SVseWEHz9FRVTH0EmcF/ttxrAekOh4H/9Bd1YiF4orr0Id3wmpoIhnSKojCMMhOaRMc3kT1hbcCADMW1xwcxbiXDW7eZMdwHoi9R9FMNF+A7vB8ahLlKhZKEsGz205RUjtjHeSaLYIm4Lpoc8qlXbl17QHBQ3lVP7HaWuey64f+TVlOdn/wyUipX2G5ZADbxwGULSWjhM0kxGPYUfoJzFdrIlVPJDNHy8xUE43B8Zf156TiE/Ed6KiRyliFIjazrP38GSN7xkf91eV0+N0z0aJ15bQnxFyCQplO3xYi1XjaH/zhWjiRVSkDhzsX2zv6W+GCOp77GNZn1CxFXWW9m8W1OnUFZhf1RwLly+tMTzFZx5p7IHcMkGTRZqYmFm22D7JS8FOK4h0PGqTwVxRmUXj4hiOWkixBtNQEu70pGXfXWFz9xlbBJhx+bkOgsjKK+MWxS7gB28oGsoGIcCIqlUgWuDiCY/iphe6RVebTN2JAwMBCTh9Dg7AhuIE+JfpCkO5HcNKm8YLTjNpOR/QR3CEiVYQpyXX5/cjfTuP5iPSunWNMM8co86GWkBtpB7sESy5AFxQ0hVX X-Forefront-Antispam-Report: CIP:213.95.163.135; CTRY:DE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:denue6es002.localdomain; PTR:denue6es002.automotive.elektrobit.com; CAT:NONE; SFS:(4636009)(136003)(346002)(376002)(39850400004)(396003)(36840700001)(46966006)(33656002)(336012)(316002)(6916009)(356005)(186003)(55016002)(7696005)(47076005)(166002)(86362001)(6506007)(8676002)(82740400003)(36860700001)(26005)(966005)(70206006)(5660300002)(8936002)(9686003)(2906002)(83380400001)(478600001)(82310400003)(70586007)(36906005)(52536014)(27056005); DIR:OUT; SFP:1101; X-OriginatorOrg: elektrobit.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jul 2021 09:26:42.3742 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8d19de79-fa25-4bad-4d7d-08d94a975225 X-MS-Exchange-CrossTenant-Id: e764c36b-012e-4216-910d-8fd16283182d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=e764c36b-012e-4216-910d-8fd16283182d; Ip=[213.95.163.135]; Helo=[denue6es002.localdomain] X-MS-Exchange-CrossTenant-AuthSource: MW2NAM12FT020.eop-nam12.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR08MB4701 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: libc-help@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-help mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jul 2021 09:26:49 -0000 Hello, I create a documentation describing how glibc builds syscall wrappers. I am= currently limited to Linux x86_64 architecture only and base on https://so= urceware.org/glibc/wiki/SyscallWrappers + source code analysis. I want to to know how glibc build system decides what type of syscall wrapp= er will be generated, assembly wrapper or macro wrapper. I have troubles tr= ying to figure out how the glibc build system works on this level. 1. make-syscall.sh produces sysd-syscalls, that contains build formulas for= assembly wrappers. How sysd-syscalls is used by the build system after it is generated? 2. I found out that if sysd-syscalls contains a build formula for assembly = wrapper then this formula is always used when building glibc, but in some c= ases sysd-syscalls also shows that a *.c wrapper exists, even that it conta= ins assembly wrapper formula. This is because make-syscall.sh searches mult= iple syscalls.list files and multiple related sysdirs for *.c wrappers, so = sometimes *.c wrapper exists in such relation and sometimes not. Both are i= ncluded into sysd-syscalls. Example: #### DIRECTORY =3D sysdeps/unix/sysv/linux/x86_64 #### SYSDIRS =3D sysdeps/unix/sysv/linux/x86_64/64 ... #### CALL=3Dsocket NUMBER=3D41 ARGS=3Di:iii SOURCE=3D- ifeq (,$(filter socket,$(unix-syscalls))) unix-syscalls +=3D socket $(foreach p,$(sysd-rules-targets),$(foreach o,$(object-suffixes),$(objpfx)$= (patsubst %,$p,socket)$o)): \ $(..)sysdeps/unix/make-syscalls.sh $(make-target-directory) (echo '#define SYSCALL_NAME socket'; \ echo '#define SYSCALL_NARGS 3'; \ echo '#define SYSCALL_SYMBOL __socket'; \ echo '#define SYSCALL_CANCELLABLE 0'; \ echo '#define SYSCALL_NOERRNO 0'; \ echo '#define SYSCALL_ERRVAL 0'; \ echo '#include '; \ echo 'weak_alias (__socket, socket)'; \ echo 'hidden_weak (socket)'; \ ) | $(compile-syscall) $(foreach p,$(patsubst %socket,%,$(basename = $(@F))),$($(p)CPPFLAGS)) endif ... #### DIRECTORY =3D sysdeps/unix #### SYSDIRS =3D sysdeps/unix/sysv/linux/x86_64/64 sysdeps/unix/sysv/linux/= x86_64 sysdeps/unix/sysv/linux/x86 sysdeps/x86/nptl sysdeps/unix/sysv/linux= /wordsize-64 sysdeps/x86_64/nptl sysdeps/unix/sysv/linux sysdeps/nptl sysde= ps/pthread sysdeps/gnu sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/x86= _64 ... #### CALL=3Dsocket NUMBER=3D41 ARGS=3Di:iii SOURCE=3Dsysdeps/unix/sysv/linu= x/socket.c -- Where is the exact point in the build system that decides if assembly wrapp= er (from template-syscall.S) or macro wrapper (from *.c file) will be gener= ated? 3. If syscall wrapper is generated from *.c file, where can I find how the = build formula is prepared by the build system? 4. How glibc determines a set of directories where make-syscall.sh looks fo= r syscalls.list and *.c syscall wrappers? ($thisdir and $sysdirs variables = in make-syscalls.sh) Will be greateful for help or reference to some docs. Thank you in advance!