@@ -28,7 +28,6 @@ use crate::GitRepo;
28
28
#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
29
29
pub struct Llvm {
30
30
pub target : Interned < String > ,
31
- pub emscripten : bool ,
32
31
}
33
32
34
33
impl Step for Llvm {
@@ -40,46 +39,35 @@ impl Step for Llvm {
40
39
run. path ( "src/llvm-project" )
41
40
. path ( "src/llvm-project/llvm" )
42
41
. path ( "src/llvm" )
43
- . path ( "src/llvm-emscripten" )
44
42
}
45
43
46
44
fn make_run ( run : RunConfig < ' _ > ) {
47
- let emscripten = run. path . ends_with ( "llvm-emscripten" ) ;
48
45
run. builder . ensure ( Llvm {
49
46
target : run. target ,
50
- emscripten,
51
47
} ) ;
52
48
}
53
49
54
50
/// Compile LLVM for `target`.
55
51
fn run ( self , builder : & Builder < ' _ > ) -> PathBuf {
56
52
let target = self . target ;
57
- let emscripten = self . emscripten ;
58
53
59
54
// If we're using a custom LLVM bail out here, but we can only use a
60
55
// custom LLVM for the build triple.
61
- if !self . emscripten {
62
- if let Some ( config) = builder. config . target_config . get ( & target) {
63
- if let Some ( ref s) = config. llvm_config {
64
- check_llvm_version ( builder, s) ;
65
- return s. to_path_buf ( )
66
- }
56
+ if let Some ( config) = builder. config . target_config . get ( & target) {
57
+ if let Some ( ref s) = config. llvm_config {
58
+ check_llvm_version ( builder, s) ;
59
+ return s. to_path_buf ( )
67
60
}
68
61
}
69
62
70
- let ( llvm_info, root, out_dir, llvm_config_ret_dir) = if emscripten {
71
- let info = & builder. emscripten_llvm_info ;
72
- let dir = builder. emscripten_llvm_out ( target) ;
73
- let config_dir = dir. join ( "bin" ) ;
74
- ( info, "src/llvm-emscripten" , dir, config_dir)
75
- } else {
76
- let info = & builder. in_tree_llvm_info ;
77
- let mut dir = builder. llvm_out ( builder. config . build ) ;
78
- if !builder. config . build . contains ( "msvc" ) || builder. config . ninja {
79
- dir. push ( "build" ) ;
80
- }
81
- ( info, "src/llvm-project/llvm" , builder. llvm_out ( target) , dir. join ( "bin" ) )
82
- } ;
63
+ let llvm_info = & builder. in_tree_llvm_info ;
64
+ let root = "src/llvm-project/llvm" ;
65
+ let out_dir = builder. llvm_out ( target) ;
66
+ let mut llvm_config_ret_dir = builder. llvm_out ( builder. config . build ) ;
67
+ if !builder. config . build . contains ( "msvc" ) || builder. config . ninja {
68
+ llvm_config_ret_dir. push ( "build" ) ;
69
+ }
70
+ llvm_config_ret_dir. push ( "bin" ) ;
83
71
84
72
let build_llvm_config = llvm_config_ret_dir
85
73
. join ( exe ( "llvm-config" , & * builder. config . build ) ) ;
@@ -107,8 +95,7 @@ impl Step for Llvm {
107
95
}
108
96
}
109
97
110
- let descriptor = if emscripten { "Emscripten " } else { "" } ;
111
- builder. info ( & format ! ( "Building {}LLVM for {}" , descriptor, target) ) ;
98
+ builder. info ( & format ! ( "Building LLVM for {}" , target) ) ;
112
99
let _time = util:: timeit ( & builder) ;
113
100
t ! ( fs:: create_dir_all( & out_dir) ) ;
114
101
@@ -123,23 +110,15 @@ impl Step for Llvm {
123
110
124
111
// NOTE: remember to also update `config.toml.example` when changing the
125
112
// defaults!
126
- let llvm_targets = if self . emscripten {
127
- "JSBackend"
128
- } else {
129
- match builder. config . llvm_targets {
130
- Some ( ref s) => s,
131
- None => "AArch64;ARM;Hexagon;MSP430;Mips;NVPTX;PowerPC;RISCV;\
132
- Sparc;SystemZ;WebAssembly;X86",
133
- }
113
+ let llvm_targets = match & builder. config . llvm_targets {
114
+ Some ( s) => s,
115
+ None => "AArch64;ARM;Hexagon;MSP430;Mips;NVPTX;PowerPC;RISCV;\
116
+ Sparc;SystemZ;WebAssembly;X86",
134
117
} ;
135
118
136
- let llvm_exp_targets = if self . emscripten {
137
- ""
138
- } else {
139
- match builder. config . llvm_experimental_targets {
140
- Some ( ref s) => s,
141
- None => "" ,
142
- }
119
+ let llvm_exp_targets = match builder. config . llvm_experimental_targets {
120
+ Some ( ref s) => s,
121
+ None => "" ,
143
122
} ;
144
123
145
124
let assertions = if builder. config . llvm_assertions { "ON" } else { "OFF" } ;
@@ -163,25 +142,23 @@ impl Step for Llvm {
163
142
. define ( "LLVM_TARGET_ARCH" , target. split ( '-' ) . next ( ) . unwrap ( ) )
164
143
. define ( "LLVM_DEFAULT_TARGET_TRIPLE" , target) ;
165
144
166
- if builder. config . llvm_thin_lto && !emscripten {
145
+ if builder. config . llvm_thin_lto {
167
146
cfg. define ( "LLVM_ENABLE_LTO" , "Thin" ) ;
168
147
if !target. contains ( "apple" ) {
169
148
cfg. define ( "LLVM_ENABLE_LLD" , "ON" ) ;
170
149
}
171
150
}
172
151
173
- let want_lldb = builder. config . lldb_enabled && !self . emscripten ;
174
-
175
152
// This setting makes the LLVM tools link to the dynamic LLVM library,
176
153
// which saves both memory during parallel links and overall disk space
177
154
// for the tools. We don't do this on every platform as it doesn't work
178
155
// equally well everywhere.
179
- if builder. llvm_link_tools_dynamically ( target) && !emscripten {
156
+ if builder. llvm_link_tools_dynamically ( target) {
180
157
cfg. define ( "LLVM_LINK_LLVM_DYLIB" , "ON" ) ;
181
158
}
182
159
183
160
// For distribution we want the LLVM tools to be *statically* linked to libstdc++
184
- if builder. config . llvm_tools_enabled || want_lldb {
161
+ if builder. config . llvm_tools_enabled || builder . config . lldb_enabled {
185
162
if !target. contains ( "windows" ) {
186
163
if target. contains ( "apple" ) {
187
164
cfg. define ( "CMAKE_EXE_LINKER_FLAGS" , "-static-libstdc++" ) ;
@@ -209,7 +186,7 @@ impl Step for Llvm {
209
186
enabled_llvm_projects. push ( "compiler-rt" ) ;
210
187
}
211
188
212
- if want_lldb {
189
+ if builder . config . lldb_enabled {
213
190
enabled_llvm_projects. push ( "clang" ) ;
214
191
enabled_llvm_projects. push ( "lldb" ) ;
215
192
// For the time being, disable code signing.
@@ -234,10 +211,9 @@ impl Step for Llvm {
234
211
}
235
212
236
213
// http://llvm.org/docs/HowToCrossCompileLLVM.html
237
- if target != builder. config . build && !emscripten {
214
+ if target != builder. config . build {
238
215
builder. ensure ( Llvm {
239
216
target : builder. config . build ,
240
- emscripten : false ,
241
217
} ) ;
242
218
// FIXME: if the llvm root for the build triple is overridden then we
243
219
// should use llvm-tblgen from there, also should verify that it
@@ -481,7 +457,6 @@ impl Step for Lld {
481
457
482
458
let llvm_config = builder. ensure ( Llvm {
483
459
target : self . target ,
484
- emscripten : false ,
485
460
} ) ;
486
461
487
462
let out_dir = builder. lld_out ( target) ;
0 commit comments