From owner-svn-ports-head@freebsd.org Mon Jul 17 06:25:53 2017 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9CE62CFD86A; Mon, 17 Jul 2017 06:25:53 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 5079474716; Mon, 17 Jul 2017 06:25:53 +0000 (UTC) (envelope-from cy.schubert@komquats.com) Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with SMTP id WzTZdYGQrDJTWWzTadliPI; Mon, 17 Jul 2017 00:25:51 -0600 X-Authority-Analysis: v=2.2 cv=B4DJ6KlM c=1 sm=1 tr=0 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17 a=kj9zAlcOel0A:10 a=G3gG6ho9WtcA:10 a=BWvPGDcYAAAA:8 a=WRJ6V7hQAAAA:8 a=YxBL1-UpAAAA:8 a=6I5d2MoRAAAA:8 a=pps7yT8onsyfd3Z_WFQA:9 a=CjuIK1q_8ugA:10 a=pxhY87DP9d2VeQe4joPk:22 a=1zxpBTYGrzRwGOqLqlOP:22 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTPS id 6474C14C1; Sun, 16 Jul 2017 23:25:49 -0700 (PDT) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id v6H6OWZU067772; Sun, 16 Jul 2017 23:24:32 -0700 (PDT) (envelope-from Cy.Schubert@cschubert.com) Message-Id: <201707170624.v6H6OWZU067772@slippy.cwsent.com> X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: acm@freebsd.org cc: Cy Schubert , ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: Re: svn commit: r445203 - head/lang/ldc In-Reply-To: Message from =?UTF-8?Q?Alonso_C=C3=A1rdenas_M=C3=A1rquez?= of "Sun, 16 Jul 2017 13:57:57 -0500." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 16 Jul 2017 23:24:32 -0700 X-CMAE-Envelope: MS4wfGNm7iq/XcMrGqewGd+H159t3B6ASzdrmGYCTT0KLwN9j5pZrOGVMJ//sK1seycRkDEgB3vD/wEc1OyJ5NDIgXzpVP3N2JREwsSmorTSW23/BHq3jFFf KpOQb8niHLAC5faPktvtmRiFYkD/p4Hnltm72SqucfxS2ZwT7ZECvBiFs8jGV3XzohQaUezAaXax/uqDvoSkkveN7rJMfsnjazeeG7p2jmOjHxYdwVTuG7On 9TaJm9TN6rczdQFg+DoEZQrvi+szTXIeK6GOwpkxZzkezbUlw1fLi3mrjGk4q8kW X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Jul 2017 06:25:53 -0000 In message , =?UTF-8?Q?Alonso_C=C3=A1rdenas_M=C3=A1rquez?= writes: > --001a113d46aa525165055473dcc5 > Content-Type: text/plain; charset="UTF-8" > > 2017-07-07 1:38 GMT-05:00 Cy Schubert : > > > > > > > Interestingly I'm seeing the same issue with lang/dmd2. I've determined > > that dmd2's issue is stack corruption caused incorrect D stat_t and > > dirent_t definitions. I'm willing to bet that ldc, which is based on DMD D > > (with an llvm backend), likely has the same issue. > > > > Hi, you are right. lang/ldc is broken on 12-CURRENT. I think that some > changes into 12-CURRENT is breaking some ports It's inode64 that broke this port and dmd2. The workaround implemented by kib@ should be sufficient however the two D ports developers have implemented virtually everything in D, requiring manual translation of certain data structures from C header files to D header files. The nuances (conditional compilation) of our and other operating systems' definition of data structures is not captured by their definitions making their implementation fragile. > > > > I've opened a ticket with dlang.org. The issue is that for lang/dmd2 and > > lang/ldc to support pre-inode64 and post-inode64 systems we must be able to > > conditionally include old and new versions of stat and dirent structs. > > Unfortunately D only supports a version() statement (akin an #ifdef) and D > > supports version(FreeBSD) and is not able to conditionally compile based on > > __FreeBSD_version. (It would have been simpler had they used simple stubs > > to interface with the O/S. ) > > > > I think our todo in both cases will be: > > > > 1. See if our upline can support a version() statement that can be used to > > compare against __FreeBSD_version or failing that a major.minor version > > number, or > > > > 2. Replacing the direct D calls of stat() and fstat() with calls to a stub > > written in C or C++. This too can only be sustainably provided by our > > upline. > > > > 3. Failing 1 and 2 above, the makefile changes and patches to both ports > > will be inelegant hacks at best. > > > > I'll be checking for your bug report ( > https://issues.dlang.org/show_bug.cgi?id=17596. Maybe they implement > version feature before of 12-RELEASE. Btw I think 3 is the best option > currently. In the interim, yes, however in the long term dlang.org should consider the other options. I've opened a ticket with dlang.org and am working with them to resolve this. Their implementation is certainly not easily portable. -- Cheers, Cy Schubert FreeBSD UNIX: Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few.