aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorSamuel John2012-12-01 19:42:22 +0100
committerAdam Vandenberg2013-01-24 19:21:57 -0800
commit293be41d5c83b972f1fafe00c32412cb6e46697b (patch)
tree620b9291ee99f46eba06162b1ac1d4d3a9722689 /Library
parent2c6a7bdca8fe86257a588716842c763d5204ed0f (diff)
downloadbrew-293be41d5c83b972f1fafe00c32412cb6e46697b.tar.bz2
superenv: Allow ENV.m32 (for 32bit builds)
Superenv normally filters out "-m32" flag, preventing 32bit builds. Some software, however, still only work in 32bit mode. If ENV.m32 is called, superenv does not filter out the "-m32" flag. Also note, superenv, does not explicitly add the -m32 flag and expects the build system of the software to know when and where to provide this flag. Closes Homebrew/homebrew#16350. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Diffstat (limited to 'Library')
-rwxr-xr-xLibrary/ENV/4.3/cc5
-rw-r--r--Library/Homebrew/superenv.rb7
2 files changed, 10 insertions, 2 deletions
diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc
index a7317abf8..69c1dd764 100755
--- a/Library/ENV/4.3/cc
+++ b/Library/ENV/4.3/cc
@@ -101,8 +101,11 @@ class Cmd
case arg = whittler.next
when '-arch', /^-Xarch_/
whittler.next
+ when '-m32'
+ # If ENV.m32 was set, we allow the "-m32" flag, but we don't add anything
+ args << '-m32' if cccfg? '3'
when /^-g\d?/, /^-gstabs\d+/, '-gstabs+', /^-ggdb\d?/, '-gdwarf-2',
- /^-march=.+/, /^-mtune=.+/, '-m64', '-m32',
+ /^-march=.+/, /^-mtune=.+/, '-m64',
/^-O[0-9zs]?$/, '-fast',
'-pedantic', '-pedantic-errors'
when '-fopenmp', '-lgomp'
diff --git a/Library/Homebrew/superenv.rb b/Library/Homebrew/superenv.rb
index 9225b9608..0e8c3789e 100644
--- a/Library/Homebrew/superenv.rb
+++ b/Library/Homebrew/superenv.rb
@@ -68,6 +68,11 @@ class << ENV
append 'HOMEBREW_CCCFG', "u", ''
end
+ # m32 on superenv does not add any flags. It prevents "-m32" from being erased.
+ def m32
+ append 'HOMEBREW_CCCFG', "3", ''
+ end
+
private
def determine_cc
@@ -205,7 +210,7 @@ class << ENV
### NO LONGER NECESSARY OR NO LONGER SUPPORTED
def noop(*args); end
- %w[m64 m32 gcc_4_0_1 fast O4 O3 O2 Os Og O1 libxml2 minimal_optimization
+ %w[m64 gcc_4_0_1 fast O4 O3 O2 Os Og O1 libxml2 minimal_optimization
no_optimization enable_warnings x11
set_cpu_flags
macosxsdk remove_macosxsdk].each{|s| alias_method s, :noop }