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