Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Jan 2020 06:53:15 +0000 (UTC)
From:      Tobias Kortkamp <tobik@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r523512 - in head/lang: rust rust-nightly/files
Message-ID:  <202001190653.00J6rF11037411@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tobik
Date: Sun Jan 19 06:53:15 2020
New Revision: 523512
URL: https://svnweb.freebsd.org/changeset/ports/523512

Log:
  lang/rust-nightly: Unbreak with lld on 13.0 i386
  
   = note: ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
            >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
            >>> referenced by std.4xivr03c-cgu.14
            >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h1c78ed6e734a2bfc (.llvm.10122419023709863394)) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
  
            ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
            >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
            >>> referenced by std.4xivr03c-cgu.14
            >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(std::io::util::copy::h9115f048f2203467) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
            clang-cpp: error: linker command failed with exit code 1 (use -v to see invocation)
  
  error: aborting due to previous error
  
  http://beefy17.nyi.freebsd.org/data/head-i386-default/p523508_s356869/logs/rust-nightly-1.42.0.20200118.log

Modified:
  head/lang/rust-nightly/files/patch-src_librustc__target_spec_i686__unknown__freebsd.rs
  head/lang/rust/Makefile

Modified: head/lang/rust-nightly/files/patch-src_librustc__target_spec_i686__unknown__freebsd.rs
==============================================================================
--- head/lang/rust-nightly/files/patch-src_librustc__target_spec_i686__unknown__freebsd.rs	Sun Jan 19 04:38:08 2020	(r523511)
+++ head/lang/rust-nightly/files/patch-src_librustc__target_spec_i686__unknown__freebsd.rs	Sun Jan 19 06:53:15 2020	(r523512)
@@ -1,11 +1,16 @@
---- src/librustc_target/spec/i686_unknown_freebsd.rs.orig	2018-06-19 04:35:53 UTC
+--- src/librustc_target/spec/i686_unknown_freebsd.rs.orig	2020-01-17 16:00:01 UTC
 +++ src/librustc_target/spec/i686_unknown_freebsd.rs
-@@ -12,7 +12,7 @@ use spec::{LinkerFlavor, Target, TargetResult};
+@@ -2,9 +2,11 @@ use crate::spec::{LinkerFlavor, Target, TargetResult};
  
  pub fn target() -> TargetResult {
      let mut base = super::freebsd_base::opts();
 -    base.cpu = "pentium4".to_string();
 +    base.cpu = "pentiumpro".to_string();
      base.max_atomic_width = Some(64);
-     base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
+-    base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
++    let pre_link_args = base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
++    pre_link_args.push("-m32".to_string());
++    pre_link_args.push("-Wl,-znotext".to_string());
      base.stack_probes = true;
+ 
+     Ok(Target {

Modified: head/lang/rust/Makefile
==============================================================================
--- head/lang/rust/Makefile	Sun Jan 19 04:38:08 2020	(r523511)
+++ head/lang/rust/Makefile	Sun Jan 19 06:53:15 2020	(r523512)
@@ -172,7 +172,14 @@ do-configure:
 	@${ECHO_CMD} '[target.${_RUST_TARGET}]' >> ${WRKSRC}/config.toml
 	@${ECHO_CMD} 'cc="${CC}"' >> ${WRKSRC}/config.toml
 	@${ECHO_CMD} 'cxx="${CXX}"' >> ${WRKSRC}/config.toml
+.if ${PKGNAMESUFFIX:U} == -nightly && ${ARCH} == i386
+# https://github.com/rust-lang/rust/pull/68361
+	@${PRINTF} '#!/bin/sh\nexec ${CC} -Wl,-znotext "$$@"' > ${WRKDIR}/cc-wrapper
+	@${CHMOD} +x ${WRKDIR}/cc-wrapper
+	@${ECHO_CMD} 'linker="${WRKDIR}/cc-wrapper"' >> ${WRKSRC}/config.toml
+.else
 	@${ECHO_CMD} 'linker="${CC}"' >> ${WRKSRC}/config.toml
+.endif
 	@${ECHO_CMD} '[dist]' >> ${WRKSRC}/config.toml
 	@${ECHO_CMD} 'src-tarball=false' >> ${WRKSRC}/config.toml
 	@${REINPLACE_CMD} -e 's,%CC%,${CC},g' \



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001190653.00J6rF11037411>