iphone + LDC, a new ARM adventure

Szymon Gatner noemail at gmail.com
Wed Feb 5 00:24:47 PST 2014


On Wednesday, 5 February 2014 at 07:32:05 UTC, Dan Olson wrote:
>> 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.

Great to see such progress!


More information about the digitalmars-d-ldc mailing list