Compiling busybox to .s assembly file

walter harms wharms at bfs.de
Fri Feb 25 09:34:15 UTC 2011



Am 24.02.2011 19:42, schrieb Eric Schulte:
> walter harms <wharms at bfs.de> writes:
> 
>> Am 24.02.2011 18:17, schrieb Eric Schulte:
>>> Hello,
>>>
>>> I'm hoping to generate a compiled text asm file (gcc -S) of the busybox
>>> executable.  I've looked at scripts/showasm, but it uses objdump the
>>> output of which could not (easily) then be edited and linked to generate
>>> an executable.
>>>
>>> I've spend a good deal of time mucking around in the Makefile, but
>>> having never fully felt comfortable with Makefiles even in relatively
>>> simple cases, the busybox Makefile is largely opaque to me.
>>>
>>> If anyone can offer a suggestion, or point me in the right direction I
>>> will be very appreciative.  Once I get this working if there is any
>>> interest I would be happy to wrap it up in a script which could be
>>> included in scripts/ -- although I'm not sure that such functionality
>>> would be generally useful.
>>>
>>> Thanks -- Eric
>>>
>>
>> hi Eric,
>> i am not sure what you want to archive but --save-temps will keep all
>> tmp files including asm. (see: man 1 gcc)
>>
>> re,
>>  wh
>>
> 
> Hi Walter,
> 
> Adding "--save-temps" to the "CFLAGS := $(CFLAGS)" line in the Makefile
> has indeed left me with *many* .s files.  Now I just have to figure out
> how to link these .s files into an executable.
> 
> As for the purpose, I'm hoping to use evolutionary computation over the
> assembly code to automatically make changes to the busybox executable.
> This technique has been used successfully to fix bugs in a number of
> programs [1], I'd like to see if it can be used to do the same with
> busybox, or possibly to shrink the size of the busybox executable.
> 
> Thanks -- Eric
> 
> Footnotes: 
> [1]  http://epr.adaptive.cs.unm.edu/
> 

sound very interessting, i did this 20 year ago (not with programms but parameters).
an yes --save-temps will generate a lot of files but this is due to the build process
but it should give you a good starting point.

IMHO it should work to cat all *.c together and call gcc directly. I have to admit
that i never tried that.


re,
 wh








More information about the busybox mailing list