svn commit: r445203 - head/lang/ldc

Alonso Cárdenas Márquez acm at freebsd.org
Sun Jul 16 18:57:59 UTC 2017


2017-07-07 1:38 GMT-05:00 Cy Schubert <Cy.Schubert at komquats.com>:

>
>
> 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


> 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. <sigh> )
>
> 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.

Geetings
ACM


More information about the svn-ports-all mailing list