d39ad836d1
Collection (requested by USE_GCC=yes and various USES=compiler invocations) from GCC 4.9.4 to GCC 5.4. files/patch-arm-support and files/patch-gcc_system.h have become obsolete. New patches files/patch-arm-unwind-cxx-support and files/patch-libc++ help support arm targets and new libc++ in base. ONLY_FOR_ARCHS now also includes arm. A new option GRAPHITE_DESC, off by default for now, adds support for Graphite loop optimizations. Finally, conflicts with other lang/gcc* ports are adjusted suitably. In terms of changes for users, this upgrade brings the following: The default mode for C is now -std=gnu11 instead of -std=gnu89. New warning options -Wc90-c99-compat and -Wc99-c11-compat may prove useful on that front. The C++ front end now has full C++14 language support including C++14 variable templates, C++14 aggregates with non-static data member initializers, C++14 extended constexpr, and more. The Standard C++ Library (libstdc++) has full C++11 support and experimental full C++14 support. It uses a new ABI by default. There have been significant improvements to inter-procedural optimizations and link-time optimization such as One Definition Rule based merging of C++ types as well as register allocation. OpenMP 4.0 specification offloading features are now supported by the C, C++, and Fortran compilers. Cilk Plus, an extension to the C and C++ languages to support data and task parallelism, has been added as well. New warning options -Wswitch-bool, -Wlogical-not-parentheses, -Wbool-compare and -Wsizeof-array-argument may prove useful as may new preprocessor directives __has_include, __has_include_next, and __has_attribute. GCC can now be built as a shared library for embedding in other processes (such as interpreters), suitable for Just-In-Time compilation to machine code. This provides a C API and a C++ wrapper API. Many code generation improvements for AArch64, ARM, support for AVX-512{BW,DQ,VL,IFMA,VBMI} and Intel MPX on x86-64, and generally improvements on many targets. The Local Register Allocator (LRA) now contains a rematerialization subpass and is able to reuse the PIC hard register on x86/x86-64 to improve performance of position independent code. https://gcc.gnu.org/gcc-5/changes.html has a more extensive set of changes and https://gcc.gnu.org/gcc-5/porting_to.html has a solid overview of issue you may encountering porting to this new version. PR: 216707, 218125 Tested by: antoine (-exp runs) Supported by: jbeich, tcberner, and others
146 lines
4.9 KiB
Makefile
146 lines
4.9 KiB
Makefile
# $FreeBSD$
|
|
#
|
|
# MAINTAINER: ports@FreeBSD.org
|
|
#
|
|
# Provide default versions for ports with multiple versions selectable
|
|
# by the user.
|
|
#
|
|
# Users who want to override these defaults can easily do so by defining
|
|
# DEFAULT_VERSIONS in their make.conf as follows:
|
|
#
|
|
# DEFAULT_VERSIONS= perl5=5.20 ruby=2.0
|
|
|
|
.if !defined(_INCLUDE_BSD_DEFAULT_VERSIONS_MK)
|
|
_INCLUDE_BSD_DEFAULT_VERSIONS_MK= yes
|
|
|
|
LOCALBASE?= /usr/local
|
|
|
|
.for lang in APACHE BDB FIREBIRD FPC GCC GHOSTSCRIPT LINUX LUA MYSQL PERL5 \
|
|
PGSQL PHP PYTHON PYTHON2 PYTHON3 RUBY SSL TCLTK
|
|
.if defined(${lang}_DEFAULT)
|
|
WARNING+= "The variable ${lang}_DEFAULT is set and it should only be defined through DEFAULT_VERSIONS+=${lang:tl}=${${lang}_DEFAULT} in /etc/make.conf"
|
|
WARNING+= "This behaviour has never been supported and will be removed on 2017-01-31"
|
|
.endif
|
|
#.undef ${lang}_DEFAULT
|
|
.endfor
|
|
|
|
.for lang in ${DEFAULT_VERSIONS}
|
|
_l= ${lang:C/=.*//g}
|
|
${_l:tu}_DEFAULT= ${lang:C/.*=//g}
|
|
.endfor
|
|
|
|
# Possible values: 2.2, 2.4
|
|
APACHE_DEFAULT?= 2.4
|
|
# Possible values: 48, 5, 6
|
|
BDB_DEFAULT?= 5
|
|
# Possible values: 2.5
|
|
FIREBIRD_DEFAULT?= 2.5
|
|
# Possible values: 3.0.0
|
|
FPC_DEFAULT?= 3.0.2
|
|
# Possible values: 4.7, 4.8, 4.9, 5, 6
|
|
GCC_DEFAULT?= 5
|
|
# Possible values: 7, 8, 9, agpl
|
|
GHOSTSCRIPT_DEFAULT?= agpl
|
|
.if ${ARCH} == amd64
|
|
# Possible values: c6, c6_64, c7
|
|
LINUX_DEFAULT?= c6_64
|
|
.else
|
|
# Possible values: c6
|
|
LINUX_DEFAULT?= c6
|
|
.endif
|
|
.if defined(OVERRIDE_LINUX_BASE_PORT)
|
|
LINUX_DEFAULT:= ${OVERRIDE_LINUX_BASE_PORT}
|
|
WARNING+= "OVERRIDE_LINUX_BASE_PORT is deprecated, please use DEFAULT_VERSIONS+=linux=${OVERRIDE_LINUX_BASE_PORT}."
|
|
.endif
|
|
# Possible values: 5.1, 5.2, 5.3
|
|
LUA_DEFAULT?= 5.2
|
|
# Possible values: 5.1, 5.5, 5.6, 5.7, 8.0, 5.5m, 10.0m, 10.1m, 5.5p, 5.6p, 5.7p, 5.6w
|
|
MYSQL_DEFAULT?= 5.6
|
|
# Possible values: 5.20, 5.22, 5.24, devel
|
|
.if !exists(${LOCALBASE}/bin/perl) || (!defined(_PORTS_ENV_CHECK) && \
|
|
defined(PACKAGE_BUILDING))
|
|
PERL5_DEFAULT?= 5.24
|
|
.elif !defined(PERL5_DEFAULT)
|
|
# There's no need to replace development versions, like "5.23" with "devel"
|
|
# because 1) nobody is supposed to use it outside of poudriere, and 2) it must
|
|
# be set manually in /etc/make.conf in the first place, and we're never getting
|
|
# in here.
|
|
.if !defined(_PERL5_FROM_BIN)
|
|
_PERL5_FROM_BIN!= perl -e 'printf "%vd\n", $$^V;'
|
|
.endif
|
|
_EXPORTED_VARS+= _PERL5_FROM_BIN
|
|
PERL5_DEFAULT:= ${_PERL5_FROM_BIN:R}
|
|
.endif
|
|
# Possible values: 9.2, 9.3, 9.4, 9.5, 9.6
|
|
PGSQL_DEFAULT?= 9.3
|
|
# Possible values: 5.6, 7.0, 7.1
|
|
PHP_DEFAULT?= 5.6
|
|
# Possible values: 2.7, 3.3, 3.4, 3.5, 3.6
|
|
PYTHON_DEFAULT?= 2.7
|
|
# Possible values: 2.7
|
|
PYTHON2_DEFAULT?= 2.7
|
|
# Possible values: 3.3, 3.4, 3.5, 3.6
|
|
PYTHON3_DEFAULT?= 3.5
|
|
# Possible values: 2.1, 2.2, 2.3, 2.4
|
|
RUBY_DEFAULT?= 2.3
|
|
# Possible values: 4.2, 4.3, 4.4, 4.5, 4.6
|
|
SAMBA_DEFAULT?= 4.4
|
|
# Possible values: base, openssl, openssl-devel, libressl, libressl-devel
|
|
.if !defined(SSL_DEFAULT)
|
|
# If no preference was set, check for an installed base version
|
|
# but give an installed port preference over it.
|
|
. if defined(WITH_OPENSSL_PORT)
|
|
. if defined(OPENSSL_PORT)
|
|
SSL_DEFAULT:=${OPENSSL_PORT:T}
|
|
WARNING+= "Using WITH_OPENSSL_PORT and OPENSSL_PORT in make.conf is deprecated, replace them with DEFAULT_VERSIONS+=ssl=${SSL_DEFAULT} in your make.conf"
|
|
. else
|
|
SSL_DEFAULT=openssl
|
|
WARNING+= "Using WITH_OPENSSL_PORT in make.conf is deprecated, replace it with DEFAULT_VERSIONS+=ssl=openssl in your make.conf"
|
|
. endif
|
|
. elif defined(WITH_OPENSSL_BASE)
|
|
SSL_DEFAULT=base
|
|
WARNING+= "Using WITH_OPENSSL_BASE in make.conf is deprecated, replace it with DEFAULT_VERSIONS+=ssl=base in your make.conf"
|
|
. elif !defined(WITH_OPENSSL_BASE) && \
|
|
!defined(WITH_OPENSSL_PORT) && \
|
|
!defined(SSL_DEFAULT) && \
|
|
!exists(${DESTDIR}/${LOCALBASE}/lib/libcrypto.so) && \
|
|
exists(${DESTDIR}/usr/include/openssl/opensslv.h)
|
|
SSL_DEFAULT= base
|
|
. else
|
|
. if exists(${DESTDIR}/${LOCALBASE}/lib/libcrypto.so)
|
|
. if defined(PKG_BIN)
|
|
# find installed port and use it for dependency
|
|
. if !defined(OPENSSL_INSTALLED)
|
|
. if defined(DESTDIR)
|
|
PKGARGS= -c ${DESTDIR}
|
|
. else
|
|
PKGARGS=
|
|
. endif
|
|
OPENSSL_INSTALLED!= ${PKG_BIN} ${PKGARGS} which -qo ${LOCALBASE}/lib/libcrypto.so || :
|
|
. endif
|
|
. if defined(OPENSSL_INSTALLED) && !empty(OPENSSL_INSTALLED)
|
|
SSL_DEFAULT:= ${OPENSSL_INSTALLED:T}
|
|
WARNING+= "You have ${OPENSSL_INSTALLED} installed but do not have DEFAULT_VERSIONS+=ssl=${SSL_DEFAULT} set in your make.conf"
|
|
. endif
|
|
. else
|
|
check-makevars::
|
|
@${ECHO_MSG} "You have a ${LOCALBASE}/lib/libcrypto.so file installed, but the framework is unable"
|
|
@${ECHO_MSG} "to determine what port it comes from."
|
|
@${ECHO_MSG} "Add DEFAULT_VERSIONS+=ssl=<openssl package name> to your /etc/make.conf and try again."
|
|
@${FALSE}
|
|
. endif
|
|
. endif
|
|
. endif
|
|
# Make sure we have a default in the end
|
|
SSL_DEFAULT?= base
|
|
.endif
|
|
# Possible values: 8.4, 8.5, 8.6, 8.7
|
|
TCLTK_DEFAULT?= 8.6
|
|
|
|
# Possible values: 4, 5
|
|
VARNISH_DEFAULT?= 4
|
|
|
|
# Version of lang/gcc. Do not override!
|
|
LANG_GCC_IS= 5
|
|
|
|
.endif
|