David,

My point was that we don't need in fine grained selection of elf
sections on strip - three options are enough.

> Why does full strip + copy-all + zip make no sense? It is exactly what
> we do with embedded builds. (Naturally you have to copy before you
> strip)

Sorry! it should be: full strip + copy-none + zip

-Dmitry

On 2014-03-21 15:13, David Holmes wrote:
> On 21/03/2014 7:36 PM, Dmitry Samersoff wrote:
>> David,
>>
>> In practice, we don't have to much to keep internally.
>>
>> There are no reason to copy out some of .debug_* sections but keep other
>> ones.
> 
> I'm not familiar with exactly what the different strip options do but
> the point is this is covered by the strip-policy.
> 
>> So we have a matrix:
>>
>> (a) Strip mode:
>>
>> 1. full
>> 2. keep symbols
>> 3. keep symbols and .debug_*
>>
>>
>> (b) Copy mode:
>>
>> 1. Copy all to ext file
>> 2. Copy none to ext file
>>
>>
>> (c) Compression mode:
>>
>> 1. none
>> 2. per-section compression, SHF_GNU_COMPRESSED [1]
>> 3. zip entire file
>>
>> Where
>>    *a2 + b2 + c2* have perfect sense,
> 
> So now your compression mode may apply to either the external file or
> the original? That's even more permutations.
> 
>>    *a1 + b1 + c3* have no sense etc.
> 
> Why does full strip + copy-all + zip make no sense? It is exactly what
> we do with embedded builds. (Naturally you have to copy before you strip)
> 
> David
> -----
> 
>>
>> -Dmitry
>>
>>
>> Refs:
>> 1.
>> https://sourceware.org/bugzilla/show_bug.cgi?id=11819
>> http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01780.html
>>
>>
>> -Dmitry
>>
>> On 2014-03-21 12:57, David Holmes wrote:
>>> On 21/03/2014 6:14 PM, Magnus Ihse Bursie wrote:
>>>>
>>>>> I don't think this quite works as there are other variations not
>>>>> captured here. Rather than "zipped" it should just be "external".
>>>>> Whether the debuginfo files are zipped or not is then an additional
>>>>> build time option. Additionally we still have to be able to control
>>>>> the degree of stripping th
> *Subject:* Fwd: Re: Compute sizes of classes loat is carried out. It doesn't 
> make sense to
>>>>> me to try and enumerate all possible combinations as top-level
>>>>> configure options.
>>>>>
>>>>> Further, as Dan was saying, this doesn't capture the overlap between
>>>>> "internal" and "external" because we still leave some symbols internal
>>>>> even when creating the debuginfo file.
>>>>>
>>>>> So I don't think this proposed categorization works. We still have
>>>>> three aspects:
>>>>> - generating symbols into the object files
>>>>> - stripping symbols from the final binaries
>>>>> - saving symbols into an external form
>>>>>
>>>>> Each of which can potentally be varied (of course if you don't
>>>>> generate symbols in the obj files stripping and saving are non
>>>>> issues).
>>>>
>>>> But they are not independent on each other!
>>>>
>>>> Unless you generate debug symbols, you can't strip them, nor save them
>>>> elsewhere. So generating debug symbols (your item #1) is a prerequisite
>>>> for the rest of your items.
>>>
>>> Yes I just said that. :)
>>>
>>>> And while, technically, you can save symbols externally, and at the
>>>> same
>>>> time keep them in the binary, that does not make sense. So, in a
>>>> practical sense, you are going to do #2 if you are going to do #3.
>>>
>>> But you can vary what is kept internally independent of what is made
>>> external.
>>>
>>>> And you can't zip external symbols unless you create a non-zipped
>>>> version. And if you zip them, it does not make sense to keep the
>>>> non-zipped version.
>>>
>>> zip vs non-zip is just an issue of disk space. It is not a fundamental
>>> configuration choice, just a variation on how external symbols are
>>> packaged.
>>>
>>>> And yes, we do not strip all debug information when creating external
>>>> debug info. But there seems to be no real use case (not even for
>>>> IcedTea, as it turned out) to want a completely stripped binary, I
>>>> don't
>>>> think that's worth discussing much. That's just part of how the
>>>> external
>>>> debuginfo scheme works.
>>>
>>> Umm we fully strip all our binaries in embedded.
>>>
>>>> Can you give a more concrete example of the variations of your
>>>> "aspects"
>>>> that you think my suggested solution would not capture?
>>>
>>> I think I already have. There aren't tree simple choices here, there are
>>> three aspects, each of which could have different variants.
>>>
>>> If I could draw a flow chart easily I would but basically if you
>>> generate debug symbols you can then select what symbols are kept
>>> internally (the strip policy) and what are put externally (objcopy
>>> options), then for the external symbol file you can choose zipped or
>>> unzipped.
>>>
>>> Multiple inter-connected choices, not just three (or four if you add
>>> zipped)
>>>
>>> David
>>>
>>>> /Magnus
>>
>>


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the source code.

Reply via email to