[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] LDG guide



On 28/11/2012 22:18, Eero Tamminen wrote:
"Yeah kids, mintlib is huge and bloated in combination with ineffective
a.out format."

This is true.

a.out format makes only few bytes difference for a linked program
which is stripped.

You are speaking about the a.out _executable_ format. And you are right.

MiKRO is speaking about the a.out _object file_ format. Unlike ELF, this object file format does not allow Function Level Linking. As MiKRO explained, with a.out object files, this means that if you need a single function from a file, then the linker needs to include the whole file. The obvious solution is to put one public function per file in a library. The MiNTLib does that for most files, anyway.

Another area where a.out object files behaves poorly is C++. Especially with templates, inlines, etc.

MiNTlib using binaries are larger because MiNTlib
has more features than the other libraries.

True. Even if the MiNTLib is bloated, it has unique functionalities.

MiNTlib supports both TOS and MiNT (including a lot of Unix features)
and each piece of functionality isn't fully isolated, they leverage each
other.  Therefore, when linked to a binary, they can also bring to it some
extra functionality that wouldn't necessarily be needed by the application.

True. But maybe the MiNTLib could be reorganized a bit so a simple Hello World would not result into a 100 kB executable.

--
Vincent Rivière