Re: BUG #15414: extension compilation fails when c++ files are named with .cc

From: Andres Freund <andres(at)anarazel(dot)de>
To: code(at)legitimatesounding(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #15414: extension compilation fails when c++ files are named with .cc
Date: 2018-10-01 20:25:48
Message-ID: 20181001202548.tt6xc2aqu3phakly@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 2018-10-01 19:46:03 +0000, PG Bug reporting form wrote:
> The following bug has been logged on the website:
>
> Bug reference: 15414
> Logged by: Jerry Sievert
> Email address: code(at)legitimatesounding(dot)com
> PostgreSQL version: 11beta4
> Operating system: any
> Description:
>
> when --with-llvm is configured, compiling c++ extensions that use .cc and
> not .cpp fail with no rule to create .bc files.

We currently have two rules to compile .bc files from source code:

src/Makefile.global.in

%.bc : %.c
$(COMPILE.c.bc) -o $@ $<

%.bc : %.cpp
$(COMPILE.cxx.bc) -o $@ $<

I'm a bit worried that supporting extensions that PG itself doesn't use
- and thus necessarily built by a buildsystem that's not just PGXS -
will be a, let's say iterative, process. Before v11 there wasn't a C++
integration PGXS wise, so extensions really can't be faulted for
developing their own PGXS extensions.

I guess we have two choices:
1) Add rules for ".cpp", ".cc", ".C", ".cxx", and ".c++" and whatever
else we can think of. Add additional variants whenever somebody
presents one (and backpatch it).
2) Insist that pg extensions follow PGXS rules, which atm are to use
.cpp for c++ source files.

I don't really have an opinion here.

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Andres Freund 2018-10-01 20:31:28 Re: BUG #15414: extension compilation fails when c++ files are named with .cc
Previous Message PG Bug reporting form 2018-10-01 19:46:03 BUG #15414: extension compilation fails when c++ files are named with .cc