Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Mar 2018 02:54:10 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r463926 - in head/lang: rust rust-nightly/files rust/files
Message-ID:  <201803090254.w292sARA061926@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Fri Mar  9 02:54:10 2018
New Revision: 463926
URL: https://svnweb.freebsd.org/changeset/ports/463926

Log:
  - Fix kevent on head by binding to the old ABI symbol version.
  - Add some context in the patches for where they came from.  They need to be
    in 1 patch due to needing to use the .orig file for fixing up checksums.
  
  Obtained from:	rust upstream

Added:
  head/lang/rust-nightly/files/extra-patch-abi
     - copied, changed from r463925, head/lang/rust-nightly/files/extra-patch-ino64
  head/lang/rust/files/extra-patch-abi
     - copied, changed from r463925, head/lang/rust/files/extra-patch-ino64
Deleted:
  head/lang/rust-nightly/files/extra-patch-ino64
  head/lang/rust/files/extra-patch-ino64
Modified:
  head/lang/rust/Makefile

Copied and modified: head/lang/rust-nightly/files/extra-patch-abi (from r463925, head/lang/rust-nightly/files/extra-patch-ino64)
==============================================================================
--- head/lang/rust-nightly/files/extra-patch-ino64	Fri Mar  9 01:03:45 2018	(r463925, copy source)
+++ head/lang/rust-nightly/files/extra-patch-abi	Fri Mar  9 02:54:10 2018	(r463926)
@@ -1,3 +1,25 @@
+------------------------------------------------------------------------
+r441843 | kib | 2017-05-27 05:06:40 -0700 (Sat, 27 May 2017) | 6 lines
+
+Fix lang/rust after ino64 src commit.
+
+Approved by:  bapt, dumbbell
+Sponsored by:   The FreeBSD Foundation
+Differential revision:  https://reviews.freebsd.org/D10799
+
+------------------------------------------------------------------------
+
+commit 969ad2b73cdc928b88f6db8f31916bbe294764c0
+Author: Bryan Drewery <bryan@shatow.net>
+Date:   Thu Mar 1 12:35:01 2018 -0800
+
+    Link against kevent@FBSD_1.0 to fix ABI compat with FreeBSD12.
+    
+    struct kevent was modified in FreeBSD12.  The @FBSD_1.0 symbol supports the old
+    structure ABI still.
+    
+    This allows the `mio` crate tests to now pass on FreeBSD12.
+
 --- ./src/liblibc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs.orig	2017-04-24 18:56:45.000000000 +0000
 +++ ./src/liblibc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs	2017-05-30 07:55:40.703709000 +0000
 @@ -7,10 +7,12 @@
@@ -142,6 +164,14 @@
  pub type mode_t = u16;
  pub type pthread_attr_t = *mut ::c_void;
  pub type rlim_t = i64;
