On Thu, 12 Mar 2020 at 03:43, Andres Freund <and...@anarazel.de> wrote:
> On 2020-03-11 11:25:28 +0800, Craig Ringer wrote: > > I propose that per the attached patch PGXS should simply skip adding > > the automatic dependency for .bc files if clang cannot be found. > > Extensions may still choose to explicitly declare the rule in their > > own Makefile if they want to force bitcode generation. > > Hm, that seems like it could also cause silent failures (e.g. after a > package upgrade or such). > > How about erroring out, but with an instruction that llvm can be > disabled with make NO_LLVM=1 or such? I thought about that at first, but that'll only benefit people who're hand-compiling things, and it's already possible with make with_llvm=no ... The proportion of people hand-compiling is an ever-shrinking proportion of the user base. When something's nested inside an rpm specfile inside a docker container inside a bash script inside another Docker container on an AWS instance .... not so fun. They might be able to inject it into the environment. But often not. Extensions that explicitly must generate bytecode may add their own dependency rule. Or we could make skipping bytecode generation if llvm cannot be found at build-time something the extension can turn off with a PGXS option, as suggested upthread. I'm reluctant to go with anything that requires each existing extension to be patched because that introduces a huge lag time for this change to actually help anyone out. -- Craig Ringer http://www.2ndQuadrant.com/ 2ndQuadrant - PostgreSQL Solutions for the Enterprise