@@ -26,6 +26,12 @@ use std::process::{Command, Stdio};
26
26
27
27
use build_helper:: output;
28
28
29
+ #[ cfg( not( target_os = "solaris" ) ) ]
30
+ const SH_CMD : & ' static str = "sh" ;
31
+ // On Solaris, sh is the historical bourne shell, not a POSIX shell, or bash.
32
+ #[ cfg( target_os = "solaris" ) ]
33
+ const SH_CMD : & ' static str = "bash" ;
34
+
29
35
use { Build , Compiler , Mode } ;
30
36
use util:: { cp_r, libdir, is_dylib, cp_filtered, copy} ;
31
37
@@ -69,7 +75,7 @@ pub fn docs(build: &Build, stage: u32, host: &str) {
69
75
let src = build. out . join ( host) . join ( "doc" ) ;
70
76
cp_r ( & src, & dst) ;
71
77
72
- let mut cmd = Command :: new ( "sh" ) ;
78
+ let mut cmd = Command :: new ( SH_CMD ) ;
73
79
cmd. arg ( sanitize_sh ( & build. src . join ( "src/rust-installer/gen-installer.sh" ) ) )
74
80
. arg ( "--product-name=Rust-Documentation" )
75
81
. arg ( "--rel-manifest-dir=rustlib" )
@@ -119,7 +125,7 @@ pub fn mingw(build: &Build, host: &str) {
119
125
. arg ( host) ;
120
126
build. run ( & mut cmd) ;
121
127
122
- let mut cmd = Command :: new ( "sh" ) ;
128
+ let mut cmd = Command :: new ( SH_CMD ) ;
123
129
cmd. arg ( sanitize_sh ( & build. src . join ( "src/rust-installer/gen-installer.sh" ) ) )
124
130
. arg ( "--product-name=Rust-MinGW" )
125
131
. arg ( "--rel-manifest-dir=rustlib" )
@@ -185,7 +191,7 @@ pub fn rustc(build: &Build, stage: u32, host: &str) {
185
191
}
186
192
187
193
// Finally, wrap everything up in a nice tarball!
188
- let mut cmd = Command :: new ( "sh" ) ;
194
+ let mut cmd = Command :: new ( SH_CMD ) ;
189
195
cmd. arg ( sanitize_sh ( & build. src . join ( "src/rust-installer/gen-installer.sh" ) ) )
190
196
. arg ( "--product-name=Rust" )
191
197
. arg ( "--rel-manifest-dir=rustlib" )
@@ -290,7 +296,7 @@ pub fn std(build: &Build, compiler: &Compiler, target: &str) {
290
296
let src = build. sysroot ( compiler) . join ( "lib/rustlib" ) ;
291
297
cp_r ( & src. join ( target) , & dst) ;
292
298
293
- let mut cmd = Command :: new ( "sh" ) ;
299
+ let mut cmd = Command :: new ( SH_CMD ) ;
294
300
cmd. arg ( sanitize_sh ( & build. src . join ( "src/rust-installer/gen-installer.sh" ) ) )
295
301
. arg ( "--product-name=Rust" )
296
302
. arg ( "--rel-manifest-dir=rustlib" )
@@ -343,9 +349,10 @@ pub fn analysis(build: &Build, compiler: &Compiler, target: &str) {
343
349
let image_src = src. join ( "save-analysis" ) ;
344
350
let dst = image. join ( "lib/rustlib" ) . join ( target) . join ( "analysis" ) ;
345
351
t ! ( fs:: create_dir_all( & dst) ) ;
352
+ println ! ( "image_src: {:?}, dst: {:?}" , image_src, dst) ;
346
353
cp_r ( & image_src, & dst) ;
347
354
348
- let mut cmd = Command :: new ( "sh" ) ;
355
+ let mut cmd = Command :: new ( SH_CMD ) ;
349
356
cmd. arg ( sanitize_sh ( & build. src . join ( "src/rust-installer/gen-installer.sh" ) ) )
350
357
. arg ( "--product-name=Rust" )
351
358
. arg ( "--rel-manifest-dir=rustlib" )
@@ -452,7 +459,7 @@ pub fn rust_src(build: &Build) {
452
459
build. run ( & mut cmd) ;
453
460
454
461
// Create source tarball in rust-installer format
455
- let mut cmd = Command :: new ( "sh" ) ;
462
+ let mut cmd = Command :: new ( SH_CMD ) ;
456
463
cmd. arg ( sanitize_sh ( & build. src . join ( "src/rust-installer/gen-installer.sh" ) ) )
457
464
. arg ( "--product-name=Rust" )
458
465
. arg ( "--rel-manifest-dir=rustlib" )
@@ -610,7 +617,7 @@ pub fn extended(build: &Build, stage: u32, target: &str) {
610
617
input_tarballs. push_str ( & sanitize_sh ( & mingw_installer) ) ;
611
618
}
612
619
613
- let mut cmd = Command :: new ( "sh" ) ;
620
+ let mut cmd = Command :: new ( SH_CMD ) ;
614
621
cmd. arg ( sanitize_sh ( & build. src . join ( "src/rust-installer/combine-installers.sh" ) ) )
615
622
. arg ( "--product-name=Rust" )
616
623
. arg ( "--rel-manifest-dir=rustlib" )
0 commit comments