From: Thomas Rast Date: Sun, 08 Dec 2013 10:20:44 GMT Subject: Re: What's cooking in git.git (Dec 2013, #02; Fri, 6) Message-ID: <87lhzvhceb.fsf@linux-1gf2.Speedport_W723_V_Typ_A_1_00_098> In-Reply-To: <52A3A1F5.3080906@gmail.com> Karsten Blees writes: > Am 07.12.2013 23:23, schrieb Thomas Rast: >> Karsten Blees writes: >> >>> Extending 'struct hashmap_entry' with an int-sized member shouldn't waste >>> memory on 64-bit systems. This is already documented in api-hashmap.txt, >>> but needs '__attribute__((__packed__))' to work. Reduces e.g. >> >> You'd have to guard __attribute__((__packed__)) with some compiler >> detection in git-compat-util.h though. >> > > Isn't that already handled? __attribute__ is already widely used > (e.g. for printf formats), and platforms that don't support it define > it as empty (e.g. MSVC). Or do you mean I should account for > compiler-specific variants (#pragma pack...)? True, __attribute__ expands to nothing on unknown compilers, but what does the compiler do when it sees an unknown attribute? If some of them choke, you need a separate macro. I'm a bit confused myself though, many attributes have special macros in git-compat-util.h but others we just use in the code. -- Thomas Rast tr@thomasrast.ch