]> git.lizzy.rs Git - rust.git/commitdiff
Provide PTXLinker with fallback to internal `target-cpu`
authorDenys Zariaiev <denys.zariaiev@gmail.com>
Tue, 29 Jan 2019 19:54:23 +0000 (20:54 +0100)
committerDenys Zariaiev <denys.zariaiev@gmail.com>
Tue, 29 Jan 2019 19:55:09 +0000 (20:55 +0100)
src/ci/docker/test-various/Dockerfile
src/librustc_codegen_ssa/back/linker.rs
src/test/run-make/nvptx-binary-crate/Makefile
src/test/run-make/nvptx-dylib-crate/kernel.rs

index a5ae94262c1cab52ab9a8923fc0dd17a0c3f0a41..6c419e13c9f0528410c9c688b64cfef746ea76c3 100644 (file)
@@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
   xz-utils
 
 # FIXME: build the `ptx-linker` instead.
-RUN curl -sL https://github.com/denzp/rust-ptx-linker/releases/download/v0.9.0-alpha.1/rust-ptx-linker.linux64.tar.gz | \
+RUN curl -sL https://github.com/denzp/rust-ptx-linker/releases/download/v0.9.0-alpha.2/rust-ptx-linker.linux64.tar.gz | \
   tar -xzvC /usr/bin
 
 RUN curl -sL https://nodejs.org/dist/v9.2.0/node-v9.2.0-linux-x64.tar.xz | \
index 55b02ebe6c4d55155a16459192f3315dea644f9a..249715a7b6e26210741661766606297d568fbea5 100644 (file)
@@ -1132,6 +1132,12 @@ fn output_filename(&mut self, path: &Path) {
     }
 
     fn finalize(&mut self) -> Command {
+        // Provide the linker with fallback to internal `target-cpu`.
+        self.cmd.arg("--fallback-arch").arg(match self.sess.opts.cg.target_cpu {
+            Some(ref s) => s,
+            None => &self.sess.target.target.options.cpu
+        });
+
         ::std::mem::replace(&mut self.cmd, Command::new(""))
     }
 
index 4c22dae265c141f72b3f12a1f0bc8c9231e6575d..2c211b5c7850794d389c9c2c36d7bc7793caa68d 100644 (file)
@@ -2,8 +2,11 @@
 
 ifeq ($(TARGET),nvptx64-nvidia-cuda)
 all:
-       $(RUSTC) main.rs -Clink-arg=--arch=sm_60 --crate-type="bin" -O --target $(TARGET)
-       FileCheck main.rs --input-file $(TMPDIR)/main.ptx
+       $(RUSTC) main.rs --crate-type="bin" --target $(TARGET) -O -C link-arg=--arch=sm_60 -o $(TMPDIR)/main.link_arg.ptx
+       $(RUSTC) main.rs --crate-type="bin" --target $(TARGET) -O -C target-cpu=sm_60 -o $(TMPDIR)/main.target_cpu.ptx
+
+       FileCheck main.rs --input-file $(TMPDIR)/main.link_arg.ptx
+       FileCheck main.rs --input-file $(TMPDIR)/main.target_cpu.ptx
 else
 all:
 endif
index 5e65cca9140b7a23475734c2f04fad860719771a..63fd6b063dd8c01e47acd4d1b46b5ae3c08da3c9 100644 (file)
@@ -5,7 +5,7 @@
 extern crate dep;
 
 // Verify the default CUDA arch.
-// CHECK: .target sm_20
+// CHECK: .target sm_30
 // CHECK: .address_size 64
 
 // Make sure declarations are there.