This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: RFH: Annotating ELF binaries
- From: "Richard W.M. Jones" <rjones at redhat dot com>
- To: Development discussions related to Fedora <devel at lists dot fedoraproject dot org>
- Cc: libc-help at sourceware dot org, binutils at sourceware dot org
- Date: Fri, 4 Nov 2016 18:34:41 +0000
- Subject: Re: RFH: Annotating ELF binaries
- Authentication-results: sourceware.org; auth=none
- References: <87h97n5lvl.fsf@redhat.com>
On Fri, Nov 04, 2016 at 03:02:22PM +0000, Nick Clifton wrote:
> Hello Everyone,
>
> We (the tools team at Red Hat) are working on a project to add
> annotations to ELF binaries, so that we can answer various questions
> about them. We have set up a wiki page about the project here:
>
> https://fedoraproject.org/wiki/Toolchain/Watermark#Markup_for_ELF_objects
>
> We would very much like this to be something more than just an
> internal project, and so we are reaching out to you for your opinions,
> suggestions and advice. If you are interested in being able answer
> questions such as 'how was this function compiled ?' or 'is this
> library compatible with this application ?' then please take a minute
> to have a look at the proposal.
My only comment would be - don't assume that GCC (and LLVM) are
the only things which generate objects. Amongst others there are:
- ocamlopt
- GHC
- golang (or is it using LLVM?)
- raw assembler files
- scripts that use objcopy and other techniques to turn data into object files
I don't mean to say it's your responsibility to fix all these things,
but good, clear documentation about exactly what to change is needed.
This was missing at first when the execstack stuff was added years ago.
Also the hardening stuff often doesn't apply in safe languages, so the
tools you build around this shouldn't automatically assume
no hardening == bad; or that 'long double' or 'wchar_t' are meaningful.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages. http://libguestfs.org