From a713c67a68279ffae65bc8de63f220817d398690 Mon Sep 17 00:00:00 2001 From: Ryan Cumming Date: Tue, 9 Jan 2018 19:54:13 +1100 Subject: [PATCH 1/3] Skip linker-output-non-utf8 test on Apple MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This test fails on APFS filesystems with the following error: mkdir: /Users/ryan/Code/rust/build/x86_64-apple-darwin/test/run-make/linker-output-non-utf8.stage2-x86_64-apple-darwin/zzz�: Illegal byte sequence This is due to APFS now requiring that all paths are valid UTF-8. As APFS will be the default filesystem for all new Darwin-based systems the most straightforward fix is to skip this test on Darwin as well as Windows. --- .../run-make/linker-output-non-utf8/Makefile | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/test/run-make/linker-output-non-utf8/Makefile b/src/test/run-make/linker-output-non-utf8/Makefile index 76d4b133defe2..70906e5d2b2c7 100644 --- a/src/test/run-make/linker-output-non-utf8/Makefile +++ b/src/test/run-make/linker-output-non-utf8/Makefile @@ -2,15 +2,12 @@ # Make sure we don't ICE if the linker prints a non-UTF-8 error message. -ifdef IS_WINDOWS -# ignore windows +# Ignore Windows and Apple -# 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 +# This does not work in its current form on Windows or Apple APFS due +# to their filesystems requiring paths to be valid Unicode. +ifndef IS_WINDOWS +ifneq ($(shell uname),Darwin) # The zzz it to allow humans to tab complete or glob this thing. bad_dir := $(TMPDIR)/zzz$$'\xff' @@ -20,5 +17,12 @@ all: mkdir $(bad_dir) mv $(TMPDIR)/liblibrary.a $(bad_dir) LIBRARY_PATH=$(bad_dir) $(RUSTC) exec.rs 2>&1 | $(CGREP) this_symbol_not_defined +else +all: + +endif + +else +all: endif From 4cc0fe5136629f62201fa5e2890b8947f8f6b398 Mon Sep 17 00:00:00 2001 From: Ryan Cumming Date: Wed, 10 Jan 2018 09:10:59 +1100 Subject: [PATCH 2/3] Restore the original Window comment The Windows situation is more complicated than I realised --- src/test/run-make/linker-output-non-utf8/Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/test/run-make/linker-output-non-utf8/Makefile b/src/test/run-make/linker-output-non-utf8/Makefile index 70906e5d2b2c7..0beb99ef1199b 100644 --- a/src/test/run-make/linker-output-non-utf8/Makefile +++ b/src/test/run-make/linker-output-non-utf8/Makefile @@ -4,9 +4,13 @@ # Ignore Windows and Apple -# This does not work in its current form on Windows or Apple APFS due -# to their filesystems requiring paths to be valid Unicode. +# 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. ifndef IS_WINDOWS + +# This also does not work on Apple APFS due to the filesystem requiring +# valid UTF-u paths. ifneq ($(shell uname),Darwin) # The zzz it to allow humans to tab complete or glob this thing. From b69c32097add128aca50277d6aea5c01f8afaf2a Mon Sep 17 00:00:00 2001 From: Ryan Cumming Date: Wed, 10 Jan 2018 09:15:51 +1100 Subject: [PATCH 3/3] Fix typo --- src/test/run-make/linker-output-non-utf8/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/run-make/linker-output-non-utf8/Makefile b/src/test/run-make/linker-output-non-utf8/Makefile index 0beb99ef1199b..5f1577ab44dc5 100644 --- a/src/test/run-make/linker-output-non-utf8/Makefile +++ b/src/test/run-make/linker-output-non-utf8/Makefile @@ -10,7 +10,7 @@ ifndef IS_WINDOWS # This also does not work on Apple APFS due to the filesystem requiring -# valid UTF-u paths. +# valid UTF-8 paths. ifneq ($(shell uname),Darwin) # The zzz it to allow humans to tab complete or glob this thing.