Re: pg_bsd_indent compiles bytecode

From: Andres Freund <andres(at)anarazel(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Bruce Momjian <bruce(at)momjian(dot)us>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: pg_bsd_indent compiles bytecode
Date: 2020-06-27 22:34:27
Message-ID: 20200627223427.4ys2epcttsrdthfl@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2020-06-27 17:12:57 -0400, Tom Lane wrote:
> Bruce Momjian <bruce(at)momjian(dot)us> writes:
> > On Tue, Jun 23, 2020 at 05:56:10PM -0400, Alvaro Herrera wrote:
> >> I just noticed that when you compile pg_bsd_indent with a PG tree that
> >> has --enable-jit (or something around that), then it compiles the source
> >> files into bytecode.
> >> Obviously this is not harmful since these files don't get installed, but
> >> I wonder if our compiles aren't being excessively generous.
>
> > Are you saying pg_bsd_indent indents the JIT output files? I assumed
> > people only ran pg_bsd_indent on dist-clean trees.
>
> I think what he means is that when pg_bsd_indent absorbs the CFLAGS
> settings that PG uses (because it uses the pgxs build infrastructure),
> it ends up also building .bc files.

Hm. Yea, I think I see the problem. OBJS should only be expanded if
MODULE_big is set.

> I wouldn't care about this particularly for pg_bsd_indent itself,
> but it suggests that we're probably building .bc files for client-side
> files, which seems like a substantial waste of time. Maybe we need
> different CFLAGS for client and server?

I don't think it'll apply to most in-tree client side programs, so it
shouldn't be too bad currently. Still should fix it, of course.

I can test that with another program, but for some reason pg_bsd_indent
fails to build against 13/HEAD, but builds fine against 12. Not sure yet
what's up:

/usr/bin/ld.gold: error: indent.o: multiple definition of 'input'
/usr/bin/ld.gold: args.o: previous definition here
/usr/bin/ld.gold: error: indent.o: multiple definition of 'output'
/usr/bin/ld.gold: args.o: previous definition here
/usr/bin/ld.gold: error: indent.o: multiple definition of 'labbuf'
/usr/bin/ld.gold: args.o: previous definition here
...

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2020-06-27 22:43:40 Re: pg_bsd_indent compiles bytecode
Previous Message Bruce Momjian 2020-06-27 21:53:15 Re: Fwd: PostgreSQL: WolfSSL support