public inbox for [email protected]  
help / color / mirror / Atom feed
From: Palle Girgensohn <[email protected]>
To: PostgreSQL Hackers <[email protected]>
Subject: OK to build LLVM (*.bc) with CLANG but rest of postgresql with CC (other compiler)?
Date: Tue, 13 Jun 2023 11:19:48 +0200
Message-ID: <[email protected]> (raw)

Hi!

TL;DR:

CLANG is used to compile *.bc files during postgresql build. Is it OK to have a different compiler for the rest of the build? gcc, or even another version of clang?

--

Slightly longer version:

I'm packaging postgresql for FreeBSD and as you probably know, in that OS clang is the default compiler.

At present, depending on OS version, it is clang version 13, 14 or even 16. That version of cc (clang) is always present.

LLVM is an optional add-on, a package. The default version is 15, and it also installs the clang15 binary for the corresponding clang version 15.

As I understand, you're "better off" compiling the LLVM stuff in PostgreSQL with the same version clang compiler as the LLVM version you're using. Hence, with LLVM 15, set the environment variable CLANG=/path/to/clang15 when running configure. If the .bc files will get compiled by the base system clang compiler, this can lead to a ThinLTO link error, if the base system compiler is a newer version of llvm.

The question is if it is a bad idea to use the base compiler, say clang13, to build postgresql, but set CLANG=clang15 to match the LLVM version. Am I better off using clang15 for everything then?

Cheers,
Palle







view thread (2+ messages)

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected]
  Subject: Re: OK to build LLVM (*.bc) with CLANG but rest of postgresql with CC (other compiler)?
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox