How do I embed data into a Mac OS X mach-o binary file's TEXT Section?
Asked Answered
F

1

11

I have a Mac OS X command-line tool that would benefit from having some data embedded in the binary file itself.

I know mach-o files support multiple segments, some of which can be used for storing arbitrary data. But I can't find a command-line tool to do that.

While I know there are other, probably simpler ways (e.g. convert the data file into C source code and have it get linked in by gcc) to get the data into my binary this problem has piqued my interest. Anyone know the magic?

Fenderson answered 22/10, 2009 at 2:7 Comment(0)
H
14

The linker, ld, takes an argument -sectcreate.

From the man page,

 -sectcreate segname sectname file
             The section sectname in the segment segname is created from
             the contents of file file. The combination of segname and 
             sectname must be unique  there cannot already be a 
             section (segname,sectname) from any other input.

GCC also has a section attribute that can be applied to a variable to say that it belongs in a non-standard section.

Historical answered 22/10, 2009 at 5:47 Comment(1)
Doh. Obvious in retrospect. Thanks.Fenderson

© 2022 - 2024 — McMap. All rights reserved.