From 27b6aeb22c56885b489b3ea4ecd7fdb8f9d5ddcd Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Mon, 2 Mar 2015 13:38:25 -0500 Subject: [PATCH] rust: more changes --- ...s-Command-fully-quote-and-escape-the.patch | 2 +- .../0002-std-io-process-add-Debug-tests.patch | 2 +- ...03-platform.mk-avoid-choking-on-i586.patch | 2 +- ...t-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch | 2 +- ...lt-target.json-path-libdir-rust-targ.patch | 2 +- ...e-RUSTFLAGS-to-override-target-libs-.patch | 2 +- ...7-mk-add-missing-CFG_LIBDIR_RELATIVE.patch | 2 +- ...t-bindir-and-extend-libdir-to-non-bl.patch | 2 +- ...0009-Parallelize-submake-invocations.patch | 2 +- ...cal-workaround-for-NULL-__dso_handle.patch | 2 +- ...l-support-disabling-calling-of-ldcon.patch | 65 +++++++++++++ ...rget-rename-json-field-from-target-w.patch | 96 ------------------- ...mk-install-use-disable-rewrite-paths.patch | 43 +++++++++ ...o-disable-rewriting-of-install-paths.patch | 58 +++++++++++ recipes/rust/rust.inc | 2 +- recipes/rust/rust_git.bb | 4 + 16 files changed, 181 insertions(+), 107 deletions(-) create mode 100644 recipes/rust/files/0011-configure-install-support-disabling-calling-of-ldcon.patch delete mode 100644 recipes/rust/files/0011-librustc_back-target-rename-json-field-from-target-w.patch create mode 100644 recipes/rust/files/0012-mk-install-use-disable-rewrite-paths.patch create mode 100644 recipes/rust/files/rust-installer/0001-add-option-to-disable-rewriting-of-install-paths.patch diff --git a/recipes/rust/files/0001-libstd-io-process-Command-fully-quote-and-escape-the.patch b/recipes/rust/files/0001-libstd-io-process-Command-fully-quote-and-escape-the.patch index ac6d670..f1bbf9c 100644 --- a/recipes/rust/files/0001-libstd-io-process-Command-fully-quote-and-escape-the.patch +++ b/recipes/rust/files/0001-libstd-io-process-Command-fully-quote-and-escape-the.patch @@ -1,7 +1,7 @@ From 146ea5d4ada08dcc237ba759d19e2729511d46e8 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Wed, 26 Nov 2014 10:00:32 -0500 -Subject: [PATCH 01/10] libstd/io/process/Command: fully quote and escape the +Subject: [PATCH 01/12] libstd/io/process/Command: fully quote and escape the command and all args This makes the command (which may have trailing or leading white space diff --git a/recipes/rust/files/0002-std-io-process-add-Debug-tests.patch b/recipes/rust/files/0002-std-io-process-add-Debug-tests.patch index 437e8c7..2bf6cf2 100644 --- a/recipes/rust/files/0002-std-io-process-add-Debug-tests.patch +++ b/recipes/rust/files/0002-std-io-process-add-Debug-tests.patch @@ -1,7 +1,7 @@ From c227b05fab797ec7c03ffafea171af0d46a928ff Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Mon, 1 Dec 2014 15:50:13 -0500 -Subject: [PATCH 02/10] std/io/process: add Debug tests +Subject: [PATCH 02/12] std/io/process: add Debug tests --- src/libstd/old_io/process.rs | 12 ++++++++++++ diff --git a/recipes/rust/files/0003-platform.mk-avoid-choking-on-i586.patch b/recipes/rust/files/0003-platform.mk-avoid-choking-on-i586.patch index 2eb6aaf..331e68b 100644 --- a/recipes/rust/files/0003-platform.mk-avoid-choking-on-i586.patch +++ b/recipes/rust/files/0003-platform.mk-avoid-choking-on-i586.patch @@ -1,7 +1,7 @@ From 569b5bed4cd94c85db41ea6b0a1c3cc6aa977e43 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Sat, 15 Nov 2014 20:12:48 -0500 -Subject: [PATCH 03/10] platform.mk: avoid choking on i586 +Subject: [PATCH 03/12] platform.mk: avoid choking on i586 --- mk/platform.mk | 4 +++- diff --git a/recipes/rust/files/0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch b/recipes/rust/files/0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch index 3c5d32f..c9788d7 100644 --- a/recipes/rust/files/0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch +++ b/recipes/rust/files/0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch @@ -1,7 +1,7 @@ From 6e54f848c836fe95401672c8a4696e885cd6becf Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Mon, 17 Nov 2014 16:14:15 -0500 -Subject: [PATCH 04/10] mk/rt/compiler_rt: pass LDFLAGS from +Subject: [PATCH 04/12] mk/rt/compiler_rt: pass LDFLAGS from CFG_GCCISH_LINK_FLAGS --- diff --git a/recipes/rust/files/0005-Target-add-default-target.json-path-libdir-rust-targ.patch b/recipes/rust/files/0005-Target-add-default-target.json-path-libdir-rust-targ.patch index aab62f6..5ec09fa 100644 --- a/recipes/rust/files/0005-Target-add-default-target.json-path-libdir-rust-targ.patch +++ b/recipes/rust/files/0005-Target-add-default-target.json-path-libdir-rust-targ.patch @@ -1,7 +1,7 @@ From 9d4c54f58e86009b4a550d92de5e741da30ac4f4 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Tue, 18 Nov 2014 01:40:21 -0500 -Subject: [PATCH 05/10] Target: add default target.json path: +Subject: [PATCH 05/12] Target: add default target.json path: $libdir/rust/targets --- diff --git a/recipes/rust/files/0006-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch b/recipes/rust/files/0006-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch index 91b02b0..7e9cb77 100644 --- a/recipes/rust/files/0006-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch +++ b/recipes/rust/files/0006-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch @@ -1,7 +1,7 @@ From 591aa737a5c5ab9b488b7a3379c30ee46b717f28 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Tue, 18 Nov 2014 14:52:56 -0500 -Subject: [PATCH 06/10] mk: for stage0, use RUSTFLAGS to override target libs +Subject: [PATCH 06/12] mk: for stage0, use RUSTFLAGS to override target libs dir Setting HLIB specially for stage0 (and even more specially for windows) diff --git a/recipes/rust/files/0007-mk-add-missing-CFG_LIBDIR_RELATIVE.patch b/recipes/rust/files/0007-mk-add-missing-CFG_LIBDIR_RELATIVE.patch index 0a453e7..f83e5c8 100644 --- a/recipes/rust/files/0007-mk-add-missing-CFG_LIBDIR_RELATIVE.patch +++ b/recipes/rust/files/0007-mk-add-missing-CFG_LIBDIR_RELATIVE.patch @@ -1,7 +1,7 @@ From eccd34cb82536c1a057a9486dbf2d03edd5ce777 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Tue, 18 Nov 2014 13:48:14 -0500 -Subject: [PATCH 07/10] mk: add missing CFG_LIBDIR_RELATIVE +Subject: [PATCH 07/12] mk: add missing CFG_LIBDIR_RELATIVE --- mk/grammar.mk | 4 ++-- diff --git a/recipes/rust/files/0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch b/recipes/rust/files/0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch index e6ccb45..b824853 100644 --- a/recipes/rust/files/0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch +++ b/recipes/rust/files/0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch @@ -1,7 +1,7 @@ From 5ed89e6b244e9b41b4fc86652a64d086738c50b6 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Mon, 24 Nov 2014 13:10:15 -0500 -Subject: [PATCH 08/10] configure: support --bindir, and extend libdir to +Subject: [PATCH 08/12] configure: support --bindir, and extend libdir to non-blessed dirs Adds --bindir, and: diff --git a/recipes/rust/files/0009-Parallelize-submake-invocations.patch b/recipes/rust/files/0009-Parallelize-submake-invocations.patch index e31464d..703127f 100644 --- a/recipes/rust/files/0009-Parallelize-submake-invocations.patch +++ b/recipes/rust/files/0009-Parallelize-submake-invocations.patch @@ -1,7 +1,7 @@ From 257bdad6c0252b5f57aa9c61da71afd47ddfb4af Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Mon, 24 Nov 2014 13:54:42 -0500 -Subject: [PATCH 09/10] Parallelize submake invocations +Subject: [PATCH 09/12] Parallelize submake invocations --- mk/clean.mk | 2 +- diff --git a/recipes/rust/files/0010-std-thread_local-workaround-for-NULL-__dso_handle.patch b/recipes/rust/files/0010-std-thread_local-workaround-for-NULL-__dso_handle.patch index ea2173c..a49651e 100644 --- a/recipes/rust/files/0010-std-thread_local-workaround-for-NULL-__dso_handle.patch +++ b/recipes/rust/files/0010-std-thread_local-workaround-for-NULL-__dso_handle.patch @@ -1,7 +1,7 @@ From 8bd76b2a28469de8ac95ff9e686820b47aee5d82 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Wed, 3 Dec 2014 19:15:19 -0500 -Subject: [PATCH 10/10] std/thread_local: workaround for NULL __dso_handle +Subject: [PATCH 10/12] std/thread_local: workaround for NULL __dso_handle --- src/libstd/thread_local/mod.rs | 2 +- diff --git a/recipes/rust/files/0011-configure-install-support-disabling-calling-of-ldcon.patch b/recipes/rust/files/0011-configure-install-support-disabling-calling-of-ldcon.patch new file mode 100644 index 0000000..83bd3f7 --- /dev/null +++ b/recipes/rust/files/0011-configure-install-support-disabling-calling-of-ldcon.patch @@ -0,0 +1,65 @@ +From 00b9d5870cb1ceb09ca0a2a5de765565afc9ac03 Mon Sep 17 00:00:00 2001 +From: Cody P Schafer +Date: Mon, 2 Mar 2015 12:57:24 -0500 +Subject: [PATCH 11/12] configure & install: support disabling calling of + ldconfig + +--- + configure | 1 + + mk/install.mk | 12 ++++++++---- + 2 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/configure b/configure +index 6674664..e948c06 100755 +--- a/configure ++++ b/configure +@@ -550,6 +550,7 @@ opt llvm-static-stdcpp 0 "statically link to libstdc++ for LLVM" + opt rpath 0 "build rpaths into rustc itself" + opt nightly 0 "build nightly packages" + opt verify-install 1 "verify installed binaries work" ++opt ldconfig 1 "try to run ldconfig on linux systems to complete the install" + # This is used by the automation to produce single-target nightlies + opt dist-host-only 0 "only install bins for the host architecture" + opt inject-std-version 1 "inject the current compiler version of libstd into programs" +diff --git a/mk/install.mk b/mk/install.mk +index 8878cf5..c8bed09 100644 +--- a/mk/install.mk ++++ b/mk/install.mk +@@ -14,6 +14,10 @@ else + MAYBE_DISABLE_VERIFY= + endif + ++ifdef CFG_DISABLE_LDCONFIG ++CFG_INSTALL_OPTS +=--disable-ldconfig ++endif ++ + install: + ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER))) + # Build the dist as the original user +@@ -22,9 +26,9 @@ else + $(Q)$(P)$(MAKE) prepare_install + endif + ifeq ($(CFG_DISABLE_DOCS),) +- $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" ++ $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" $(CFG_INSTALL_OPTS) + endif +- $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" ++ $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" $(CFG_INSTALL_OPTS) + # Remove tmp files because it's a decent amount of disk space + $(Q)rm -R tmp/dist + +@@ -38,9 +42,9 @@ else + $(Q)$(P)$(MAKE) prepare_uninstall + endif + ifeq ($(CFG_DISABLE_DOCS),) +- $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" ++ $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" $(CFG_INSTALL_OPTS) + endif +- $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" ++ $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" $(CFG_INSTALL_OPTS) + # Remove tmp files because it's a decent amount of disk space + $(Q)rm -R tmp/dist + +-- +2.3.1 + diff --git a/recipes/rust/files/0011-librustc_back-target-rename-json-field-from-target-w.patch b/recipes/rust/files/0011-librustc_back-target-rename-json-field-from-target-w.patch deleted file mode 100644 index b1b44e4..0000000 --- a/recipes/rust/files/0011-librustc_back-target-rename-json-field-from-target-w.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 59b74e4f745a979d57eaa78c30f3e6777f4d0eba Mon Sep 17 00:00:00 2001 -From: Cody P Schafer -Date: Thu, 12 Feb 2015 10:29:21 -0500 -Subject: [PATCH 11/11] librustc_back/target: rename json field from - target-word-size to target-pointer-width to match rust struct field - -Completes #20421 (which renamed the struct field but not the json field) - -If you're using the json target specificating interface, this is -potentially a: -[breaking-change] ---- - src/librustc/session/config.rs | 2 +- - src/librustc_back/target/mod.rs | 4 ++-- - src/test/run-make/target-specs/my-awesome-platform.json | 2 +- - src/test/run-make/target-specs/my-incomplete-platform.json | 2 +- - src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json | 2 +- - 5 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs -index 20f2762..62dd732 100644 ---- a/src/librustc/session/config.rs -+++ b/src/librustc/session/config.rs -@@ -645,7 +645,7 @@ pub fn build_target_config(sysroot: &Path, opts: &Options, sp: &SpanHandler) -> - "32" => (ast::TyI32, ast::TyU32), - "64" => (ast::TyI64, ast::TyU64), - w => sp.handler().fatal(&format!("target specification was invalid: unrecognized \ -- target-word-size {}", w)[]) -+ target-pointer-width {}", w)[]) - }; - - Config { -diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs -index ba8bf1e..cc89356 100644 ---- a/src/librustc_back/target/mod.rs -+++ b/src/librustc_back/target/mod.rs -@@ -40,7 +40,7 @@ - //! this module defines the format the JSON file should take, though each - //! underscore in the field names should be replaced with a hyphen (`-`) in the - //! JSON file. Some fields are required in every target specification, such as --//! `data-layout`, `llvm-target`, `target-endian`, `target-word-size`, and -+//! `data-layout`, `llvm-target`, `target-endian`, `target-pointer-width`, and - //! `arch`. In general, options passed to rustc with `-C` override the target's - //! settings, though `target-feature` and `link-args` will *add* to the list - //! specified by the target, rather than replace. -@@ -241,7 +241,7 @@ impl Target { - data_layout: get_req_field("data-layout"), - llvm_target: get_req_field("llvm-target"), - target_endian: get_req_field("target-endian"), -- target_pointer_width: get_req_field("target-word-size"), -+ target_pointer_width: get_req_field("target-pointer-width"), - arch: get_req_field("arch"), - target_os: get_req_field("os"), - options: Default::default(), -diff --git a/src/test/run-make/target-specs/my-awesome-platform.json b/src/test/run-make/target-specs/my-awesome-platform.json -index f5f622b..d7cf713 100644 ---- a/src/test/run-make/target-specs/my-awesome-platform.json -+++ b/src/test/run-make/target-specs/my-awesome-platform.json -@@ -2,7 +2,7 @@ - "data-layout": "e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32", - "llvm-target": "i686-unknown-linux-gnu", - "target-endian": "little", -- "target-word-size": "32", -+ "target-pointer-width": "32", - "arch": "x86", - "os": "linux", - "morestack": false -diff --git a/src/test/run-make/target-specs/my-incomplete-platform.json b/src/test/run-make/target-specs/my-incomplete-platform.json -index 5005a9f..053f2dd 100644 ---- a/src/test/run-make/target-specs/my-incomplete-platform.json -+++ b/src/test/run-make/target-specs/my-incomplete-platform.json -@@ -1,7 +1,7 @@ - { - "data-layout": "e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32", - "target-endian": "little", -- "target-word-size": "32", -+ "target-pointer-width": "32", - "arch": "x86", - "os": "foo", - "morestack": false -diff --git a/src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json b/src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json -index 5e0f0f4..688bbe4 100644 ---- a/src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json -+++ b/src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json -@@ -3,7 +3,7 @@ - "data-layout": "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128", - "llvm-target": "x86_64-unknown-linux-gnu", - "target-endian": "little", -- "target-word-size": "64", -+ "target-pointer-width": "64", - "arch": "x86_64", - "os": "linux", - "morestack": false --- -2.3.0 - diff --git a/recipes/rust/files/0012-mk-install-use-disable-rewrite-paths.patch b/recipes/rust/files/0012-mk-install-use-disable-rewrite-paths.patch new file mode 100644 index 0000000..6629ea7 --- /dev/null +++ b/recipes/rust/files/0012-mk-install-use-disable-rewrite-paths.patch @@ -0,0 +1,43 @@ +From 8b4d8e7156c6d545e5b782af0f8bdae01a8350e1 Mon Sep 17 00:00:00 2001 +From: Cody P Schafer +Date: Mon, 2 Mar 2015 13:34:59 -0500 +Subject: [PATCH 12/12] mk/install: use disable-rewrite-paths + +This stops the install scripts from doing work we've already handled. + +Path rewriting is only useful for prepackaged binary installers. +--- + mk/install.mk | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/mk/install.mk b/mk/install.mk +index c8bed09..edaea49 100644 +--- a/mk/install.mk ++++ b/mk/install.mk +@@ -26,9 +26,9 @@ else + $(Q)$(P)$(MAKE) prepare_install + endif + ifeq ($(CFG_DISABLE_DOCS),) +- $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" $(CFG_INSTALL_OPTS) ++ $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" --disable-rewrite-paths $(CFG_INSTALL_OPTS) + endif +- $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" $(CFG_INSTALL_OPTS) ++ $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" --disable-rewrite-paths $(CFG_INSTALL_OPTS) + # Remove tmp files because it's a decent amount of disk space + $(Q)rm -R tmp/dist + +@@ -42,9 +42,9 @@ else + $(Q)$(P)$(MAKE) prepare_uninstall + endif + ifeq ($(CFG_DISABLE_DOCS),) +- $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" $(CFG_INSTALL_OPTS) ++ $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" --disable-rewrite-paths $(CFG_INSTALL_OPTS) + endif +- $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" $(CFG_INSTALL_OPTS) ++ $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" --disable-rewrite-paths $(CFG_INSTALL_OPTS) + # Remove tmp files because it's a decent amount of disk space + $(Q)rm -R tmp/dist + +-- +2.3.1 + diff --git a/recipes/rust/files/rust-installer/0001-add-option-to-disable-rewriting-of-install-paths.patch b/recipes/rust/files/rust-installer/0001-add-option-to-disable-rewriting-of-install-paths.patch new file mode 100644 index 0000000..f82eaff --- /dev/null +++ b/recipes/rust/files/rust-installer/0001-add-option-to-disable-rewriting-of-install-paths.patch @@ -0,0 +1,58 @@ +From f37052ffa86e16faa90d368129c4dcaf6f1a82e3 Mon Sep 17 00:00:00 2001 +From: Cody P Schafer +Date: Mon, 2 Mar 2015 13:27:49 -0500 +Subject: [PATCH] add option to disable rewriting of install paths + +This is intended for use by rust & cargo's `make install`, as in that +case: + + - these paths are typically built into the pre-install layout already + - attempting to do the replacement will be incorrect subdirectory + cases (ie: libdir=lib/foo) +--- + install-template.sh | 21 ++++++++++++--------- + 1 file changed, 12 insertions(+), 9 deletions(-) + +diff --git a/install-template.sh b/install-template.sh +index 11bf392..9b9d75c 100644 +--- a/install-template.sh ++++ b/install-template.sh +@@ -328,6 +328,7 @@ valopt prefix "/usr/local" "set installation prefix" + valopt libdir "${CFG_DESTDIR}${CFG_PREFIX}/lib" "install libraries" + valopt mandir "${CFG_DESTDIR}${CFG_PREFIX}/share/man" "install man pages in PATH" + opt ldconfig 1 "run ldconfig after installation (Linux only)" ++opt rewrite-paths 1 "enable rewriting install paths for libdir & mandir" + + if [ $HELP -eq 1 ] + then +@@ -624,16 +625,18 @@ for component in $COMPONENTS; do + # Decide the destination of the file + FILE_INSTALL_PATH="${CFG_DESTDIR}${CFG_PREFIX}/$FILE" + +- if echo "$FILE" | grep "^lib/" > /dev/null +- then +- f=`echo $FILE | sed 's/^lib\///'` +- FILE_INSTALL_PATH="${CFG_LIBDIR}/$f" +- fi ++ if [ -z "${CFG_DISABLE_REWRITE_PATHS}" ]; then ++ if echo "$FILE" | grep "^lib/" > /dev/null ++ then ++ f=`echo $FILE | sed 's/^lib\///'` ++ FILE_INSTALL_PATH="${CFG_LIBDIR}/$f" ++ fi + +- if echo "$FILE" | grep "^share/man/" > /dev/null +- then +- f=`echo $FILE | sed 's/^share\/man\///'` +- FILE_INSTALL_PATH="${CFG_MANDIR}/$f" ++ if echo "$FILE" | grep "^share/man/" > /dev/null ++ then ++ f=`echo $FILE | sed 's/^share\/man\///'` ++ FILE_INSTALL_PATH="${CFG_MANDIR}/$f" ++ fi + fi + + # Make sure there's a directory for it +-- +2.3.1 + diff --git a/recipes/rust/rust.inc b/recipes/rust/rust.inc index f37d3b3..b16e920 100644 --- a/recipes/rust/rust.inc +++ b/recipes/rust/rust.inc @@ -348,7 +348,7 @@ rust_do_install () { chmod +x "${D}/${bindir}/rustdoc" chmod +x "${D}/${bindir}/rust-gdb" - # Install our custon target.json files + # Install our custom target.json files local td="${D}${libdir}/rustlib/" install -d "$td" for tgt in "${WORKDIR}/targets/"* ; do diff --git a/recipes/rust/rust_git.bb b/recipes/rust/rust_git.bb index c4b638c..8b06899 100644 --- a/recipes/rust/rust_git.bb +++ b/recipes/rust/rust_git.bb @@ -13,4 +13,8 @@ SRC_URI_append = "\ file://0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch \ file://0009-Parallelize-submake-invocations.patch \ file://0010-std-thread_local-workaround-for-NULL-__dso_handle.patch \ + file://0011-configure-install-support-disabling-calling-of-ldcon.patch \ + file://0012-mk-install-use-disable-rewrite-paths.patch \ +\ + file://rust-installer/0001-add-option-to-disable-rewriting-of-install-paths.patch;patchdir=src/rust-installer \ "