Re: [PATCH] Add native windows on arm64 support

Поиск
Список
Период
Сортировка
От Niyas Sait
Тема Re: [PATCH] Add native windows on arm64 support
Дата
Msg-id 44f6c1b6-d712-b69b-82f2-8c525f59aeff@linaro.org
обсуждение исходный текст
Ответ на Re: [PATCH] Add native windows on arm64 support  (Andres Freund <andres@anarazel.de>)
Ответы Re: [PATCH] Add native windows on arm64 support  (Niyas Sait <niyas.sait@linaro.org>)
Список pgsql-hackers

On 17/01/2023 22:51, Andres Freund wrote:
> Hi,
> 
> On 2022-12-16 10:52:23 +0000, Niyas Sait wrote:
>> Subject: [PATCH v7] Enable postgres native build for windows-arm64 platform
> 
>>   elif host_cpu == 'arm' or host_cpu == 'aarch64'
>>   
>> -  prog = '''
>> +  if cc.get_id() == 'msvc'
>> +    cdata.set('USE_ARMV8_CRC32C', false)
>> +    cdata.set('USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK', 1)
>> +    have_optimized_crc = true
> 
> I dimly recall that windows might actually require the relevant extension on
> arm?

Do you mean we don't need the runtime checks for CRC ?

CRC is an optional extension for ARMv8 base architecture. I am not sure 
if windows make it mandatory to have this implementation.

> 
>> +  else
>> +    prog = '''
>>   #include <arm_acle.h>
> 
> I'd just make this include #ifdef _MSV_VER (or whatever it is).

The code snippet is not used for MSVC part. I am not sure why we need to 
add the #ifdef _MSC_VER.

>>   int main(void)
>> @@ -1960,18 +1966,19 @@ int main(void)
>>   }
>>   '''
>>   
>> -  if cc.links(prog, name: '__crc32cb, __crc32ch, __crc32cw, and __crc32cd without -march=armv8-a+crc',
>> -      args: test_c_args)
>> -    # Use ARM CRC Extension unconditionally
>> -    cdata.set('USE_ARMV8_CRC32C', 1)
>> -    have_optimized_crc = true
>> -  elif cc.links(prog, name: '__crc32cb, __crc32ch, __crc32cw, and __crc32cd with -march=armv8-a+crc',
>> -      args: test_c_args + ['-march=armv8-a+crc'])
>> -    # Use ARM CRC Extension, with runtime check
>> -    cflags_crc += '-march=armv8-a+crc'
>> -    cdata.set('USE_ARMV8_CRC32C', false)
>> -    cdata.set('USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK', 1)
>> -    have_optimized_crc = true
>> +    if cc.links(prog, name: '__crc32cb, __crc32ch, __crc32cw, and __crc32cd without -march=armv8-a+crc',
>> +        args: test_c_args)
> 
> Seems like it'd be easier to read if you don't re-indent this, but just have
> the cc.get_id() == 'msvc' part of this if/else-if.
> 

Yes that looks better. will do it in next patch.

Thanks Andres for the review.

-- 
Niyas



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Julien Rouhaud
Дата:
Сообщение: Re: Record queryid when auto_explain.log_verbose is on
Следующее
От: shveta malik
Дата:
Сообщение: Re: Perform streaming logical transactions by background workers and parallel apply