#define SHF_DISCARD 0x800
would work.
H.J.
It is different since stripping debugging information is controlled
by a linker switch. The new section attribute will make section
to be discarded regardless any linker switch.
>
> So if you want to propose a solution for that, I think you should
> consider how it can be used for debugging information as well. And I
> don't think SHF_DISCARD is a good name. We don't want to arbitrarily
> discard the data, we want to discard it in certain specific scenarios.
It is just a way to make a section to be discarded for executable
and DSO. I am not sure if you want to mark debugging information to
be discarded unless you mean a switch which will ignore the new
attribute so that such debugging information won't be discarded.
You should mark a section with SHF_DISCARD only if such a section
will be removed during final link in all scenarios.
H.J.
We invented:
#define SHF_EXCLUDE 0x80000000
a long time ago, which is applied to some sections within relocatable
objects. Sections tagged with this flag are removed from any final
object (executables of .so's).
This probably should have followed a SHF_SUNW_ conversion, but this
was invented long before we thought about OS specific flags.
SHF_EXCLUDE
This section is excluded from input to the link-edit of an executable
or shared object. This flag is ignored if the SHF_ALLOC flag is also
set, or if relocations exist against the section.
--
Rod.
It looks like SHF_EXCLUDE is exactly what I am looking for. How useful
is it in your experiences?
Thanks.
> It looks like SHF_EXCLUDE is exactly what I am looking for. How useful
> is it in your experiences?
As far as I can tell, this was introduced with the SYSTEM V APPLICATION
BINARY INTERFACE for the PowerPC Processor Supplement back in
September 1995 :-)
Then the Fortran folks got a hold of it for adding some specific sections
that they didn't want added to the final output file.
Whether it's being used today by any of our compiler components I don't
know. I'll put some feelers out.
--
Rod.
Our compiler folks tell me that they can create optimization (.annotate)
sections that are used during the compilation process, but are expected
to be excluded from the final executable or shared object, and that these
sections are being tagged SHF_EXCLUDE.
--
Rod.