From f9a1d6bac4941e94be596b6751f123cf0932d47d Mon Sep 17 00:00:00 2001 From: Palle Girgensohn Date: Wed, 30 Sep 2020 20:52:17 +0000 Subject: Try to fix build on recent FreeBSD versions where clang version > llvm default ports version. Fix this by depending on a higher version of llvm if such a version exixts, and otherwise use a clang version compatible with the latest llvm. Using llvm was previously dependant on clang being used, and this did not quite work for all cases due to some weird order of variables in the Makefile. The result was that the option set by the used was not really honored. The portrevision is bumped to reflect that the setting of LLVM might not have worked before this portrevison. PR: 244403 --- databases/postgresql11-server/Makefile | 2 +- databases/postgresql12-server/Makefile | 2 +- databases/postgresql13-server/Makefile | 42 ++++++++++++++++++++++------------ 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/databases/postgresql11-server/Makefile b/databases/postgresql11-server/Makefile index 7b5b2edeb559..0fb7a33d506d 100644 --- a/databases/postgresql11-server/Makefile +++ b/databases/postgresql11-server/Makefile @@ -4,7 +4,7 @@ DISTVERSION?= 11.9 # PORTREVISION must be ?= otherwise, all slave ports get this PORTREVISION and # not their own. Probably best to keep it at ?=0 when reset here too. -PORTREVISION?= 0 +PORTREVISION?= 1 MAINTAINER?= pgsql@FreeBSD.org diff --git a/databases/postgresql12-server/Makefile b/databases/postgresql12-server/Makefile index 2a607b18434f..327b8006bef1 100644 --- a/databases/postgresql12-server/Makefile +++ b/databases/postgresql12-server/Makefile @@ -4,7 +4,7 @@ DISTVERSION?= 12.4 # PORTREVISION must be ?= otherwise, all slave ports get this PORTREVISION and # not their own. Probably best to keep it at ?=0 when reset here too. -PORTREVISION?= 0 +PORTREVISION?= 1 MAINTAINER?= pgsql@FreeBSD.org diff --git a/databases/postgresql13-server/Makefile b/databases/postgresql13-server/Makefile index 32cd3ddbca2c..6294d384dd41 100644 --- a/databases/postgresql13-server/Makefile +++ b/databases/postgresql13-server/Makefile @@ -101,10 +101,10 @@ OPTIONS_DEFINE+= LLVM OPTIONS_DEFAULT+= LLVM LLVM_DESC= Build with support for JIT-compiling expressions LLVM_CONFIGURE_WITH= llvm -LLVM_BUILD_DEPENDS= llvm${LLVM_DEFAULT}>0:devel/llvm${LLVM_DEFAULT} -LLVM_BUILD_DEPENDS+= llvm-config${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -LLVM_RUN_DEPENDS+= llvm-config${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -LLVM_CONFIGURE_ENV+= LLVM_CONFIG=${LOCALBASE}/bin/llvm-config${LLVM_DEFAULT} +LLVM_BUILD_DEPENDS= llvm${PG_LLVM_VERSION}>0:devel/llvm${PG_LLVM_VERSION} +LLVM_BUILD_DEPENDS+= llvm-config${PG_LLVM_VERSION}:devel/llvm${PG_LLVM_VERSION} +LLVM_RUN_DEPENDS+= llvm-config${PG_LLVM_VERSION}:devel/llvm${PG_LLVM_VERSION} +LLVM_CONFIGURE_ENV+= LLVM_CONFIG=${LOCALBASE}/bin/llvm-config${PG_LLVM_VERSION} #OPTIONS_DEFAULT+= ${OPTIONS_DEFAULT_${CHOSEN_COMPILER_TYPE}} #OPTIONS_DEFAULT_clang= LLVM .endif @@ -193,12 +193,6 @@ USES+= compiler:gcc-c++11-lib USES+= compiler .endif -.if ${DISTVERSION:C/([0-9]*).*/\1/} >= 11 -. if defined(SERVER_ONLY) && ${PORT_OPTIONS:MLLVM} -INSTALL_DIRS+= src/backend/jit/llvm -. endif -.endif - .if ${DISTVERSION:C/([0-9]*).*/\1/} < 10 . if ( defined(SERVER_ONLY) && ${PORT_OPTIONS:MICU} ) || make(makesum) USES+= autoreconf @@ -245,11 +239,29 @@ CONFIGURE_ARGS+=--with-krb5 # For testing files in FILESDIR .include -# Fix problems building on FreeBSD 13 by keeping clang and llvm versions in sync -.if ${CHOSEN_COMPILER_TYPE} == clang && ${OPSYS} == FreeBSD && ${OSVERSION} >= 1300109 -BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} -CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} +# sync LLVM to the preferred compiler if possible +# or else use a lower version compiler that is compatible +.if ${COMPILER_VERSION} > ${LLVM_DEFAULT} +# Highest LLVM version in ports: +. if ${COMPILER_VERSION} <= 11 +PG_LLVM_VERSION=${COMPILER_VERSION} +PG_COMPILER_VERSION=${COMPILER_VERSION} +. else +PG_LLVM_VERSION=11 +PG_COMPILER_VERSION=11 +. endif +.else +PG_COMPILER_VERSION=${COMPILER_VERSION} +PG_LLVM_VERSION=${LLVM_DEFAULT} +.endif + +.if ${DISTVERSION:C/([0-9]*).*/\1/} >= 11 +. if defined(SERVER_ONLY) && ${PORT_OPTIONS:MLLVM} +INSTALL_DIRS+= src/backend/jit/llvm +. if ${COMPILER_VERSION} != ${PG_COMPILER_VERSION} +LLVM_CONFIGURE_ARGS?= CC=${LOCALBASE}/bin/clang${PG_COMPILER_VERSION} +. endif +. endif .endif .if defined(SERVER_ONLY) -- cgit v1.2.3