rsb and toolchain debug symbols
Michael Davidsaver
mdavidsaver at gmail.com
Sat Aug 29 16:17:28 UTC 2020
On 8/27/20 5:31 PM, Chris Johns wrote:
> On 28/8/20 5:39 am, Michael Davidsaver wrote:
>> Is there a way to ask RSB to either build the toolchain
>> (ie. gcc itself) without debug symbols, or to strip them
>> prior to install?
>
> Not at the moment but this would be a nice feature. I can see it being needed.
>
>>
>> https://github.com/mdavidsaver/rsb/releases/
>>
>> I keep a set of pre-built RTEMS pc*86 toolchains for use
>> by CI builders, principally travis-ci.org. In looking
>> at adding RTEMS 5.1 to this I noticed that the resulting
>> compressed tar was considerably larger that previously.
>> 4.9 or 4.10 for pc386 are ~100MB, while 5.1 for pc686
>> is weighing in at 380MB.
>>
>> Looking into it, most of this size seems to be in debug
>> symbols. eg. "libexec/gcc/i386-rtems5/7.5.0/cc1plus"
>> is (uncompressed) 166MB with debug symbols and 26MB without.
>
> That is a saving. The RSB could scan the tree of files before coping them to the
> install point and for any host executable run the host's `strip` command. I
> suppose we could also run it on any host archives if there is any easy way to
> detect them.
strip -d <prefix>/libexec/gcc/*/*/cc1*
strip -d <prefix>/bin/*
Gives ~50% reduction in compressed and uncompressed sizes without much effort.
> A tool chain also installs the various libc, libm, libstd++ etc libraries for
> the RTEMS architecture. With an expanding number multilibs in some architectures
> the number and so the overall size of those libraries is growing. I am not sure
> if we can do something about that. Stripping them would help but this leaves you
> with RTEMS executables that have no debugging info. Would that be an issue?
I'd prefer to keep debug symbols for target code.
>> Also, I installed the following packages to a clean
>> ubuntu 18.04.5 image in order to build. This release
>> doesn't install /usr/bin/python by default (just 'python3').
>> The GDB build seems to handle this just fine, but the
>> rtems-tools build errors when it can't run 'python'.
>
> This is a complex issue with no simple solution for users that we can see. I
> have raised a ticket for this against the 5.2 milestone:
>
> https://devel.rtems.org/ticket/4064
>
> We have been discussing this topic in:
>
> https://devel.rtems.org/ticket/4037
>
> The `waf` part of the discussion is relevant here. The RSB can be considered a
> "user" and so it needs to manage the lack of a `python` command.
>
>> bison
>> flex
>> texinfo
>> unzip
>> git
>> python3-dev
>> python-dev
>
> I do not think adding a check to `sb-check` is the answer, I think having the
> RSB invoke `waf` as `python3 waf ...` is the best solution but I need to teach
> it to do this.
>
> As a work around if you create a virtual environment to build the tools in using ...
>
> python3 -m venv rtems-rsb
> . ./rtems-rsb/bin/activate
>
> ... you should have a `python` command in your path. I consider this a work
> around to an RSB fix but it is something you can do now.
>
> I have added this documentation about this to the user manual on `master`, maybe
> it should be ported onto the 5 branch?
>
> Chris
>
More information about the users
mailing list