+@@ -1052,6 +1052,7 @@ extern {
+                        serv: *mut ::c_char,
+                        servlen: ::size_t,
+                        flags: ::c_int) -> ::c_int;
++    #[cfg_attr(target_os = "freebsd", link_name = "kevent@FBSD_1.0")]
+     pub fn kevent(kq: ::c_int,
+                   changelist: *const ::kevent,
+                   nchanges: ::c_int,
 --- ./src/libstd/os/freebsd/raw.rs.orig	2017-04-24 18:53:46.000000000 +0000
 +++ ./src/libstd/os/freebsd/raw.rs	2017-05-25 16:25:42.304715000 +0000
 @@ -38,32 +38,52 @@
@@ -383,3 +413,11 @@
  pub type mode_t = u16;
  pub type pthread_attr_t = *mut ::c_void;
  pub type rlim_t = i64;
+@@ -1052,6 +1052,7 @@ extern {
+                        serv: *mut ::c_char,
+                        servlen: ::size_t,
+                        flags: ::c_int) -> ::c_int;
++    #[cfg_attr(target_os = "freebsd", link_name = "kevent@FBSD_1.0")]
+     pub fn kevent(kq: ::c_int,
+                   changelist: *const ::kevent,
+                   nchanges: ::c_int,

Modified: head/lang/rust/Makefile
==============================================================================
--- head/lang/rust/Makefile	Fri Mar  9 01:03:45 2018	(r463925)
+++ head/lang/rust/Makefile	Fri Mar  9 02:54:10 2018	(r463926)
@@ -3,6 +3,7 @@
 
 PORTNAME=	rust
 PORTVERSION?=	1.24.0
+PORTREVISION?=	1
 CATEGORIES=	lang
 MASTER_SITES=	http://static.rust-lang.org/dist/:src \
 		LOCAL/dumbbell/rust:rust_bootstrap \
@@ -92,7 +93,7 @@ PLIST_FILES=		lib/rustlib/components \
 
 .include <bsd.port.pre.mk>
 .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200031
-EXTRA_PATCHES+=		${PATCHDIR}/extra-patch-ino64
+EXTRA_PATCHES+=		${PATCHDIR}/extra-patch-abi
 .endif
 
 X_PY_ENV=	HOME="${WRKDIR}" \

Copied and modified: head/lang/rust/files/extra-patch-abi (from r463925, head/lang/rust/files/extra-patch-ino64)
==============================================================================
--- head/lang/rust/files/extra-patch-ino64	Fri Mar  9 01:03:45 2018	(r463925, copy source)
+++ head/lang/rust/files/extra-patch-abi	Fri Mar  9 02:54:10 2018	(r463926)
@@ -1,3 +1,25 @@
+------------------------------------------------------------------------
+r441843 | kib | 2017-05-27 05:06:40 -0700 (Sat, 27 May 2017) | 6 lines
+
+Fix lang/rust after ino64 src commit.
+
+Approved by:  bapt, dumbbell
+Sponsored by:   The FreeBSD Foundation
+Differential revision:  https://reviews.freebsd.org/D10799
+
+------------------------------------------------------------------------
+
+commit 969ad2b73cdc928b88f6db8f31916bbe294764c0
+Author: Bryan Drewery <bryan@shatow.net>
+Date:   Thu Mar 1 12:35:01 2018 -0800
+
+    Link against kevent@FBSD_1.0 to fix ABI compat with FreeBSD12.
+    
+    struct kevent was modified in FreeBSD12.  The @FBSD_1.0 symbol supports the old
+    structure ABI still.
+    
+    This allows the `mio` crate tests to now pass on FreeBSD12.
+
 --- ./src/liblibc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs.orig	2017-04-24 18:56:45.000000000 +0000
 +++ ./src/liblibc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs	2017-05-30 07:55:40.703709000 +0000
 @@ -7,10 +7,12 @@
@@ -142,6 +164,14 @@
  pub type mode_t = u16;
  pub type pthread_attr_t = *mut ::c_void;
  pub type rlim_t = i64;
+@@ -1052,6 +1052,7 @@ extern {
+                        serv: *mut ::c_char,
+                        servlen: ::size_t,
+                        flags: ::c_int) -> ::c_int;
++    #[cfg_attr(target_os = "freebsd", link_name = "kevent@FBSD_1.0")]
+     pub fn kevent(kq: ::c_int,
+                   changelist: *const ::kevent,
+                   nchanges: ::c_int,
 --- ./src/libstd/os/freebsd/raw.rs.orig	2017-04-24 18:53:46.000000000 +0000
 +++ ./src/libstd/os/freebsd/raw.rs	2017-05-25 16:25:42.304715000 +0000
 @@ -38,32 +38,52 @@
@@ -383,3 +413,11 @@
  pub type mode_t = u16;
  pub type pthread_attr_t = *mut ::c_void;
  pub type rlim_t = i64;
+@@ -1052,6 +1052,7 @@ extern {
+                        serv: *mut ::c_char,
+                        servlen: ::size_t,
+                        flags: ::c_int) -> ::c_int;
++    #[cfg_attr(target_os = "freebsd", link_name = "kevent@FBSD_1.0")]
+     pub fn kevent(kq: ::c_int,
+                   changelist: *const ::kevent,
+                   nchanges: ::c_int,



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