meson: catch up to a few configure changes
authorAndres Freund <andres@anarazel.de>
Sat, 15 Oct 2022 19:00:16 +0000 (12:00 -0700)
committerAndres Freund <andres@anarazel.de>
Sat, 15 Oct 2022 19:00:16 +0000 (12:00 -0700)
I (Andres) missed a few recent changes to configure when merging
e6927270cd1 "meson: Add initial version of meson based build system". Mirror
the changes in
ec3c9cc202f "Add definition pg_attribute_aligned() for MSVC"
b086a47a270 "Bump minimum version of Bison to 2.3"
8b878bffa8d "Bump minimum version of Flex to 2.5.35"

As MSVC does not implement 128 bit integers, the oversight of not using
pg_attribute_aligned() should not have current practical consequences. But of
course the code from c.h should still be correctly mirrored.

I (Andres) also hadn't implemented the minimum perl version check. Added that
now.

Reported-by: Junwang Zhao <zhjwpku@gmail.com>
Author: Junwang Zhao <zhjwpku@gmail.com>
Author: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/CAEG8a3K9c87EwAwmdOgmS0Li1J6P_7r-Uc0-zN6cJtrMr7VvPg@mail.gmail.com

meson.build

index 925db70c9d56749ef041b081d0e842e0d3822914..fdf8ec8ad9c1e3655237a0999f3de4d845ad2349 100644 (file)
@@ -316,8 +316,8 @@ endif
 # External programs
 perl = find_program(get_option('PERL'), required: true, native: true)
 python = find_program(get_option('PYTHON'), required: true, native: true)
-flex = find_program(get_option('FLEX'), native: true, version: '>= 2.5.31')
-bison = find_program(get_option('BISON'), native: true, version: '>= 1.875')
+flex = find_program(get_option('FLEX'), native: true, version: '>= 2.5.35')
+bison = find_program(get_option('BISON'), native: true, version: '>= 2.3')
 sed = find_program(get_option('SED'), 'sed', native: true)
 prove = find_program(get_option('PROVE'), native: true)
 tar = find_program(get_option('TAR'), native: true)
@@ -864,7 +864,10 @@ if not perlopt.disabled()
 
     perl_inc_dir = '@0@/CORE'.format(archlibexp)
 
-    if useshrplib != 'true'
+    if perlversion.version_compare('< 5.14')
+      perl_may_work = false
+      perl_msg = 'Perl version 5.14 or later is required, but this is @0@'.format(perlversion)
+    elif useshrplib != 'true'
       perl_may_work = false
       perl_msg = 'need a shared perl'
     endif
@@ -1458,6 +1461,8 @@ if cc.links('''
     /* This must match the corresponding code in c.h: */
     #if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__IBMC__)
     #define pg_attribute_aligned(a) __attribute__((aligned(a)))
+    #elif defined(_MSC_VER)
+    #define pg_attribute_aligned(a) __declspec(align(a))
     #endif
     typedef __int128 int128a
     #if defined(pg_attribute_aligned)