install libraries with rustc
- remove now unneeded MAKE_ENV option to pass --sysroot argument to bootstrapper - backport the latest changes for building rustc under openbsd - switch the install from installing a stage3 rustc binary to installing a stage2 rustc binary (and all required libraries) ok juanfra@
This commit is contained in:
parent
d026dd690d
commit
a7ac139c37
@ -1,4 +1,4 @@
|
||||
# $OpenBSD: Makefile,v 1.12 2015/12/10 17:53:57 semarie Exp $
|
||||
# $OpenBSD: Makefile,v 1.13 2016/01/13 07:39:07 semarie Exp $
|
||||
|
||||
# snapshots are only available for amd64, for now
|
||||
ONLY_FOR_ARCHS = amd64
|
||||
@ -10,6 +10,7 @@ COMMENT-doc = html documentation for rustc
|
||||
V = 1.5.0
|
||||
RUST_HASH = 35c36e89
|
||||
DISTNAME = rustc-${V}-src
|
||||
REVISION = 0
|
||||
|
||||
SUBST_VARS += RUST_HASH
|
||||
|
||||
@ -68,12 +69,9 @@ LIBESTDC_VERSION = 17.0
|
||||
# RUSTFLAGS extra flags passed to rust
|
||||
# -L modgcc-libs : disambiguate libestdc++.so
|
||||
# -Z print-link-args : unhide link call
|
||||
# RUSTFLAGS_STAGE0 extra flags passed to stage0
|
||||
# --sysroot force sysroot (due to limitation of us bootstrapper)
|
||||
# RUST_LOG helper
|
||||
MAKE_ENV = VERBOSE=1 \
|
||||
RUSTFLAGS="-L ${WRKDIR}/modgcc-libs -Z print-link-args" \
|
||||
RUSTFLAGS_STAGE0="--sysroot ${WRKBUILD}/${TRIPLE_ARCH}/stage0" \
|
||||
RUST_LOG="${RUST_LOG}"
|
||||
|
||||
|
||||
@ -97,9 +95,7 @@ USE_LIBTOOL = gnu
|
||||
CONFIGURE_ARGS += --llvm-root="${LOCAL_LLVM_FOR_RUST}"
|
||||
.endif
|
||||
|
||||
ALL_TARGET += rustc-stage3 \
|
||||
${TRIPLE_ARCH}/stage3/bin/rustdoc \
|
||||
docs
|
||||
ALL_TARGET += rustc-stage2 docs
|
||||
TEST_TARGET = check
|
||||
TEST_ENV += ALLOW_NONZERO_RLIMIT_CORE=1
|
||||
TEST_DEPENDS += devel/git
|
||||
@ -129,34 +125,14 @@ post-configure:
|
||||
cp ${WRKDIR}/rust-stage0/lib/lib*.so* \
|
||||
${WRKBUILD}/${TRIPLE_ARCH}/stage0/lib
|
||||
|
||||
|
||||
# do-install: don't use the default install target
|
||||
do-install:
|
||||
# host binary
|
||||
${INSTALL_PROGRAM_DIR} ${PREFIX}/lib/rustlib/${TRIPLE_ARCH}/bin
|
||||
${INSTALL_PROGRAM} ${WRKBUILD}/${TRIPLE_ARCH}/stage3/bin/rustc \
|
||||
post-install:
|
||||
# cleanup
|
||||
rm ${PREFIX}/lib/rustlib/{install.log,uninstall.sh,rust-installer-version}
|
||||
# host binary wrapper
|
||||
${INSTALL_PROGRAM_DIR} \
|
||||
${PREFIX}/lib/rustlib/${TRIPLE_ARCH}/bin
|
||||
mv ${PREFIX}/bin/rustc ${PREFIX}/lib/rustlib/${TRIPLE_ARCH}/bin
|
||||
${SUBST_PROGRAM} -c \
|
||||
files/rustc ${PREFIX}/bin/rustc
|
||||
${INSTALL_PROGRAM} ${WRKBUILD}/${TRIPLE_ARCH}/stage3/bin/rustdoc \
|
||||
${PREFIX}/bin/rustdoc
|
||||
|
||||
# data
|
||||
${INSTALL_DATA} \
|
||||
${WRKSRC}/man/{rustc,rustdoc}.1 \
|
||||
${PREFIX}/man/man1
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/rust
|
||||
${INSTALL_DATA} ${WRKSRC}/{COPYRIGHT,LICENSE-APACHE,LICENSE-MIT,README.md} \
|
||||
${PREFIX}/share/doc/rust
|
||||
|
||||
# target libraries
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/lib/rustlib/${TRIPLE_ARCH}/lib
|
||||
${INSTALL_DATA} \
|
||||
${WRKBUILD}/${TRIPLE_ARCH}/stage3/lib/rustlib/${TRIPLE_ARCH}/lib/lib* \
|
||||
${PREFIX}/lib/rustlib/${TRIPLE_ARCH}/lib
|
||||
|
||||
# html documentation
|
||||
cp -R ${WRKBUILD}/doc ${PREFIX}/share/doc/rust/html
|
||||
chmod -R a+rX ${PREFIX}/share/doc/rust/html
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
@ -1,9 +1,9 @@
|
||||
$OpenBSD: patch-configure,v 1.4 2015/09/22 08:11:24 semarie Exp $
|
||||
$OpenBSD: patch-configure,v 1.5 2016/01/13 07:39:08 semarie Exp $
|
||||
Remove requirement for curl or wget.
|
||||
The snapshot isn't downloaded but copied by post-configure.
|
||||
--- configure.orig Tue Aug 4 21:28:47 2015
|
||||
+++ configure Fri Aug 7 06:37:54 2015
|
||||
@@ -696,7 +696,7 @@ putvar CFG_BOOTSTRAP_KEY
|
||||
--- configure.orig Fri Dec 4 21:18:59 2015
|
||||
+++ configure Tue Dec 15 06:46:14 2015
|
||||
@@ -721,7 +721,7 @@ putvar CFG_BOOTSTRAP_KEY
|
||||
|
||||
step_msg "looking for build programs"
|
||||
|
||||
|
9
lang/rust/patches/patch-mk_cfg_x86_64-unknown-openbsd_mk
Normal file
9
lang/rust/patches/patch-mk_cfg_x86_64-unknown-openbsd_mk
Normal file
@ -0,0 +1,9 @@
|
||||
$OpenBSD: patch-mk_cfg_x86_64-unknown-openbsd_mk,v 1.1 2016/01/13 07:39:08 semarie Exp $
|
||||
https://github.com/rust-lang/rust/pull/29794
|
||||
--- mk/cfg/x86_64-unknown-openbsd.mk.orig Sat Jan 9 08:59:36 2016
|
||||
+++ mk/cfg/x86_64-unknown-openbsd.mk Sat Jan 9 09:00:04 2016
|
||||
@@ -20,3 +20,4 @@ CFG_LDPATH_x86_64-unknown-openbsd :=
|
||||
CFG_RUN_x86_64-unknown-openbsd=$(2)
|
||||
CFG_RUN_TARG_x86_64-unknown-openbsd=$(call CFG_RUN_x86_64-unknown-openbsd,,$(2))
|
||||
CFG_GNU_TRIPLE_x86_64-unknown-openbsd := x86_64-unknown-openbsd
|
||||
+RUSTC_FLAGS_x86_64-unknown-openbsd=-C linker=$(call FIND_COMPILER,$(CC))
|
@ -1,20 +1,19 @@
|
||||
$OpenBSD: patch-mk_platform_mk,v 1.1 2015/12/10 17:53:57 semarie Exp $
|
||||
Remove possible conflict between system-llvm and rustc-llvm
|
||||
$OpenBSD: patch-mk_platform_mk,v 1.2 2016/01/13 07:39:08 semarie Exp $
|
||||
https://github.com/rust-lang/rust/pull/29794
|
||||
--- mk/platform.mk.orig Fri Dec 4 21:18:59 2015
|
||||
+++ mk/platform.mk Wed Dec 9 10:06:55 2015
|
||||
@@ -211,9 +211,11 @@ define CFG_MAKE_TOOLCHAIN
|
||||
# On OpenBSD, we need to pass the path of libstdc++.so to the linker
|
||||
# (use path of libstdc++.a which is a known name for the same path)
|
||||
ifeq ($(OSTYPE_$(1)),unknown-openbsd)
|
||||
--- mk/platform.mk.orig Sat Jan 9 09:59:06 2016
|
||||
+++ mk/platform.mk Sat Jan 9 09:59:13 2016
|
||||
@@ -208,14 +208,6 @@ define CFG_MAKE_TOOLCHAIN
|
||||
|
||||
ifeq ($$(findstring $(HOST_$(1)),arm aarch64 mips mipsel powerpc),)
|
||||
|
||||
- # On OpenBSD, we need to pass the path of libstdc++.so to the linker
|
||||
- # (use path of libstdc++.a which is a known name for the same path)
|
||||
- ifeq ($(OSTYPE_$(1)),unknown-openbsd)
|
||||
- RUSTC_FLAGS_$(1)=-L "$$(dir $$(shell $$(CC_$(1)) $$(CFG_GCCISH_CFLAGS_$(1)) \
|
||||
- -print-file-name=lib$(CFG_STDCPP_NAME).a))" \
|
||||
- $(RUSTC_FLAGS_$(1))
|
||||
+ STDCPP_LIBDIR_RUSTFLAGS_$(1)= \
|
||||
+ -L "$$(dir $$(shell $$(CC_$(1)) $$(CFG_GCCISH_CFLAGS_$(1)) \
|
||||
+ -print-file-name=lib$(CFG_STDCPP_NAME).a))"
|
||||
+ else
|
||||
+ STDCPP_LIBDIR_RUSTFLAGS_$(1)=
|
||||
endif
|
||||
|
||||
- endif
|
||||
-
|
||||
# On Bitrig, we need the relocation model to be PIC for everything
|
||||
ifeq (,$(filter $(OSTYPE_$(1)),bitrig))
|
||||
LLVM_MC_RELOCATION_MODEL="pic"
|
||||
|
@ -1,24 +0,0 @@
|
||||
$OpenBSD: patch-mk_target_mk,v 1.1 2015/12/10 17:53:57 semarie Exp $
|
||||
Remove possible conflict between system-llvm and rustc-llvm
|
||||
https://github.com/rust-lang/rust/pull/29794
|
||||
--- mk/target.mk.orig Fri Dec 4 21:18:59 2015
|
||||
+++ mk/target.mk Wed Dec 9 10:06:55 2015
|
||||
@@ -95,6 +95,7 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$(4): \
|
||||
$$(RUSTFLAGS_$(4)) \
|
||||
$$(RUSTFLAGS$(1)_$(4)) \
|
||||
$$(RUSTFLAGS$(1)_$(4)_T_$(2)) \
|
||||
+ $$(STDCPP_LIBDIR_RUSTFLAGS_$(2)) \
|
||||
--out-dir $$(@D) \
|
||||
-C extra-filename=-$$(CFG_FILENAME_EXTRA) \
|
||||
$$<
|
||||
@@ -128,7 +129,9 @@ $$(TBIN$(1)_T_$(2)_H_$(3))/$(4)$$(X_$(2)): \
|
||||
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
|
||||
| $$(TBIN$(1)_T_$(2)_H_$(3))/
|
||||
@$$(call E, rustc: $$@)
|
||||
- $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --cfg $(4)
|
||||
+ $$(STAGE$(1)_T_$(2)_H_$(3)) \
|
||||
+ $$(STDCPP_LIBDIR_RUSTFLAGS_$(2)) \
|
||||
+ -o $$@ $$< --cfg $(4)
|
||||
|
||||
endef
|
||||
|
@ -1,27 +0,0 @@
|
||||
$OpenBSD: patch-mk_tests_mk,v 1.1 2015/12/10 17:53:57 semarie Exp $
|
||||
Remove possible conflict between system-llvm and rustc-llvm
|
||||
https://github.com/rust-lang/rust/pull/29794
|
||||
--- mk/tests.mk.orig Fri Dec 4 21:18:59 2015
|
||||
+++ mk/tests.mk Wed Dec 9 10:06:55 2015
|
||||
@@ -391,7 +391,8 @@ $(3)/stage$(1)/test/$(4)test-$(2)$$(X_$(2)): \
|
||||
$$(subst @,,$$(STAGE$(1)_T_$(2)_H_$(3))) -o $$@ $$< --test \
|
||||
-L "$$(RT_OUTPUT_DIR_$(2))" \
|
||||
$$(LLVM_LIBDIR_RUSTFLAGS_$(2)) \
|
||||
- $$(RUSTFLAGS_$(4))
|
||||
+ $$(RUSTFLAGS_$(4)) \
|
||||
+ $$(STDCPP_LIBDIR_RUSTFLAGS_$(2))
|
||||
|
||||
endef
|
||||
|
||||
@@ -661,9 +662,9 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
|
||||
--android-cross-path=$(CFG_ANDROID_CROSS_PATH) \
|
||||
--adb-path=$(CFG_ADB) \
|
||||
--adb-test-dir=$(CFG_ADB_TEST_DIR) \
|
||||
- --host-rustcflags "$(RUSTC_FLAGS_$(3)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(3))" \
|
||||
+ --host-rustcflags "$(RUSTC_FLAGS_$(3)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(3)) $$(STDCPP_LIBDIR_RUSTFLAGS_$(3))" \
|
||||
--lldb-python-dir=$(CFG_LLDB_PYTHON_DIR) \
|
||||
- --target-rustcflags "$(RUSTC_FLAGS_$(2)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(2))" \
|
||||
+ --target-rustcflags "$(RUSTC_FLAGS_$(2)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(2)) $$(STDCPP_LIBDIR_RUSTFLAGS_$(2))" \
|
||||
$$(CTEST_TESTARGS)
|
||||
|
||||
ifdef CFG_VALGRIND_RPASS
|
13
lang/rust/patches/patch-src_etc_rust-gdb
Normal file
13
lang/rust/patches/patch-src_etc_rust-gdb
Normal file
@ -0,0 +1,13 @@
|
||||
$OpenBSD: patch-src_etc_rust-gdb,v 1.1 2016/01/13 07:39:08 semarie Exp $
|
||||
only compatible with egdb (gdb from ports)
|
||||
--- src/etc/rust-gdb.orig Sat Dec 12 07:12:56 2015
|
||||
+++ src/etc/rust-gdb Sat Dec 12 07:13:44 2015
|
||||
@@ -17,7 +17,7 @@ RUSTC_SYSROOT=`rustc --print=sysroot`
|
||||
GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc"
|
||||
|
||||
# Run GDB with the additional arguments that load the pretty printers
|
||||
-PYTHONPATH="$PYTHONPATH:$GDB_PYTHON_MODULE_DIRECTORY" gdb \
|
||||
+PYTHONPATH="$PYTHONPATH:$GDB_PYTHON_MODULE_DIRECTORY" egdb \
|
||||
-d "$GDB_PYTHON_MODULE_DIRECTORY" \
|
||||
-iex "add-auto-load-safe-path $GDB_PYTHON_MODULE_DIRECTORY" \
|
||||
"$@"
|
17
lang/rust/patches/patch-src_test_run-make_tools_mk
Normal file
17
lang/rust/patches/patch-src_test_run-make_tools_mk
Normal file
@ -0,0 +1,17 @@
|
||||
$OpenBSD: patch-src_test_run-make_tools_mk,v 1.1 2016/01/13 07:39:08 semarie Exp $
|
||||
https://github.com/rust-lang/rust/pull/29794
|
||||
--- src/test/run-make/tools.mk.orig Sat Jan 9 09:02:08 2016
|
||||
+++ src/test/run-make/tools.mk Sat Jan 9 09:02:26 2016
|
||||
@@ -85,11 +85,7 @@ ifeq ($(UNAME),Bitrig)
|
||||
else
|
||||
ifeq ($(UNAME),OpenBSD)
|
||||
EXTRACFLAGS := -lm -lpthread
|
||||
- # extend search lib for found estdc++ if build using gcc from
|
||||
- # ports under OpenBSD. This is needed for:
|
||||
- # - run-make/execution-engine
|
||||
- # - run-make/issue-19371
|
||||
- RUSTC := $(RUSTC) -L/usr/local/lib
|
||||
+ RUSTC := $(RUSTC) -C linker="$(word 1,$(CC:ccache=))"
|
||||
else
|
||||
EXTRACFLAGS := -lm -lrt -ldl -lpthread
|
||||
EXTRACXXFLAGS := -lstdc++
|
@ -1,7 +1,43 @@
|
||||
@comment $OpenBSD: PLIST-main,v 1.3 2015/11/02 12:44:24 semarie Exp $
|
||||
@comment $OpenBSD: PLIST-main,v 1.4 2016/01/13 07:39:08 semarie Exp $
|
||||
bin/rust-gdb
|
||||
bin/rustc
|
||||
@bin bin/rustdoc
|
||||
lib/libarena-${RUST_HASH}.so
|
||||
lib/libflate-${RUST_HASH}.so
|
||||
lib/libfmt_macros-${RUST_HASH}.so
|
||||
lib/libgetopts-${RUST_HASH}.so
|
||||
lib/libgraphviz-${RUST_HASH}.so
|
||||
lib/liblog-${RUST_HASH}.so
|
||||
lib/librbml-${RUST_HASH}.so
|
||||
lib/librustc-${RUST_HASH}.so
|
||||
lib/librustc_back-${RUST_HASH}.so
|
||||
lib/librustc_borrowck-${RUST_HASH}.so
|
||||
lib/librustc_data_structures-${RUST_HASH}.so
|
||||
lib/librustc_driver-${RUST_HASH}.so
|
||||
lib/librustc_front-${RUST_HASH}.so
|
||||
lib/librustc_lint-${RUST_HASH}.so
|
||||
lib/librustc_llvm-${RUST_HASH}.so
|
||||
lib/librustc_mir-${RUST_HASH}.so
|
||||
lib/librustc_platform_intrinsics-${RUST_HASH}.so
|
||||
lib/librustc_privacy-${RUST_HASH}.so
|
||||
lib/librustc_resolve-${RUST_HASH}.so
|
||||
lib/librustc_trans-${RUST_HASH}.so
|
||||
lib/librustc_typeck-${RUST_HASH}.so
|
||||
lib/librustdoc-${RUST_HASH}.so
|
||||
lib/libserialize-${RUST_HASH}.so
|
||||
lib/libstd-${RUST_HASH}.so
|
||||
lib/libsyntax-${RUST_HASH}.so
|
||||
lib/libterm-${RUST_HASH}.so
|
||||
lib/libtest-${RUST_HASH}.so
|
||||
lib/rustlib/
|
||||
lib/rustlib/components
|
||||
lib/rustlib/etc/
|
||||
lib/rustlib/etc/debugger_pretty_printers_common.py
|
||||
lib/rustlib/etc/gdb_load_rust_pretty_printers.py
|
||||
lib/rustlib/etc/gdb_rust_pretty_printing.py
|
||||
lib/rustlib/manifest-rust-docs
|
||||
lib/rustlib/manifest-rust-std-${TRIPLE_ARCH}
|
||||
lib/rustlib/manifest-rustc
|
||||
lib/rustlib/${TRIPLE_ARCH}/
|
||||
lib/rustlib/${TRIPLE_ARCH}/bin/
|
||||
@bin lib/rustlib/${TRIPLE_ARCH}/bin/rustc
|
||||
@ -15,6 +51,7 @@ lib/rustlib/${TRIPLE_ARCH}/lib/libcompiler-rt.a
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libcore-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libflate-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libflate-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libfmt_macros-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libgetopts-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libgetopts-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libgraphviz-${RUST_HASH}.rlib
|
||||
@ -25,12 +62,28 @@ lib/rustlib/${TRIPLE_ARCH}/lib/liblog-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librand-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librbml-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librbml-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_back-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_bitflags-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_borrowck-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_data_structures-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_driver-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_front-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_lint-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_llvm-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_mir-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_platform_intrinsics-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_privacy-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_resolve-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_trans-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_typeck-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustc_unicode-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/librustdoc-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libserialize-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libserialize-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libstd-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libstd-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libsyntax-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libterm-${RUST_HASH}.rlib
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libterm-${RUST_HASH}.so
|
||||
lib/rustlib/${TRIPLE_ARCH}/lib/libtest-${RUST_HASH}.rlib
|
||||
|
Loading…
Reference in New Issue
Block a user