Skip to content

LLVM issues with PostgreSQL YUM repository on CentOS 8

In the latest 3 minor releases of Red Hat Enterprise Linux 8, Red Hat have broken LLVM compatibility with the previous minor releases (like introducing LLVM 8 with RHEL 8.1, LLVM 9 with RHEL 8.2, and LLVM 10 with RHEL 8.3).
This breaks compatibility with the previous releases, and also affects PostgreSQL updates for the users who installed the llvmjit subpackage. The negative effects are:

- RHEL: Users cannot update to the new LLVM until the packages are rebuilt. This issue has been solved already, by updating the build servers to the new minor release immediately, and rebuilding affected packages.

- CentOS, which lags behind RHEL, is also significantly affected by this breakage, blocking PostgreSQL minor updates. This is the problem that needs to be solved.

If you encounter this issue, you can use the new repo called “pgdg-centos8-sysupdates” for CentOS 8 users. This repo brings in the LLVM and CLANG packages from latest RHEL (of course, rebuilt and signed with our own key), which satisfy the llvmjit dependency. Please note that this is optional, because it may break other packages (if any) which depend on older versions of LLVM and CLANG. This feature is available for PostgreSQL 11 and above.

Users first need to update to the latest repo file (dnf -y update pgdg-redhat-repo) to benefit from this feature, which is 42.0.15 at the time of writing.

Here are the steps to enable this repo:

dnf -qy module disable postgresql llvm-toolset rust-toolset
dnf config-manager --set-enabled pgdg-centos8-sysupdates


(Disabling rust-toolset is not a must, however dnf will otherwise throw warnings as it has a dependency to the llvm-toolset module).

When this is done, you can either update or install the llvmjit package normally.

If you have any questions, please either email to pgsql-pkg-yum@postgresql.org, or create a ticket at our redmine.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

The author does not allow comments to this entry

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Submitted comments will be subject to moderation before being displayed.