Size of crosscompiled exectuable

Nathan Hüsken nathan.huesken at
Sat Jan 26 11:07:22 CET 2013

On 01/26/2013 09:24 AM, Nathan Hüsken wrote:
> On 01/25/2013 05:45 PM, Simon Marlow wrote:
>> On 25/01/13 16:35, Simon Marlow wrote:
>>> On 25/01/13 15:51, Stephen Paul Weber wrote:
>>>> Somebody claiming to be Simon Marlow wrote:
>>>>> On 25/01/13 13:58, Nathan Hüsken wrote:
>>>>>> A simple hello world application has 1Mb in by 64 bit ubunut machine.
>>>>>> When I stript it, is has about 750kb.
>>>>>> When I build a cross compiler for android (arm), the executable has a
>>>>>> asize of about 10MB, stripped about 5MB.
>>>>>> That is huge, five times the size on my linux sysem.
>>>>> Not sure what you mean by "five times the size on my linux system".
>>>>> What is 5 times larger than what?
>>>> He's saying that the size of the android executable (made by his cross
>>>> compiler) is five time the sive of the equivalent Ubuntu executable
>>>> (made by, I assume, his system's GHC).
> Yes, exactly. Sorry for my bad phrasing.
>>>> The problem is not the size, but the size ratio.
>>> Ah, I see.  Yes, my executables are a similar size.  I'm not sure why,
>>> I'll try to look into it.
>> It's just the lack of SPLIT_OBJS.  Also, unregisterised accounts for a
>> factor of 1.5 or so.
> What exactly does SPLIT_OBJS do? Is there a chance to get it working for
> cross platform?
> There must be a lot of unused code in the exectuable. Is there no way to
> remove it?
> 5 Mb is rather large for an android app.

Maybe it would help to pass parameters like "-adce" or "-globaldce" to
opt (from llvm).
But I can not figure out how I can tell ghc to pass these parameters.
Someone knows?


More information about the Glasgow-haskell-users mailing list