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