Re: [PATCH] Skip llvm bytecode generation if LLVM is missing

From: Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>
To: craig(at)2ndquadrant(dot)com
Cc: andres(at)anarazel(dot)de, pgsql-hackers(at)lists(dot)postgresql(dot)org, devrim(at)gunduz(dot)org
Subject: Re: [PATCH] Skip llvm bytecode generation if LLVM is missing
Date: 2020-03-12 08:42:54
Message-ID: 20200312.174254.828765762208753823.horikyota.ntt@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

At Thu, 12 Mar 2020 14:08:31 +0800, Craig Ringer <craig(at)2ndquadrant(dot)com> wrote in
> On Thu, 12 Mar 2020 at 03:43, Andres Freund <andres(at)anarazel(dot)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.

FWIW, the patch makes bitcode generation skipped (almost silently)
when clang is installed but ccache is not, with -devel packages for
CentOS8. Counldn't we make the bitcode generation a separate make
target, at least for PGXS build? Rather than turning it on and off by
the condition which doens't seem having a clear relation with the
necessity of bitcode generation?

> 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.

regards.

--
Kyotaro Horiguchi
NTT Open Source Software Center

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message imai.yoshikazu@fujitsu.com 2020-03-12 09:19:37 RE: Planning counters in pg_stat_statements (using pgss_store)
Previous Message Pengzhou Tang 2020-03-12 08:35:15 Additional size of hash table is alway zero for hash aggregates