Hello Marcin,
It looks like you are hitting the 64K limit that Jody experienced in his
previous attempt to make 'busyelks', so the splitting in 3 executables...
ELKS does not support dynamic linking.
Even with that linking, the IA16 architecture could not break the 64K
limit without 'magic' tricks like 'far' pointers, segmentation in 286
protected mode, external MMU, etc, that are definitively not in today
scope of ELKS.
On-line linking could appear as a good idea on the paper or in modern 4
GHz emulators, but on real & antic HW with slow disk I/O, it merely does
not work (or maybe with a very big coffee mug ?). I am not even talking
of embedded systems...
LD86 was part of the DEV86 set that we dropped some months ago, for some
very very good reasons.
Welcome to the "small is beautiful" world, where ELKS contributors have
to write compact & efficient C code :-) !
Thanks,
MFLD
Le 11/02/2020 à 14:37, Marcin Laszewski a écrit :
Hello Marc,
The current size of 'busyelks' is approaching to 64kB.
As I know ELKS does not support 'dynamic libraries', but what about
on-line static linking?
We can keep 'main.o' file, link it on-line with the appropriate
'plugins' (eg. dirname.o, basename.o, du.o, ...) statically and run.
Look at the attached piece of code - there is an exmple of this idea
for Debian/Linux.
The only problem: there is no linker working in ELKS system.
ia16-elf-ld is too large. Can we adopt ld86?
ml.