Does gcc have any options to add version info in ELF binary file?

Lane picture Lane · May 3, 2013 · Viewed 11.9k times · Source

I mean whether gcc can insert some source code version infor into ELF binary as section or something similar. I do not want to change my source file, but add some info with gcc option in Makefile.

Answer

Keith Thompson picture Keith Thompson · May 3, 2013

If you don't mind changing your source file just once, add something like this:

const volatile static char version[] = VERSION;

and compile with:

gcc -c -DVERSION='"1.2.3"'

The volatile keeps gcc from removing the string at higher optimization levels.

As written, this won't compile if you forget the -D option, which may be either good or bad depending on your requirements.