diff options
author | Michal Ulianko <michal.ulianko@gmail.com> | 2015-03-19 19:50:05 +0100 |
---|---|---|
committer | Michal Ulianko <michal.ulianko@gmail.com> | 2015-03-19 19:50:05 +0100 |
commit | c5ae02deda839919841dee5c68db564c0b74c690 (patch) | |
tree | d186f044d17520ecfc57c7274f848ced3deeb9da /makefiles/toolchain_gnu-arm-eabi.mk | |
parent | b938f12ccb047114736e0baf10ab21e9b9d79522 (diff) | |
download | px4-firmware-c5ae02deda839919841dee5c68db564c0b74c690.tar.gz px4-firmware-c5ae02deda839919841dee5c68db564c0b74c690.tar.bz2 px4-firmware-c5ae02deda839919841dee5c68db564c0b74c690.zip |
Fix generating $3_len in BIN_TO_OBJ makefile function
Diffstat (limited to 'makefiles/toolchain_gnu-arm-eabi.mk')
-rw-r--r-- | makefiles/toolchain_gnu-arm-eabi.mk | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/makefiles/toolchain_gnu-arm-eabi.mk b/makefiles/toolchain_gnu-arm-eabi.mk index 2c5302812..93ee235c4 100644 --- a/makefiles/toolchain_gnu-arm-eabi.mk +++ b/makefiles/toolchain_gnu-arm-eabi.mk @@ -296,6 +296,9 @@ endef # # - compile an empty file to generate a suitable object file # - relink the object and insert the binary file +# - extract the length +# - create const unsigned $3_len with the extracted length as its value and compile it to an object file +# - link the two generated object files together # - edit symbol names to suit # # NOTE: exercise caution using this with absolute pathnames; it looks @@ -320,11 +323,14 @@ define BIN_TO_OBJ @$(MKDIR) -p $(dir $2) $(Q) $(ECHO) > $2.c $(call COMPILE,$2.c,$2.c.o) - $(Q) $(LD) -r -o $2 $2.c.o -b binary $1 + $(Q) $(LD) -r -o $2.bin.o $2.c.o -b binary $1 + $(Q) $(ECHO) "const unsigned int $3_len = 0x`$(NM) $2.bin.o | egrep $(call BIN_SYM_PREFIX,$1)_size$$ | cut -d' ' -f1`;" > $2.c + $(call COMPILE,$2.c,$2.c.o) + $(Q) $(LD) -r -o $2 $2.c.o $2.bin.o $(Q) $(OBJCOPY) $2 \ --redefine-sym $(call BIN_SYM_PREFIX,$1)_start=$3 \ - --redefine-sym $(call BIN_SYM_PREFIX,$1)_size=$3_len \ + --strip-symbol $(call BIN_SYM_PREFIX,$1)_size \ --strip-symbol $(call BIN_SYM_PREFIX,$1)_end \ --rename-section .data=.rodata - $(Q) $(REMOVE) $2.c $2.c.o + $(Q) $(REMOVE) $2.c $2.c.o $2.bin.o endef |