Quantcast
Channel: Active questions tagged gcc - Stack Overflow
Viewing all articles
Browse latest Browse all 22088

Embed revision number in executable binary

$
0
0

I want to embed a git revision marker in my binary, but the linker appears to strip it away.

Makefile:

CPPFLAGS += -DREV=$(shell git describe)

file.c:

#define xstr(s) str(s)
#define str(s) #s
const char rev[]="rev[" xstr(REV) "]";

The marker is present in file.o:

$ strings file.o | grep rev
rev[v1.0.1-5-ga45db7f-dirty]
GCC: (15:7-2018-q2-6) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907]

But missing from file.elf:

$ strings file.elf | grep rev
GCC: (15:7-2018-q2-6) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907]
GCC: (15:7-2018-q2-5) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907]
GNU C11 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] -mthumb -march=armv6s-m -g -g -g -O2 -O2 -O2 -fbuilding-libgcc -fno-stack-protector -fno-inline -fvisibility=hidden
GNU C11 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] -mthumb -march=armv6s-m -g -g -g -O2 -O2 -O2 -fbuilding-libgcc -fno-stack-protector -fno-inline -fexceptions -fvisibility=hidden
GNU C11 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] -mthumb -march=armv6s-m -mthumb -march=armv6s-m -g -O2 -fno-builtin
prev_tzenv
LoopForever
prev_tzenv
.debug_abbrev

Linker command line:

arm-none-eabi-gcc -std=c99 -O3 -Wall -ffunction-sections -mcpu=cortex-m0 -mthumb -mfloat-abi=soft  -Tst/stm32f0xx-32-6.ld -Wl,-Map=dtc_main.map -Wl,--gc-sections  -specs=nano.specs -o file.elf file.o startup_stm32f0xx.o system_stm32f0xx.ao syscalls.o

Viewing all articles
Browse latest Browse all 22088

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>