[ELFIO] - New library proposal

Hello Boost community! I'd like to determine interest in possible new library submission. ELFIO is header-only C++ library that provides a simple interface for reading and generating files in ELF binary format. It is a mature library and is in use by a number of open source and commercial projects. It is a part of some Linux distributions as well as Cygwin project. Would you please have a look at the library's home page located at: http://elfio.sourceforge.net Documentation: http://elfio.sourceforge.net/elfio.pdf Library download: http://sourceforge.net/projects/elfio/files/ELFIO-sources/ELFIO-3.1/ and its source code available through: http://github.com/serge1/ELFIO Please share your opinion on making this library be a part of the Boost. Thank you and Best regards, Serge

On 7 May 2015 at 23:43, Serge Lamikhov-Center wrote:
I'd like to determine interest in possible new library submission. ELFIO is header-only C++ library that provides a simple interface for reading and generating files in ELF binary format. It is a mature library and is in use by a number of open source and commercial projects. It is a part of some Linux distributions as well as Cygwin project. Please share your opinion on making this library be a part of the Boost.
Personally speaking, I'd be very interested in a library which provided a generic binary format parsing (and optionally generating) solution, one backend of which might be ELF. A purely ELF specific, non-generic library is perfectly useful, but for me personally probably not a great fit for the Boost libraries without having a highly generic and abstract API in front of it so code written against it need not know much about ELF. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/

2015-05-07 23:43 GMT+03:00 Serge Lamikhov-Center
Hello Boost community!
I'd like to determine interest in possible new library submission. ELFIO is header-only C++ library that provides a simple interface for reading and generating files in ELF binary format. It is a mature library and is in use by a number of open source and commercial projects. It is a part of some Linux distributions as well as Cygwin project.
<...>
Please share your opinion on making this library be a part of the Boost.
HI, I've been investigating this library a f. Unfortunately but only ELF -- Best regards, Antony Polukhin

2015-05-07 23:43 GMT+03:00 Serge Lamikhov-Center
Hello Boost community!
I'd like to determine interest in possible new library submission. ELFIO is header-only C++ library that provides a simple interface for reading and generating files in ELF binary format. It is a mature library and is in use by a number of open source and commercial projects. It is a part of some Linux distributions as well as Cygwin project.
<...>
Please share your opinion on making this library be a part of the Boost.
HI, I've been investigating this library a few months ago. Unfortunately it supports only ELF file format, while I needed support for PE file format too. I've ended up with writing a less functional but portable class: http://apolukhin.github.io/Boost.DLL/boost/dll/library_info.html ELFIO library is good. But I'd love to see this library extended to support PE and MACH-O formats before Boost review. Without that library scope seems limited. P.S.: sorry for previous mail, keyboard seems to be very attractive to baby. -- Best regards, Antony Polukhin

On 8 May 2015, at 19:20, Antony Polukhin
wrote: 2015-05-07 23:43 GMT+03:00 Serge Lamikhov-Center
: Hello Boost community!
I'd like to determine interest in possible new library submission. ELFIO is header-only C++ library that provides a simple interface for reading and generating files in ELF binary format. It is a mature library and is in use by a number of open source and commercial projects. It is a part of some Linux distributions as well as Cygwin project. <...>
Please share your opinion on making this library be a part of the Boost.
HI,
I've been investigating this library a few months ago. Unfortunately it supports only ELF file format, while I needed support for PE file format too. I've ended up with writing a less functional but portable class: http://apolukhin.github.io/Boost.DLL/boost/dll/library_info.html
ELFIO library is good. But I'd love to see this library extended to support PE and MACH-O formats before Boost review. Without that library scope seems limited.
P.S.: sorry for previous mail, keyboard seems to be very attractive to baby.
-- Best regards, Antony Polukhin
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Absolutely agree -and I'd suggest it's not too tricky once a suitable abstraction is established. Looking at the interface between libdwarf & libelf might be a good starting point - I found adding a PE loader to libdwarf using a translation of its interface to libelf was quite simple, as it wasn't Elf-specific. Stuart Dootson

On 8 May 2015, at 19:20, Antony Polukhin
wrote: ELFIO library is good. But I'd love to see this library extended to support PE and MACH-O formats before Boost review. Without that library scope seems limited.
Absolutely agree -and I'd suggest it's not too tricky once a suitable abstraction is established. Looking at the interface between libdwarf & libelf might be a good starting point - I found adding a PE loader to libdwarf using a translation of its interface to libelf was quite simple, as it wasn't Elf-specific.
Stuart Dootson
Personally speaking, I'd be very interested in a library which provided a generic binary format parsing (and optionally generating) solution, one backend of which might be ELF. A purely ELF specific, non-generic library is perfectly useful, but for me personally probably not a great fit for the Boost libraries without having a highly generic and abstract API in front of it so code written against it need not know much about ELF. Niall
Thank you for your feedback. I will try to come up with a generic API suitable for all ELF, PE, COFF, and MACH-O formats. After it is ready, I'll bring it to review again. Any contribution from the Boost community is welcomed. Is it a requirement that the new interface will be similar to one used in Antony's Boost.Dll? Thank you, Serge P.S. If you know a location, would you please send me link on MACH-O object and executable files examples. Serge

On 07/05/2015 21:43, Serge Lamikhov-Center wrote:
Hello Boost community!
I'd like to determine interest in possible new library submission. ELFIO is header-only C++ library that provides a simple interface for reading and generating files in ELF binary format. It is a mature library and is in use by a number of open source and commercial projects. It is a part of some Linux distributions as well as Cygwin project.
Would you please have a look at the library's home page located at: http://elfio.sourceforge.net
Documentation: http://elfio.sourceforge.net/elfio.pdf
Haven't been able to go through the whole documentation, so let me ask you this simple question: Does this library allow me to annotate assembly with files and line numbers if debug information is present in a relatively efficient way? I've had to reimplement that kind of thing in the past because solutions like calling addr2line for every address weren't fast enough.
participants (5)
-
Antony Polukhin
-
Mathias Gaunard
-
Niall Douglas
-
Serge Lamikhov-Center
-
Stuart Dootson