Hi Matthew, On 2023-08-29 14:24, Matthew Wilcox wrote: > On Tue, Aug 29, 2023 at 02:08:45PM +0200, Alejandro Colomar wrote: >> It seems we should blame an automated script :) >> >> $ git blame -- ./include/uapi/linux/elf.h | grep 'struct dynamic'; >> 23a7aea5faf65 (Rolf Eike Beer 2022-10-04 12:25:40 +0200 143) typedef struct dynamic { >> >> $ git blame 23a7aea5faf65^ -- ./include/uapi/linux/elf.h | grep 'struct dynamic'; >> 607ca46e97a1b (David Howells 2012-10-13 10:46:48 +0100 143) typedef struct dynamic{ >> >> $ git log -1 607ca46e97a1b >> commit 607ca46e97a1b6594b29647d98a32d545c24bdff >> Author: David Howells <dhowells@xxxxxxxxxx> >> Date: Sat Oct 13 10:46:48 2012 +0100 >> >> UAPI: (Scripted) Disintegrate include/linux > > Sure, but that didn't introduce it, it just moved it. > > It was introduced before git, so trawling through linux-fullhistory .... diff --git a/include/linux/elf.h b/include/linux/elf.h -typedef struct dynamic{ -- diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h +typedef struct dynamic{ Hmm, I thought that commit was the one that moved it from an internal header to a UAPI one. I didn't know include/linux/elf.h was a public header long ago. > > Linux 1.1.54: > > -struct dynamic{ > +typedef struct dynamic{ > int d_tag; > union{ > int d_val; > char * d_ptr; > } d_un; > -}; > +} Elf32_Dyn; > > Before that, 0.99.13 added linux/elf.h and it included: > > +struct dynamic{ > + int d_tag; > + union{ > + int d_val; > + char * d_ptr; > + } d_un; > +}; > > So anybody who's included linux/elf.h since 1993 has had this definition, > and maybe the risk of breaking something is greater than the desire to > allow new code to use 'struct dynamic'? Might be true. But since it's a compile-time failure, it's not going to cause silent bugs. If there was a real regression, it would be trivial to detect and fix, so maybe it's a risk that can be taken. But yeah, your concern may vary. :) Cheers, Alex -- <http://www.alejandro-colomar.es/> GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature