4 ms·
That’s neat - Borland C had the same thing with the `emit()` pseudo-function with their C89 compiler. I guess Borland’s compiler writers wanted it more than gcc
by CountSessine 4y ago
That’s neat - Borland C had the same thing with the `emit()` pseudo-function with their C89 compiler. I guess Borland’s compiler writers wanted it more than gcc’s?
- Gibbon1 4y agoConsider the difference between what a compiler does and say a video game or embedded firmware. Compilers are old school batch mode programs that import data from a file, parse it, transform it to something, and emit it as a file.
- panzi 4y agoYou can use ld to turn any file into an object file: ld -r -b binary -o foo_txt.o foo.txt foo_txt.o then has these symbols: extern const char _binary_foo_txt_start[]; extern const char _binary_foo_txt_end[]; extern const void *_binary_foo_txt_size; So you need to write your own declarations (it doesn't generate a header file). _binary_foo_txt_size is weird and has to be used as: (size_t)&_binary_foo_txt_size Or use (size_t)(_binary_foo_txt_end - _binary_foo_txt_start) instead.