Re: x32: mariadb: if defined __ILP32__ and __x86_64__ ?

Bernd Petrovitsch <[email protected]> Wed, 3 Jul 2024 12:42:17 +0200
Newsgroups gmane.linux.debian.ports.amd64
Message-ID <[email protected]>
Hi all!

sent too fast:

On 03/07/2024 12:31, Bernd Petrovitsch wrote:
[...]
> On 03/07/2024 06:05, Otto Kekäläinen wrote:
> [...]
>> MariaDB has this piece of code that is failing on x32 as reported in
>> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1063738
>>
>> tests/mysql_client_fw.c
>> @@ -1442
>>
>> #if defined __x86_64__
> 
> #if defined(__x86_64__) && !defined(__ILP32__)

Of course you need more but the __ILP32__ symbol is
typically used to distinguish x32 from amd64.
To illustrate it it, e.g.
---- snip ---
#if defined __x86_64__
#    if defined __ILP32__
    compile_time_assert(sizeof(MYSQL) == 964);   // x32
#    else
    compile_time_assert(sizeof(MYSQL) == 1272);  // amd64
#    endif
#elif defined __i386__
    compile_time_assert(sizeof(MYSQL) == 964);   // ix86
#endif
---- snip ---

>>    compile_time_assert(sizeof(MYSQL) == 1272);
>> #elif defined __i386__
>>    compile_time_assert(sizeof(MYSQL) == 964);
>> #endif
>>
>> How should I fix this for x32? What is the preprocessor if clause and
>> can I safely assume the size is 964?
  
Kind regards,
       Bernd
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.