iphone + LDC, a new ARM adventure

Xavier Bigand flamaros.xavier at gmail.com
Wed Feb 5 10:58:42 PST 2014


Le 05/02/2014 08:32, Dan Olson a écrit :
>> Or maybe the next step is to rebuild phobos using the ldc/llc two phase
>> approach.
>
> Success building phobos this way and was able to writeln() to the Xcode
> console from iPhone 4.  Again, druntime rt_init() and D functions are
> called by the iOS app's C main (not using dmain2 main).
>
> In the process, I discovered that std.stdio was uninitialized because
> module constructors are not being called by rt_init().  Something in the
> runtime sections OSX code that does not work for iOS.  Oh, well, add to
> the todo list.  However, found I could manually initialize std.stdio
> with std_stdio_static_this().
>
> --- dfun.d ---
> import std.stdio;
>
> extern(C) void std_stdio_static_this();
>
> extern(C) int dfun()
> {
>      // static this in std.stdiobase isn't it called automatically? Need to
>      // figure it out.  In meantime, just do it!
>      std_stdio_static_this();
>
>      writeln("Hello phobos");
>      return 2014;
> }
>
> All the LEGO blocks are there in ldc to build a D toolchain for iOS.
> Over the next few weeks I will put up stuff on github along with a todo
> list.  I am not very good with Xcode so any thoughts on how to integrate
> would be nice.
>
> The tolist will look something like:
> - fix module ctors/dtors
> - version info for iOS (now using OSX && ARM, but not sure that makes
>     sense?  Use darwin && ARM?, or create new IOS version?)
> - exception support
> - thread support
> - tls support
> - run (and pass) unittests
> - figure out ldc codegen assertion errors for armv7/thumbv7 so can ditch
>     the ldc/llc 2-phase approach.
>
> that is enough for now.
>
Really great news...

Thx for all your efforts.


More information about the digitalmars-d-ldc mailing list