On 18/11/2016 10:33 PM, unDEFER wrote:
Hello, again!
I'm long have thought and have decided to try to do the next thing:
I'm trying to list "/" of cygwin environment with the next code:

===============================
import std.stdio;
import cygwin.std.file;

void main()
{
        foreach (string name; dirEntries("/", SpanMode.shallow))
        {
                writefln(name);
        }
}
===============================

Where cygwin.std.file is std.file copied to cygwin directory with
replacement "version (Windows)" to "version (WindowsNotWindows)",
"version (Posix)"/"version(linux)"/"version(CRuntime_Glibc)" to "version
(Windows)". Also I have copied all dependencies core.sys.posix to cygwin
directory with the same replacement.

I think that cygwin defines all posix functions, so the Posix code of D
must works under Windows with cygwin libraries.
But now I have the next linker error:

===============================
$ dmd try.d
OPTLINK (R) for Win32  Release 8.00.17
Copyright (C) Digital Mars 1989-2013  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
try.obj(try)
 Error 42: Symbol Undefined
_D6cygwin3std4file10dirEntriesFAyaE6cygwin3std4file8SpanModebZS6cygwin3std4file11DirIterator

try.obj(try)
 Error 42: Symbol Undefined _D6cygwin3std4file8DirEntry4nameMxFNaNbNdZAya
try.obj(try)
 Error 42: Symbol Undefined _D6cygwin3std4file11DirIterator8popFrontMFZv
try.obj(try)
 Error 42: Symbol Undefined _D6cygwin3std4file11DirIterator5emptyMFNdZb
try.obj(try)
 Error 42: Symbol Undefined
_D6cygwin3std4file11DirIterator5frontMFNdZS6cygwin3std4file8DirEntry
try.obj(try)
 Error 42: Symbol Undefined
_D6cygwin3std4file11DirIterator11__fieldDtorMFZv
try.obj(try)
 Error 42: Symbol Undefined _D6cygwin3std4file12__ModuleInfoZ
Error: linker exited with status 177865064
===============================

And looks like these functions is not POSIX functions which I can find
in cygwin-libraries. Any ideas?
How to correctly use CygWin under D?

Perhaps you should treat it as a port to a new platform.
So start with getting druntime going (which means recompiling it).

Reply via email to