-
-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make kernel not to use boost program_options library #1014
Comments
I think dropping boost program_options should also be done for cpiod (see issue #980), not just in the main kernel. |
I did look at this again and measured the size impact of boost spirit QI and it seems to increase the size of |
Please note that using |
…tions This patch changes loader.cc to use light options utility instead of boost program options. This patch partially addresses cloudius-systems#1014 and together with one of the previous patches sent to update core/commands.cc to remove boost program options, fully addresses cloudius-systems#1014. Signed-off-by: Waldemar Kozaczuk <[email protected]>
…tions This patch changes loader.cc to use light options utility instead of boost program options. This patch partially addresses #1014 and together with one of the previous patches sent to update core/commands.cc to remove boost program options, fully addresses #1014. Signed-off-by: Waldemar Kozaczuk <[email protected]> Message-Id: <[email protected]>
This patch partially addresses #1014 and removes usage of boost program_options library in core/commands.cc. More specifically it reimplements handling of runscript options: '--env=VAR=abc' by using simple logic to detect and parse individual argv elements. In order to fully address #1014 we also need to modify loader.cc to not use program options. Signed-off-by: Waldemar Kozaczuk <[email protected]> Message-Id: <[email protected]>
All the 3 commits referencing this issue have addressed this issue so I am closing it. |
OSv kernel uses following parts of boost libraries:
Unlike boost C++ templates that are used in many places of code and provide critical functionality that would be hard to replace with something hand-written, program options is only used by loader.cc and core/commands.cc and given its substantial size it is desirable to either replace it with something smaller or somehow make use of this library optional. Based on some experiments involving removing programs options completely from kernels it was shown that resulting loader-stripped.elf becomes smaller by 500-600K.
The solution I am proposing is hybrid:
Please note that parse_command_line() is called by loader.cc after VFS is fully setup so nothing prevents us from loading commands.so from filesystem.
The text was updated successfully, but these errors were encountered: