XML Output: libxo - provide single API to output TXT, XML, JSON and HTML

John Baldwin jhb at freebsd.org
Thu Aug 14 16:07:14 UTC 2014


On Thursday, August 14, 2014 4:52:57 am Konstantin Belousov wrote:
> On Thu, Aug 14, 2014 at 02:06:33AM -0400, Phil Shafer wrote:
> > Konstantin Belousov writes:
> > >Yes, the notes are used to communicate the information required by
> > >the dynamic linker to correctly activate the image. The mechanism has
> > >nothing to do with application-specific features, and overloading it for
> > >that purpose is severe and pointless layering violation.
> > 
> > The ELF spec says:
> > 
> >     Note Section
> > 
> >     Sometimes a vendor or system builder needs to mark an object
> >     file with special information that other programs will check
> >     for conformance, compatibility, etc. Sections of type SHT_NOTE
> >     and program header elements of type PT_NOTE can be used for
> >     this purpose. The note information in sections and program
> >     header elements holds any number of entries, each of which is
> >     an array of 4-byte words in the format of the target processor.
> >     Labels appear below to help explain note information organization,
> >     but they are not part of the specification.
> ELF standard scope is about build toolchain and C runtime, where the
> cited paragraph makes perfect sense.

Agreed.

> > Marking the binary with a libxo-specific note tells the caller that
> > the binary is capable of rendering its output in a non-traditional
> > style and gives the caller a means of triggering those styles of
> > output.  In the libxo-enabled world, I see this as vital information
> > the caller needs to initialize the environment in which the command
> > will be run.  Isn't this exactly the sort of information ELF targets
> > for note sections?
> 
> How binary format has any relevance for an application level feature ?
> What would you do with the binaries which permissions are 'r-s--x--x',
> which is not unexpected for the tools which gather system information
> and have to access things like /dev/mem ?
> 
> You removed and did not answered a crusial question, which is a litmus
> test for your proposal.  Namely, how presence of the proposed note in
> the binary is different from DT_NEEDED tag for your library ?

Yes, checking DT_NEEDED for libxo.so is the first thing I thought of as well.  
It is equivalent to 'ldd foo | grep libxo'.

-- 
John Baldwin


More information about the freebsd-arch mailing list