<pre style='margin:0'>
Marcus Calhoun-Lopez (MarcusCalhoun-Lopez) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/a86f95c5ab86ee52c8fec2271e005591179731de">https://github.com/macports/macports-base/commit/a86f95c5ab86ee52c8fec2271e005591179731de</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new a86f95c allow compiler to use environment variables only
</span>a86f95c is described below
<span style='display:block; white-space:pre;color:#808000;'>commit a86f95c5ab86ee52c8fec2271e005591179731de
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Wed Jan 1 19:01:47 2020 -0600
<span style='display:block; white-space:pre;color:#404040;'> allow compiler to use environment variables only
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> For many ports, the compiler flags
</span><span style='display:block; white-space:pre;color:#404040;'> -I${prefix}/include,
</span><span style='display:block; white-space:pre;color:#404040;'> -L${prefix}/lib,
</span><span style='display:block; white-space:pre;color:#404040;'> -isysroot${configure.sdkroot}, and
</span><span style='display:block; white-space:pre;color:#404040;'> -Wl,-syslibroot,${configure.sdkroot}
</span><span style='display:block; white-space:pre;color:#404040;'> are unnecessary because of the environment variables
</span><span style='display:block; white-space:pre;color:#404040;'> CPATH,
</span><span style='display:block; white-space:pre;color:#404040;'> LIBRARY_PATH, and
</span><span style='display:block; white-space:pre;color:#404040;'> SDKROOT.
</span><span style='display:block; white-space:pre;color:#404040;'> compiler.limit_flags prevents MacPorts from attempting to add
</span><span style='display:block; white-space:pre;color:#404040;'> unnecessary compiler flags, which can cause problems.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> See https://trac.macports.org/wiki/CompilerEnvironmentVariables
</span><span style='display:block; white-space:pre;color:#404040;'> for details.
</span>---
src/port1.0/portconfigure.tcl | 71 ++++++++++++++++++++++++++++++++++++++++---
src/port1.0/portmain.tcl | 6 ++++
2 files changed, 72 insertions(+), 5 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portconfigure.tcl b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index fb478df..8b544c4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -234,8 +234,24 @@ options configure.optflags \
</span> default configure.optflags -Os
default configure.cflags {${configure.optflags}}
default configure.objcflags {${configure.optflags}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-default configure.cppflags {-I${prefix}/include}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-default configure.ldflags {-L${prefix}/lib -Wl,-headerpad_max_install_names}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.cppflags {[portconfigure::configure_get_cppflags]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc portconfigure::configure_get_cppflags {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[option compiler.limit_flags]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -I${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.ldflags {[portconfigure::configure_get_ldflags]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc portconfigure::configure_get_ldflags {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[option compiler.limit_flags]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -Wl,-headerpad_max_install_names
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return "-L${prefix}/lib -Wl,-headerpad_max_install_names"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> default configure.libs {}
default configure.fflags {${configure.optflags}}
default configure.f90flags {${configure.optflags}}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -737,7 +753,7 @@ proc portconfigure::max_version {verA verB} {
</span> # https://trac.macports.org/wiki/XcodeVersionInfo
#--------------------------------------------------------------------
#| C++ Standard | Clang | Xcode Clang | Xcode | GCC |
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#|--------------------------------=---------------------------------|
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#|------------------------------------------------------------------|
</span> #| 1998 (C++98) | - | - | - | - |
#| 2011 (C++11) | 3.3 | 500.2.75 | 5.0 | 4.8.1 |
#| 2014 (C++14) | 3.4 | 602 | 6.3 | 5 |
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -757,6 +773,21 @@ proc portconfigure::max_version {verA verB} {
</span> #| 4.5 | Partial | Future? | Future? | ??? |
#----------------------------------------------------------------
#
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://trac.macports.org/wiki/CompilerEnvironmentVariables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://trac.macports.org/wiki/CompilerSelection#EnvironmentVariables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#--------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| Environment Variable | Xcode Clang | Xcode GCC | Clang | GCC |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#|------------------------------------------------------------------|
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| CPATH | 318.0.4 | all | all | all |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| LIBRARY_PATH | 421.0.57 | all | all | all |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| MACOSX_DEPLOYMENT_TARGET | all | all | all | all |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| SDKROOT | OS X 10.9* | none | all | 7 |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| DEVELOPER_DIR | OS X 10.9* | N/A | N/A | N/A |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| CC_PRINT_OPTIONS | all | all | all | all |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#| CC_PRINT_OPTIONS_FILE | all | all | all | all |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#--------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# * /usr/lib/libxcselect.dylib exists
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span> # utility procedure: get minimum command line compilers version based on restrictions
proc portconfigure::get_min_command_line {compiler} {
global compiler.c_standard compiler.cxx_standard compiler.openmp_version compiler.thread_local_storage os.major
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -798,6 +829,16 @@ proc portconfigure::get_min_command_line {compiler} {
</span> set min_value [max_version $min_value 500.2.75]
}
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[option compiler.limit_flags] || [option compiler.support_environment_paths]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set min_value [max_version $min_value 421.0.57]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [option configure.sdkroot] ne "" &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![file exists /usr/lib/libxcselect.dylib]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
llvm-gcc-4.2 -
gcc-4.2 -
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -806,6 +847,9 @@ proc portconfigure::get_min_command_line {compiler} {
</span> if {${compiler.c_standard} > 1999 || ${compiler.cxx_standard} >= 2011 || [option configure.cxx_stdlib] eq "libc++" || ${compiler.thread_local_storage}} {
return none
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) && [option configure.sdkroot] ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
default {
return -code error "don't recognize compiler \"${compiler}\""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -879,7 +923,12 @@ proc portconfigure::get_min_gcc {} {
</span> # GCC emulates thread-local storage, but it seems to be broken on older versions of GCC
set min_value [max_version $min_value 4.5]
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [option configure.sdkroot] ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set min_value [max_version $min_value 7.0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> return ${min_value}
}
# utility procedure: get minimum Gfortran version based on restrictions
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -899,6 +948,12 @@ proc portconfigure::get_min_gfortran {} {
</span> # GCC emulates thread-local storage, but it seems to be broken on older versions of GCC
set min_value [max_version $min_value 4.5]
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [option configure.sdkroot] ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set min_value [max_version $min_value 7.0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> return ${min_value}
}
#
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -912,6 +967,12 @@ proc portconfigure::g95_ok {} {
</span> # G95 does not support OpenMP
return no
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [option configure.sdkroot] ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> return yes
}
# utility procedure: get Apple compilers based on Xcode version
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1543,7 +1604,7 @@ proc portconfigure::configure_main {args} {
</span> }
# add SDK flags if cross-compiling (or universal on ppc tiger)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${configure.sdkroot} ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.sdkroot} ne "" && ![option compiler.limit_flags]} {
</span> foreach env_var {CPPFLAGS CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS} {
append_to_environment_value configure $env_var -isysroot${configure.sdkroot}
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portmain.tcl b/src/port1.0/portmain.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 61d811e..80d2794 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portmain.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portmain.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -56,6 +56,9 @@ options prefix name version revision epoch categories maintainers \
</span> supported_archs depends_skip_archcheck installs_libs \
license_noconflict copy_log_files \
compiler.cpath compiler.library_path compiler.log_verbose_output \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.limit_flags \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.support_environment_paths \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.support_environment_sdkroot \
</span> add_users use_xcode
proc portmain::check_option_integer {option action args} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -150,6 +153,9 @@ if {[option os.platform] eq "darwin" && [option os.subplatform] eq "macosx"} {
</span> default compiler.cpath {${prefix}/include}
default compiler.library_path {${prefix}/lib}
default compiler.log_verbose_output yes
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.limit_flags no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.support_environment_paths no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.support_environment_sdkroot no
</span>
# Record initial euid/egid
set euid [geteuid]
</pre><pre style='margin:0'>
</pre>