{"id":11315,"date":"2018-06-06T06:30:11","date_gmt":"2018-06-06T04:30:11","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/"},"modified":"2018-06-06T06:30:11","modified_gmt":"2018-06-06T04:30:11","slug":"how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/","title":{"rendered":"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7"},"content":{"rendered":"<p>As you might already know PostgreSQL 11 will bring support for <a href=\"https:\/\/www.postgresql.org\/docs\/11\/static\/jit.html\" target=\"_blank\" rel=\"noopener\">just-in-time<\/a> compilation. When you want to compile PostgreSQL 11 with jit support on RedHat\/CentOS 7 this requires a little hack (more on the reason below). In this post we&#8217;ll look at how you can do it at least for testing. For production it is of course not recommended as hacking the make file is nothing you want to do, at least I would not do it. Lets go.<\/p>\n<p><!--more--><\/p>\n<p>As mentioned I am on CentOS 7:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:$ cat \/etc\/centos-release\nCentOS Linux release 7.5.1804 (Core) \n<\/pre>\n<p>What you need to get support for jit is <a href=\"https:\/\/llvm.org\/\" target=\"_blank\" rel=\"noopener\">llvm<\/a>. When you check the CentOS repository llvm is there:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:$ yum search llvm\nLoaded plugins: fastestmirror\nLoading mirror speeds from cached hostfile\n * base: mirror.spreitzer.ch\n * extras: mirror.spreitzer.ch\n * updates: mirror.spreitzer.ch\n===================================================== N\/S matched: llvm =====================================================\nllvm-devel.x86_64 : Libraries and header files for LLVM\nllvm-doc.noarch : Documentation for LLVM\nllvm-libs.x86_64 : LLVM shared libraries\nllvm-ocaml.x86_64 : OCaml binding for LLVM\nllvm-ocaml-devel.x86_64 : Development files for llvm-ocaml\nllvm-ocaml-doc.noarch : Documentation for LLVM's OCaml binding\nllvm-private.i686 : llvm engine for Mesa\nllvm-private.x86_64 : llvm engine for Mesa\nllvm-private-devel.i686 : Libraries and header files for LLVM\nllvm-private-devel.x86_64 : Libraries and header files for LLVM\nllvm-static.x86_64 : LLVM static libraries\nmesa-private-llvm.i686 : llvm engine for Mesa\nmesa-private-llvm.x86_64 : llvm engine for Mesa\nmesa-private-llvm-devel.i686 : Libraries and header files for LLVM\nmesa-private-llvm-devel.x86_64 : Libraries and header files for LLVM\nclang.x86_64 : A C language family front-end for LLVM\nllvm.x86_64 : The Low Level Virtual Machine\n\n  Name and summary matches only, use \"search all\" for everything.\n<\/pre>\n<p>The issue is that the PostgreSQL documentation clearly states that llvm needs to be at least of version 3.9 and in the CentOS repository you&#8217;ll find this:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [10]\">\npostgres@pgbox:$ yum info llvm\nLoaded plugins: fastestmirror\nLoading mirror speeds from cached hostfile\n * base: mirror1.hs-esslingen.de\n * extras: mirror.fra10.de.leaseweb.net\n * updates: mirror.netcologne.de\nAvailable Packages\nName        : llvm\nArch        : x86_64\nVersion     : 3.4.2\nRelease     : 8.el7\nSize        : 1.3 M\nRepo        : extras\/7\/x86_64\nSummary     : The Low Level Virtual Machine\nURL         : http:\/\/llvm.org\/\nLicense     : NCSA\nDescription : LLVM is a compiler infrastructure designed for compile-time,\n            : link-time, runtime, and idle-time optimization of programs from\n            : arbitrary programming languages.  The compiler infrastructure includes\n            : mirror sets of programming tools as well as libraries with equivalent\n            : functionality.\n<\/pre>\n<p>What to do? What you need to do is to add the <a href=\"https:\/\/fedoraproject.org\/wiki\/EPEL\" target=\"_blank\" rel=\"noopener\">epel repository<\/a> where you can find llvm 3.9 and 5.0:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:$ wget http:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-7.noarch.rpm\npostgres@pgbox:$ sudo yum localinstall epel-release-latest-7.noarch.rpm\npostgres@pgbox:$ sudo yum install llvm5.0 llvm5.0-devel clang\n<\/pre>\n<p>Having that we should be ready for configuration:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:$ PGHOME=\/u01\/app\/postgres\/product\/11\/db_0\npostgres@pgbox:$ SEGSIZE=1\npostgres@pgbox:$ BLOCKSIZE=8\npostgres@pgbox:$ WALSEGSIZE=16\npostgres@pgbox:$ .\/configure --prefix=${PGHOME} \n            --exec-prefix=${PGHOME} \n            --bindir=${PGHOME}\/bin \n            --libdir=${PGHOME}\/lib \n            --sysconfdir=${PGHOME}\/etc \n            --includedir=${PGHOME}\/include \n            --datarootdir=${PGHOME}\/share \n            --datadir=${PGHOME}\/share \n            --with-pgport=5432 \n            --with-perl \n            --with-python \n            --with-openssl \n            --with-pam \n            --with-ldap \n            --with-libxml \n            --with-libxslt \n            --with-segsize=${SEGSIZE} \n            --with-blocksize=${BLOCKSIZE} \n            --with-wal-segsize=${WALSEGSIZE}  \n            --with-llvm LLVM_CONFIG='\/usr\/lib64\/llvm3.9\/bin\/llvm-config' \n            --with-systemd \n<\/pre>\n<p>That succeeds so lets compile:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:$ make -j 4 all\n<\/pre>\n<p>&#8230; and you will run into this issue:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n\/usr\/bin\/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -O2  -I..\/..\/src\/include  -D_GNU_SOURCE  -flto=thin -emit-llvm -c -o localtime.bc localtime.c\nclang: error: unknown argument: '-flto=thin'\nmake[2]: *** [localtime.bc] Error 1\nmake[2]: Leaving directory `\/home\/postgres\/postgresql\/src\/timezone'\nmake[1]: *** [all-timezone-recurse] Error 2\nmake[1]: Leaving directory `\/home\/postgres\/postgresql\/src'\nmake: *** [all-src-recurse] Error 2\n<\/pre>\n<p>There is a mail <a href=\"https:\/\/www.postgresql.org\/message-id\/flat\/CAEepm%3D3SJRpO63dMvKNp2u5eodFrK1hSQouANta70AxGwPe-Dg%40mail.gmail.com#CAEepm=3SJRpO63dMvKNp2u5eodFrK1hSQouANta70AxGwPe-Dg@mail.gmail.com\" target=\"_blank\" rel=\"noopener\">thread on the hackers mailing list<\/a> which describes the issue. Apparently the clang compiler is too old to understand this argument. What you could do is to adjust the corresponding line in the Makefile:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:$ vi src\/Makefile.global.in\nCOMPILE.c.bc = $(CLANG) -Wno-ignored-attributes $(BITCODE_CFLAGS) $(CPPFLAGS) -flto=thin -emit-llvm -c\nCOMPILE.c.bc = $(CLANG) -Wno-ignored-attributes $(BITCODE_CFLAGS) $(CPPFLAGS) -emit-llvm -c\n<\/pre>\n<p>Doing all the stuff again afterwards:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:$ make clean\npostgres@pgbox:$ .\/configure --prefix=${PGHOME} \n            --exec-prefix=${PGHOME} \n            --bindir=${PGHOME}\/bin \n            --libdir=${PGHOME}\/lib \n            --sysconfdir=${PGHOME}\/etc \n            --includedir=${PGHOME}\/include \n            --datarootdir=${PGHOME}\/share \n            --datadir=${PGHOME}\/share \n            --with-pgport=5432 \n            --with-perl \n            --with-python \n            --with-openssl \n            --with-pam \n            --with-ldap \n            --with-libxml \n            --with-libxslt \n            --with-segsize=${SEGSIZE} \n            --with-blocksize=${BLOCKSIZE} \n            --with-wal-segsize=${WALSEGSIZE}  \n            --with-llvm LLVM_CONFIG='\/usr\/lib64\/llvm3.9\/bin\/llvm-config' \n            --with-systemd \npostgres@pgbox:$ make -j 4 all\n<\/pre>\n<p>&#8230; led to the following issue (at least for me):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nmake[2]: g++: Command not found\nmake[2]: *** [llvmjit_error.o] Error 127\nmake[2]: *** Waiting for unfinished jobs....\nmake[2]: Leaving directory `\/home\/postgres\/postgresql\/src\/backend\/jit\/llvm'\nmake[1]: *** [all-backend\/jit\/llvm-recurse] Error 2\nmake[1]: Leaving directory `\/home\/postgres\/postgresql\/src'\nmake: *** [all-src-recurse] Error 2\n<\/pre>\n<p>This should be easy to fix:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:$ sudo yum install -y gcc-c++\npostgres@pgbox:$ which g++\n\/bin\/g++\n<\/pre>\n<p>Again:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@pgbox:$ make -j 4 install\npostgres@pgbox:$ cd contrib\npostgres@pgbox:$ make -j 4 install\n<\/pre>\n<p>&#8230; and this time it succeeds (note that I did not run the regression tests, so maybe something will still go wrong there).<\/p>\n<p>JIT is enabled by default and controlled by these parameters:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\npostgres=# select name,setting from pg_settings where name like 'jit%';\n          name           | setting \n-------------------------+---------\n jit                     | on\n jit_above_cost          | 100000\n jit_debugging_support   | off\n jit_dump_bitcode        | off\n jit_expressions         | on\n jit_inline_above_cost   | 500000\n jit_optimize_above_cost | 500000\n jit_profiling_support   | off\n jit_provider            | llvmjit\n jit_tuple_deforming     | on\n(10 rows)\n<\/pre>\n<p>To test that it really kicks in you can do something like this:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\npostgres=#create table ttt (a int, b text, c date );\npostgres=#insert into ttt (a,b,c)\n           select aa.*, md5(aa::text), now()\n             from generate_series(1,1000000) aa;\npostgres=#set jit_above_cost=5;\npostgres=#set jit_optimize_above_cost=5;\npostgres=#set jit_inline_above_cost=5;\npostgres=#explain select sum(a) from ttt;\n<\/pre>\n<p>&#8230; which should lead to a plan like this:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [8,9,10,11]\">\n                                      QUERY PLAN                                       \n---------------------------------------------------------------------------------------\n Finalize Aggregate  (cost=15554.55..15554.56 rows=1 width=8)\n   -&gt;  Gather  (cost=15554.33..15554.54 rows=2 width=8)\n         Workers Planned: 2\n         -&gt;  Partial Aggregate  (cost=14554.33..14554.34 rows=1 width=8)\n               -&gt;  Parallel Seq Scan on ttt  (cost=0.00..13512.67 rows=416667 width=4)\n JIT:\n   Functions: 8\n   Inlining: true\n   Optimization: true\n(9 rows)\n<\/pre>\n<p>Hope that helps.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As you might already know PostgreSQL 11 will bring support for just-in-time compilation. When you want to compile PostgreSQL 11 with jit support on RedHat\/CentOS 7 this requires a little hack (more on the reason below). In this post we&#8217;ll look at how you can do it at least for testing. For production it is [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[1370,77],"type_dbi":[],"class_list":["post-11315","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-jit","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7 - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7\" \/>\n<meta property=\"og:description\" content=\"As you might already know PostgreSQL 11 will bring support for just-in-time compilation. When you want to compile PostgreSQL 11 with jit support on RedHat\/CentOS 7 this requires a little hack (more on the reason below). In this post we&#8217;ll look at how you can do it at least for testing. For production it is [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-06T04:30:11+00:00\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7\",\"datePublished\":\"2018-06-06T04:30:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/\"},\"wordCount\":298,\"commentCount\":0,\"keywords\":[\"JIT\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/\",\"name\":\"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2018-06-06T04:30:11+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7 - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/","og_locale":"en_US","og_type":"article","og_title":"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7","og_description":"As you might already know PostgreSQL 11 will bring support for just-in-time compilation. When you want to compile PostgreSQL 11 with jit support on RedHat\/CentOS 7 this requires a little hack (more on the reason below). In this post we&#8217;ll look at how you can do it at least for testing. For production it is [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/","og_site_name":"dbi Blog","article_published_time":"2018-06-06T04:30:11+00:00","author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7","datePublished":"2018-06-06T04:30:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/"},"wordCount":298,"commentCount":0,"keywords":["JIT","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/","url":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/","name":"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2018-06-06T04:30:11+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-compile-postgresql-11-with-support-for-jit-compilation-on-rhelcentos-7\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to compile PostgreSQL 11 with support for JIT compilation on RHEL\/CentOS 7"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=11315"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11315\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11315"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}