Message ID | 5A674841.9040007@arm.com |
---|---|
State | Committed |
Commit | c739e191d0697e29110d4eb446e537ff336324c6 |
Headers |
Received: (qmail 64266 invoked by alias); 23 Jan 2018 14:35:59 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <libc-alpha.sourceware.org> List-Unsubscribe: <mailto:libc-alpha-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 64244 invoked by uid 89); 23 Jan 2018 14:35:58 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy=H*r:sk:EUR03-V, H*r:40.107.5, Hx-languages-length:2391, osp X-HELO: EUR03-VE1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Message-ID: <5A674841.9040007@arm.com> Date: Tue, 23 Jan 2018 14:35:45 +0000 From: Szabolcs Nagy <szabolcs.nagy@arm.com> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: GNU C Library <libc-alpha@sourceware.org> CC: nd@arm.com, Marcus Shawcroft <Marcus.Shawcroft@arm.com>, Joseph Myers <joseph@codesourcery.com>, Romain Naour <romain.naour@gmail.com> Subject: [PATCH] aarch64: Revert the change of the __reserved member of mcontext_t Content-Type: multipart/mixed; boundary="------------040000000502050505070305" X-ClientProxiedBy: HE1PR05CA0159.eurprd05.prod.outlook.com (2603:10a6:7:28::46) To AM5PR0802MB2482.eurprd08.prod.outlook.com (2603:10a6:203:98::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1b69b924-6cf2-4717-3f84-08d5626e9929 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(49563074)(7193020); SRVR:AM5PR0802MB2482; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0802MB2482; 3:h/SsQBOlvE4dVc9OIZ+nE9+iRhglSew/wnKgvKoFxtbhq0DdtPwDpf725rOCvXAsY60cg1/Rf1upTbY/oJ+XTGUAVOfjGNq1OT7G0uTtoBt4VAtP3I/MOE1+VEv6hUCunh0ixJNVcGZZmKNbjh0WzrZCtJPRhYBRXoMz7Pm393JlNRWxEOrO9Fe71oVaYKZ7cJEaHMSljE9RlyyjczXilwU4Ee+ng6wvKsuP1OQqp3DXQdxlVV7d63tS8/q4b88i; 25:ZGs54esuNpSC5/6zJigeYms9li1MhfrIZDJLGjr5c/4h3cwyrsgejXnr1CwGD4QXscl7kmDq9OmT8r21+2rVHzx5sVQz5nGLCzaeE/gI7lcy+Y0a7Vz4wdSpr3lE1aiK65B2nBB1b6NDvY35sud5zqhCHVDXLkhHu6kzOqdVewznEURTYuECgpN7s0lKnNtfw+y8fjVQNHyqbuPX8lO1p3ExnK47oiFM3xmJbyN4m/NSn7TORdjDbqDERGleIYNNMFd6DLySyaXaHHYu+maIZXuJfyYy9fqyblsxsSmqlfQ7N8mDhVdmUnDVtLe7baIpfZlV83m3l/JI8KgDnNwjLw==; 31:BRMRMjrz41RwaSel0vgujPUvhN8TtvYYmTs1+2zRaLxd54ZJRv2y2Y7vS40r1NM1GRtqP5PbtUQDC+j2MCVF/DmdUJVE0+iK3jrpwS9ezikMos9OKI3FwcrF3v3L4ERrURjx0eSjjOSuc7c59849qEeEanwWgDtBpbH429mG3AJ6e9ef7bJNUAHEx8RhMSqgBUPgGJ+o2aD1ngSkT+zdF4+nZDXs0zoncaDa0WEj4o8= X-MS-TrafficTypeDiagnostic: AM5PR0802MB2482: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; AM5PR0802MB2482; 20:YTS4fphEk8W35z1ZRb8kYwTf+eHyc6ZQACJWEuSfB5gTt3cOvvHqNhB0xeZlihZcPIAPU2AKTWKXlVk9PtmcyZYF8V7d9CRHZS41+mbVQYHhMV3iFoOpoSSg8XtFszHtNUasI1L23DHSQ+1zXSFCb4HH+z8Wa1ZGeeAQtQvBKDY=; 4:Fg3PKoJC7C6TvclhtACLsU7q1HBpaWCEvQei3gVTQOTrji/I3yt0jlLIXwJgP3JbQDKQGp1Osp06Yk54cJC2wPNMUNYqG+g0Dv8o0rALaocDJQi1XeY8Gj7nTsmCGPLti+mvjhcNr1KXEGX3XU80jLrUSoBlj22CheeEjJwLEUi+V9pTTBH600aebHuzNTEFnF908Ga9R/9f2wHbXlz3nR0EM1kcADQZ95YYN8dqYxNK434ZoXqCBx2seMgcybEs87dTluT3CeFfWEuX+W7TfdbCbjUg6yxOwwU04C4WO39Q32poKswURxCK/iluF7pm X-Microsoft-Antispam-PRVS: <AM5PR0802MB2482D96724254CABF632289AEDE30@AM5PR0802MB2482.eurprd08.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(102415395)(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(3231023)(2400081)(944501161)(10201501046)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:AM5PR0802MB2482; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM5PR0802MB2482; X-Forefront-PRVS: 05610E64EE X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(39860400002)(39380400002)(376002)(346002)(396003)(366004)(189003)(199004)(377424004)(83506002)(4326008)(59896002)(66066001)(4610100001)(65956001)(65806001)(58126008)(97736004)(25786009)(84326002)(77096007)(2476003)(68736007)(72206003)(39060400002)(106356001)(478600001)(16576012)(36756003)(5000100001)(16586007)(26005)(5890100001)(86362001)(54906003)(316002)(6916009)(80316001)(52116002)(2906002)(270700001)(87266011)(33964004)(386003)(65816011)(59450400001)(8676002)(6666003)(105586002)(21490400003)(8936002)(16526018)(64126003)(7736002)(305945005)(33656002)(568964002)(3846002)(5660300001)(6116002)(81156014)(81166006)(6486002)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0802MB2482; H:[10.2.206.69]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0802MB2482; 23:lgt/vvd1glOMo/4ZP2w7CyObDYAagMmiX6RVeVZ?= =?us-ascii?Q?bN4yzx5hjzy2N11G8nkjDvrvceBu328sV2Bv9guLx3rkTQHwbQ4ORbTEI6YV?= =?us-ascii?Q?JCZ8kfB1LF/wvjO+ltn2OIgBLK4FGVp0OPKWaMtVUlmJPANnGXprqJheH2oA?= =?us-ascii?Q?KN9+EDxi6BKQ+VFvNhfpHzZ5wyZitSYHZcD5sbHJIP5ORtwhGSJaWUeKCdcZ?= =?us-ascii?Q?xPsb7E2nDgYN8XVsmaC9S1IjfIWWm3JAF7tvXU5VSstZIyaYezBR28oqCrKx?= =?us-ascii?Q?7pRfo1LIgCNcZJKvxth+CZEiNwbtnOK84nRzHv1n6zpzceisApVSON606SVY?= =?us-ascii?Q?xo/aIyMmz9dssMmHp5sNbfBZZDNIjXDxeDv3xz9DCsA12AnhK6uudIpyALQ5?= =?us-ascii?Q?8hqyRrzQ637sQ1qfBXGYkK4zeTreSGiWjbsULJgUoHQxZ1Pq2uF32jpmo/l2?= =?us-ascii?Q?INTea7iJkbv6eyUI/Jnry8O5yuaGQJw/BLFKVxDvPFkeeP+f/P8mY8gOY77D?= =?us-ascii?Q?xFPB7kcgGKTDKkk5VhhuL0HLS+eWPu5BIoJImlvyE7I3iJu2p9wcO3/tGqdp?= =?us-ascii?Q?WqcNJdeQpFzeaJyJb1MNrKwgE9eu4cU+gGxx0MDe3p5pSGRHSVhqhfthOn4k?= =?us-ascii?Q?C1HV0LsLiyL8nkOq2O/lbgycldQ0hYIb17NrwTzr+cl/atIbRAUvsi8ptKU6?= =?us-ascii?Q?nFSNoUH+K+DEEgS9m71A1NDk8wGZpB5k1h3xsuZ35WkbHZcTfFXi347e1jxW?= =?us-ascii?Q?mucJXSm9lHj2kvVjmPDbU5zn8f69k4AVVnMI6cdI4gGcTxJUrMGRsyRHh0+V?= =?us-ascii?Q?6EsP4hNodJAN2+jiwYoEfEjftr5L+pDcXLFKkuJo50+ynR+InJMcREhXRPTT?= =?us-ascii?Q?22n33YO6scCVj/lt5ePU3LeL7YQrj/hpAFaRuh8IUHvAiEfBydNTOEsN1I6T?= =?us-ascii?Q?bH8JDCC3PDr7wUSrb4nqw4bpauWVLxUQnjGiaXdz4CHGCW8wBDOdCciEZTNs?= =?us-ascii?Q?cjJGbk/K3rLJmn/axUA8zW/096S8UHpAKiD3tf3GqWPOU6XGyZ3WLPi49hqY?= =?us-ascii?Q?REy2V1SAJinb1YoZMqI38LvmRe+jCSRfyHb7WGnR/FNSn3c4DnCMfBJ7tdQl?= =?us-ascii?Q?6MWb+GG+xKs5mB2hvg2ckBKMv8yb7AgaUyjRgtO0VLwVCG6QyHXp838rPWWl?= =?us-ascii?Q?0Vl+WLSa0x2rsgxYOx47GoOGkCg5b2sX/GcA5VuYjlRMBy6MuxZsm0uq9iKM?= =?us-ascii?Q?K+RRmWxVpNG1sl4nhZjnOINjXwcLn4ko7eaoHDgjbN5Eq68qWFgxI1jnhGj6?= =?us-ascii?Q?IWi/6EXJ4jjyQNgynOAMfHTE5b6DlJEsEGdYfBOZ/kZ5Xg/4qfJAvtlu+QsO?= =?us-ascii?Q?KJqG2+StonyB7Vj5d7v3BV+HLyTPVMDoBnXhkoNgQ1BYo/JRLTGYvrOj/Xft?= =?us-ascii?Q?5j0HXqmSVALIddmEiyINLjPzMzU7SmfJUyJLWWYt5kak3Y07qlsW1NITrGhJ?= =?us-ascii?Q?tbaaL33i0P7fRNN4Y30NRfAtRemcy1F8kXNk=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0802MB2482; 6:KgDw1Ln0DueTIlaPAFQCpnPzV1/lBJR2nk0MLv3l7/PwK/aOHQC/O+awHg+UqNUNqwW+v3pC8EqKdSdXTyZVAo2eJ08y5Wt3lxm49Lc8ZQj+LlB//1QFYGe7UXWHruFSanGP2bIbQ8VJguModSbQfj1Oz+8VTPvbZSs1BcUfzeA7hT2Zzb9eP2dA3Pact1KQ08s+S8y8+1RCxoTcmauXD5pxhLjqOZCkO/2JJIeJicvhxY3V1HbwoOWJeLg/ZVxfDmk2Y1QeqGV6FRP7ufrn2ijtGZGRWZp2XsQrihaYYgv7iup6SRr8U6nPmf9mlIx74Uuw5h2SFwjBRN6NKZIWf0x+kK75T4+c4J/1uV/fmYU=; 5:ref5sQrnduyJ5rKXHySiEEdnLcmQvn967gm03ayPLlKb42dbJ3tu1umOEIF7WxyRlHc9YSN2qVgWitx08nUcBVNlKsqGCAJtCUlNDujMy/n9nM/S+tRDFaI672fraq5jsR9dFO8xrMOajybTkAfxi0LkMU3x2QFwQmm9xz2gTTs=; 24:rsvVuZyAuD5nTjTtcrjxWHBwwviAXaqblMv8hECfOVe2mMFWhEonYgxFJlOePZMw87ZkV81m5BOnu/jrngmlkWl8rcL1Zs07PlbhvBJ0aZk=; 7:wmij3GummgXGFkUnLvseWtEf1oaD27/oxCYThwmGLhsjgoo+D0SSRg0YNB6zNqUyqDbdITB3xYuPJa9kpFJuhiqXxHjTIpQYe+FQflIm300v0rdyJiPRMCq+AMdKDA9j9KXg+Y2sL14skaEb6bkU6Vlnl3xOGmwOlot7cnvT7lKbysrJFvl62ADDJtCoSwzohiCou6Po846jpvvCxCnoYoovz8rbmdgvssNprtiTfLADE/OVu4KqVHs2YHki3To2 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2018 14:35:49.2397 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1b69b924-6cf2-4717-3f84-08d5626e9929 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2482 |
Commit Message
Szabolcs Nagy
Jan. 23, 2018, 2:35 p.m. UTC
The uc_mcontext.__reserved member of ucontext_t is a user visible API, that should not be changed, because this is the only way to access cpu states of various extensions of linux asm/sigcontext.h, it does not violate namespace rules either, so revert this part of the commit commit 4fa9b3bfe6759c82beb4b043a54a3598ca467289 Commit: Joseph Myers <joseph@codesourcery.com> Fix mcontext_t sigcontext namespace (bug 21457). (In principle the user can type cast &uc_mcontext to struct sigcontext* to use the linux sigcontext fields, but that's not the existing practice since mcontext_t used to be a typedef of struct sigcontext.) I plan to commit this soon for 2.27 and backport it to 2.26 if there are no comments. 2018-01-23 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (__glibc_reserved1): Rename to __reserved and add comment. * sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym (__glibc_reserved1): Rename to __reserved.
Comments
On 01/23/2018 03:35 PM, Szabolcs Nagy wrote: > The uc_mcontext.__reserved member of ucontext_t is a user visible API, > that should not be changed, because this is the only way to access cpu > states of various extensions of linux asm/sigcontext.h, it does not > violate namespace rules either, so revert this part of the commit > > commit 4fa9b3bfe6759c82beb4b043a54a3598ca467289 > Commit: Joseph Myers<joseph@codesourcery.com> > > Fix mcontext_t sigcontext namespace (bug 21457). > > (In principle the user can type cast &uc_mcontext to struct sigcontext* > to use the linux sigcontext fields, but that's not the existing practice > since mcontext_t used to be a typedef of struct sigcontext.) > > I plan to commit this soon for 2.27 and backport it to 2.26 if there are > no comments. I think this is the right thing to do, but unfortunately, this back-and-forth is a bit painful. Thanks, Florian
On 23/01/18 15:16, Florian Weimer wrote: > On 01/23/2018 03:35 PM, Szabolcs Nagy wrote: >> The uc_mcontext.__reserved member of ucontext_t is a user visible API, >> that should not be changed, because this is the only way to access cpu >> states of various extensions of linux asm/sigcontext.h, it does not >> violate namespace rules either, so revert this part of the commit >> >> commit 4fa9b3bfe6759c82beb4b043a54a3598ca467289 >> Commit: Joseph Myers<joseph@codesourcery.com> >> >> Fix mcontext_t sigcontext namespace (bug 21457). >> >> (In principle the user can type cast &uc_mcontext to struct sigcontext* >> to use the linux sigcontext fields, but that's not the existing practice >> since mcontext_t used to be a typedef of struct sigcontext.) >> >> I plan to commit this soon for 2.27 and backport it to 2.26 if there are >> no comments. > > I think this is the right thing to do, but unfortunately, this back-and-forth is a bit painful. > ok, i opened bug 22742 because it's a user visible change. committed now on 2.27 (will backport it in a day or two).
Hi Nagy, Le 24/01/2018 à 12:55, Szabolcs Nagy a écrit : > On 23/01/18 15:16, Florian Weimer wrote: >> On 01/23/2018 03:35 PM, Szabolcs Nagy wrote: >>> The uc_mcontext.__reserved member of ucontext_t is a user visible API, >>> that should not be changed, because this is the only way to access cpu >>> states of various extensions of linux asm/sigcontext.h, it does not >>> violate namespace rules either, so revert this part of the commit >>> >>> commit 4fa9b3bfe6759c82beb4b043a54a3598ca467289 >>> Commit: Joseph Myers<joseph@codesourcery.com> >>> >>> Fix mcontext_t sigcontext namespace (bug 21457). >>> >>> (In principle the user can type cast &uc_mcontext to struct sigcontext* >>> to use the linux sigcontext fields, but that's not the existing practice >>> since mcontext_t used to be a typedef of struct sigcontext.) >>> >>> I plan to commit this soon for 2.27 and backport it to 2.26 if there are >>> no comments. >> >> I think this is the right thing to do, but unfortunately, this back-and-forth is a bit painful. >> > > ok, i opened bug 22742 because it's a user visible change. > > committed now on 2.27 (will backport it in a day or two). > Thanks for the fix. Best regards, Romain
On 24/01/18 11:55, Szabolcs Nagy wrote: > On 23/01/18 15:16, Florian Weimer wrote: >> On 01/23/2018 03:35 PM, Szabolcs Nagy wrote: >>> The uc_mcontext.__reserved member of ucontext_t is a user visible API, >>> that should not be changed, because this is the only way to access cpu >>> states of various extensions of linux asm/sigcontext.h, it does not >>> violate namespace rules either, so revert this part of the commit >>> >>> commit 4fa9b3bfe6759c82beb4b043a54a3598ca467289 >>> Commit: Joseph Myers<joseph@codesourcery.com> >>> >>> Fix mcontext_t sigcontext namespace (bug 21457). >>> >>> (In principle the user can type cast &uc_mcontext to struct sigcontext* >>> to use the linux sigcontext fields, but that's not the existing practice >>> since mcontext_t used to be a typedef of struct sigcontext.) >>> >>> I plan to commit this soon for 2.27 and backport it to 2.26 if there are >>> no comments. >> >> I think this is the right thing to do, but unfortunately, this back-and-forth is a bit painful. >> > > ok, i opened bug 22742 because it's a user visible change. > > committed now on 2.27 (will backport it in a day or two). > the problematic commit is not present in 2.26, so this is not a 2.26 regression, i'm not sure how i missed that (i checked the git log of 2.26 branch several times). so there is no user visible api break, sorry for the noise.
On 01/26/2018 04:02 PM, Szabolcs Nagy wrote: > On 24/01/18 11:55, Szabolcs Nagy wrote: >> On 23/01/18 15:16, Florian Weimer wrote: >>> On 01/23/2018 03:35 PM, Szabolcs Nagy wrote: >>>> The uc_mcontext.__reserved member of ucontext_t is a user visible API, >>>> that should not be changed, because this is the only way to access cpu >>>> states of various extensions of linux asm/sigcontext.h, it does not >>>> violate namespace rules either, so revert this part of the commit >>>> >>>> commit 4fa9b3bfe6759c82beb4b043a54a3598ca467289 >>>> Commit: Joseph Myers<joseph@codesourcery.com> >>>> >>>> Fix mcontext_t sigcontext namespace (bug 21457). >>>> >>>> (In principle the user can type cast &uc_mcontext to struct sigcontext* >>>> to use the linux sigcontext fields, but that's not the existing >>>> practice >>>> since mcontext_t used to be a typedef of struct sigcontext.) >>>> >>>> I plan to commit this soon for 2.27 and backport it to 2.26 if there >>>> are >>>> no comments. >>> >>> I think this is the right thing to do, but unfortunately, this >>> back-and-forth is a bit painful. >>> >> >> ok, i opened bug 22742 because it's a user visible change. >> >> committed now on 2.27 (will backport it in a day or two). >> > > the problematic commit is not present in 2.26, so > this is not a 2.26 regression, i'm not sure how i > missed that (i checked the git log of 2.26 branch > several times). > > so there is no user visible api break, sorry for the noise. Right, my mistake. Thanks for fixing master! Florian
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h index fe72fdd265..f1b3ab59e2 100644 --- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h @@ -56,7 +56,11 @@ typedef struct unsigned long long int __ctx(sp); unsigned long long int __ctx(pc); unsigned long long int __ctx(pstate); - unsigned char __glibc_reserved1[4096] __attribute__ ((__aligned__ (16))); + /* This field contains extension records for additional processor + state such as the FP/SIMD state. It has to match the definition + of the corresponding field in the sigcontext struct, see the + arch/arm64/include/uapi/asm/sigcontext.h linux header for details. */ + unsigned char __reserved[4096] __attribute__ ((__aligned__ (16))); } mcontext_t; /* Userlevel context. */ diff --git a/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym b/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym index 479bdda5c6..ab3930c173 100644 --- a/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym @@ -38,7 +38,7 @@ oX0 mcontext (regs) oSP mcontext (sp) oPC mcontext (pc) oPSTATE mcontext (pstate) -oEXTENSION mcontext (__glibc_reserved1) +oEXTENSION mcontext (__reserved) #define fpsimd_context(member) offsetof (struct fpsimd_context, member)