On 11/9/24 7:15 AM, Olivier Dion wrote:
Hi,

TLDR; Is there a way to embed a bytevector into a ELF section of a
compiled module (.go)?

I have a case where I want to generate bytevectors that follow an ABI
for event description of static tracepoints.  I would like this
bytevector to be put into a know ELF section of the compiled module so
that external tools can reference it by parsing the ELF file,
i.e. without running Guile.  I personnaly don't care about none-ELF
systems, so I'm fine if this solution is Linux only.

I guess this is similar to embedding something else like an audio/image
for a video game.

So, is there any way for adding section to the compiled ELF, something
along like:

  (embed-bytevector ".my_section"
          #vu8(bytes ...))

If not, I wonder if this is something that could be appreciated for
other users as well?

Thanks,
Olivier


You could look at `objcopy' to add a section to the .go file (outside of Guile).

Otherwise, dig into the code in share/guile/3.0/system/vm/elf.scm.

Matt


Reply via email to