Re: [PATCH] Skip llvm bytecode generation if LLVM is missing - Mailing list pgsql-hackers

From Craig Ringer
Subject Re: [PATCH] Skip llvm bytecode generation if LLVM is missing
Date
Msg-id CAMsr+YEaLTUfkEkq15CtC7CDoLPuBWGywJrOx0FgSqfV9n+Smg@mail.gmail.com
Whole thread Raw
In response to Re: [PATCH] Skip llvm bytecode generation if LLVM is missing  (Andres Freund <andres@anarazel.de>)
Responses Re: [PATCH] Skip llvm bytecode generation if LLVM is missing  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Re: [PATCH] Skip llvm bytecode generation if LLVM is missing  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On Thu, 12 Mar 2020 at 03:43, Andres Freund <andres@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



pgsql-hackers by date:

Previous
From: Kyotaro Horiguchi
Date:
Subject: Re: [PATCH] Skip llvm bytecode generation if LLVM is missing
Next
From: Masahiko Sawada
Date:
Subject: Re: Some problems of recovery conflict wait events