Writing a small linux binary

Paulo Pinto via Digitalmars-d digitalmars-d at puremagic.com
Mon Jan 12 01:35:33 PST 2015


On Monday, 12 January 2015 at 09:00:58 UTC, Iain Buclaw via 
Digitalmars-d wrote:
> On 12 January 2015 at 08:46, Mike via Digitalmars-d
> <digitalmars-d at puremagic.com> wrote:
>> On Monday, 12 January 2015 at 05:59:36 UTC, NVolcz wrote:
>>>
>>> Can this be done in D? How easy is it? What about the runtime?
>>>
>>>
>>> https://www.reddit.com/r/programming/comments/2s1sgg/151byte_static_linux_binary_in_rust/
>>>
>>
>> Here's a link to my 56 byte "Hello, World!" program for the 
>> ARM Cortex-M
>> platform in D.  And, if I only used the string "Hello!" like 
>> the rust
>> example, I believe it would be 47 bytes.
>>
>> http://goo.gl/qWhpVX
>>
>> Mike
>>
>
>
> Without performing any linker magic.
>
> root at f6e559d2d853:~# cat > small.d << EOF
> import core.stdc.stdio;
> import core.stdc.stdlib;
>
> extern(C) void main()
> {
>   printf("Hello!\n");
>   exit(0);
> }
> EOF
>
> root at f6e559d2d853:~# gdc -frelease -Os -nophoboslib
> -fno-emit-moduleinfo -nostdlib --entry=main small.d -lc -o small
>
> root at f6e559d2d853:~# wc -c small
> 2488 small
>
> root at f6e559d2d853:~# ./small
> Hello!

Would be considered linker magic to use _start(), write() and 
_exit() instead? :)

--
Paulo


More information about the Digitalmars-d mailing list