Auto merge of #29151 - wthrowe:linker-output-ICE, r=alexcrichton
I suspect this won't work on Windows, but let's be optimistic and try it before disabling.
This commit is contained in:
commit
d2f41bd5be
24
src/test/run-make/linker-output-non-utf8/Makefile
Normal file
24
src/test/run-make/linker-output-non-utf8/Makefile
Normal file
@ -0,0 +1,24 @@
|
||||
-include ../tools.mk
|
||||
|
||||
# Make sure we don't ICE if the linker prints a non-UTF-8 error message.
|
||||
|
||||
ifdef IS_WINDOWS
|
||||
# ignore windows
|
||||
|
||||
# This does not work in its current form on windows, possibly due to
|
||||
# gcc bugs or something about valid Windows paths. See issue #29151
|
||||
# for more information.
|
||||
all:
|
||||
|
||||
else
|
||||
|
||||
# The zzz it to allow humans to tab complete or glob this thing.
|
||||
bad_dir := $(TMPDIR)/zzz$$'\xff'
|
||||
|
||||
all:
|
||||
$(RUSTC) library.rs
|
||||
mkdir $(bad_dir)
|
||||
mv $(TMPDIR)/liblibrary.a $(bad_dir)
|
||||
LIBRARY_PATH=$(bad_dir) $(RUSTC) exec.rs 2>&1 | grep this_symbol_not_defined
|
||||
|
||||
endif
|
16
src/test/run-make/linker-output-non-utf8/exec.rs
Normal file
16
src/test/run-make/linker-output-non-utf8/exec.rs
Normal file
@ -0,0 +1,16 @@
|
||||
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#[link(name="library")]
|
||||
extern "C" {
|
||||
fn foo();
|
||||
}
|
||||
|
||||
fn main() { unsafe { foo(); } }
|
20
src/test/run-make/linker-output-non-utf8/library.rs
Normal file
20
src/test/run-make/linker-output-non-utf8/library.rs
Normal file
@ -0,0 +1,20 @@
|
||||
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![crate_type = "staticlib"]
|
||||
|
||||
extern "C" {
|
||||
fn this_symbol_not_defined();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn foo() {
|
||||
unsafe { this_symbol_not_defined(); }
|
||||
}
|
Loading…
Reference in New Issue
Block a user