Peter Eisentraut <peter.eisentr...@enterprisedb.com> writes: > [ policy requiring that 9.2 and up be kept buildable, as of today ]
I experimented to see what this would entail exactly. Using current macOS (Apple clang version 13.0.0) on M1 hardware, I built with minimal configure options (--enable-debug --enable-cassert) and ran the core regression tests. I found that commit 1c0cf52b3 (Use return instead of exit() in configure) is needed in 9.4 and before, else we don't get through configure. That's the only fix needed to get a clean build in 9.4 and 9.3. 9.2 shows several compiler warnings, the scarier ones of which could be cleaned up by back-patching c74d586d2 (Fix function return type confusion). The remainder are variable-may-be-used-uninitialized warnings, which I think people are accustomed to ignoring in dubious cases. In any case, I failed to get rid of them without back-patching 71450d7fd (Teach compiler that ereport(>=ERROR) does not return), which seems like a bridge too far. I also tried 9.1, but it has multiple compile-time problems: * fails to select a spinlock implementation * "conflicting types for 'base_yylex'" * strange type-conflict warnings in zlib calls So at least on this platform, there are solid technical reasons to select 9.2 not 9.1 as the cutoff. Obviously, we might find some other things to fix if we checked with other compilers, or tested more than the core tests. But this much seems quite doable, and it's probably prerequisite for any further testing. regards, tom lane