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