blackmagic-debug / blackmagic

In application debugger for ARM Cortex microcontrollers.
GNU General Public License v3.0
3.19k stars 763 forks source link

Error on running `make` in root dir #179

Closed paramaggarwal closed 7 years ago

paramaggarwal commented 7 years ago

I cloned the repo and then ran make in root directory. I am getting this error consistently. Please help.

target/adiv5.c: In function 'adiv5_dp_init':
target/adiv5.c:391:11: error: variable 'ctrlstat' might be clobbered by 'longjmp' or 'vfork' [-Werror=clobbered]
  uint32_t ctrlstat = 0;
           ^~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [adiv5.o] Error 1
make: *** [all] Error 2

I reverted the changes in this commit https://github.com/blacksphere/blackmagic/commit/08c9ab54d7f6b3af8cf4399b6ed355b7fafa1bfe from August 2016, and the warning/error stopped.

--

My toolchain (macOS Sierra):

$ arm-none-eabi-gcc -v
gcc version 6.2.1 20161205 (release) [ARM/embedded-6-branch revision 243739] (GNU Tools for ARM Embedded Processors) 

Complete logs:

$ make clean
  CLNHDR  include/libopencm3/efm32/efm32g/irq.json
  CLNHDR  include/libopencm3/efm32/efm32gg/irq.json
  CLNHDR  include/libopencm3/efm32/efm32lg/irq.json
  CLNHDR  include/libopencm3/efm32/efm32tg/irq.json
  CLNHDR  include/libopencm3/lm3s/irq.json
  CLNHDR  include/libopencm3/lpc13xx/irq.json
  CLNHDR  include/libopencm3/lpc17xx/irq.json
  CLNHDR  include/libopencm3/lpc43xx/m0/irq.json
  CLNHDR  include/libopencm3/lpc43xx/m4/irq.json
  CLNHDR  include/libopencm3/sam/3a/irq.json
  CLNHDR  include/libopencm3/sam/3n/irq.json
  CLNHDR  include/libopencm3/sam/3s/irq.json
  CLNHDR  include/libopencm3/sam/3u/irq.json
  CLNHDR  include/libopencm3/sam/3x/irq.json
  CLNHDR  include/libopencm3/stm32/f0/irq.json
  CLNHDR  include/libopencm3/stm32/f1/irq.json
  CLNHDR  include/libopencm3/stm32/f2/irq.json
  CLNHDR  include/libopencm3/stm32/f3/irq.json
  CLNHDR  include/libopencm3/stm32/f4/irq.json
  CLNHDR  include/libopencm3/stm32/l1/irq.json
  CLEAN   lib/stm32/f0
  CLEAN   lib/stm32/f1
  CLEAN   lib/stm32/f2
  CLEAN   lib/stm32/f3
  CLEAN   lib/stm32/f4
  CLEAN   lib/stm32/l1
  CLEAN   lib/lpc13xx
  CLEAN   lib/lpc17xx
  CLEAN   lib/lpc43xx/m4
  CLEAN   lib/lpc43xx/m0
  CLEAN   lib/lm3s
  CLEAN   lib/lm4f
  CLEAN   lib/efm32/efm32tg
  CLEAN   lib/efm32/efm32g
  CLEAN   lib/efm32/efm32lg
  CLEAN   lib/efm32/efm32gg
  CLEAN   lib/sam/3a
  CLEAN   lib/sam/3n
  CLEAN   lib/sam/3s
  CLEAN   lib/sam/3u
  CLEAN   lib/sam/3x
  CLEAN   doc
  CLEAN
$ make
  GENHDR  include/libopencm3/efm32/efm32g/irq.json
  GENHDR  include/libopencm3/efm32/efm32gg/irq.json
  GENHDR  include/libopencm3/efm32/efm32lg/irq.json
  GENHDR  include/libopencm3/efm32/efm32tg/irq.json
  GENHDR  include/libopencm3/lm3s/irq.json
  GENHDR  include/libopencm3/lpc13xx/irq.json
  GENHDR  include/libopencm3/lpc17xx/irq.json
  GENHDR  include/libopencm3/lpc43xx/m0/irq.json
  GENHDR  include/libopencm3/lpc43xx/m4/irq.json
  GENHDR  include/libopencm3/sam/3a/irq.json
  GENHDR  include/libopencm3/sam/3n/irq.json
  GENHDR  include/libopencm3/sam/3s/irq.json
  GENHDR  include/libopencm3/sam/3u/irq.json
  GENHDR  include/libopencm3/sam/3x/irq.json
  GENHDR  include/libopencm3/stm32/f0/irq.json
  GENHDR  include/libopencm3/stm32/f1/irq.json
  GENHDR  include/libopencm3/stm32/f2/irq.json
  GENHDR  include/libopencm3/stm32/f3/irq.json
  GENHDR  include/libopencm3/stm32/f4/irq.json
  GENHDR  include/libopencm3/stm32/l1/irq.json
  BUILD   lib/stm32/f0
  CP      libopencm3_stm32f0.ld
  CC      flash.c
  CC      rcc.c
  CC      usart.c
  CC      dma.c
  CC      rtc.c
  CC      comparator.c
  CC      crc.c
  CC      dac.c
  CC      i2c.c
  CC      iwdg.c
  CC      pwr.c
  CC      gpio.c
  CC      timer.c
  CC      adc.c
  CC      gpio_common_all.c
  CC      gpio_common_f0234.c
  CC      crc_common_all.c
  CC      pwr_common_all.c
  CC      iwdg_common_all.c
  CC      rtc_common_l1f024.c
  CC      dma_common_l1f013.c
  CC      exti_common_all.c
  CC      spi_common_all.c
  CC      spi_common_f03.c
  CC      flash_common_f01.c
  CC      dac_common_all.c
  CC      timer_common_all.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_stm32f0.a
  BUILD   lib/stm32/f1
  CP      libopencm3_stm32f1.ld
  CC      adc.c
  CC      adc_common_v1.c
  CC      can.c
  CC      desig.c
  CC      ethernet.c
  CC      flash.c
  CC      gpio.c
  CC      rcc.c
  CC      rtc.c
  CC      timer.c
  CC      crc_common_all.c
  CC      dac_common_all.c
  CC      dma_common_l1f013.c
  CC      gpio_common_all.c
  CC      i2c_common_all.c
  CC      iwdg_common_all.c
  CC      pwr_common_all.c
  CC      spi_common_all.c
  CC      spi_common_l1f124.c
  CC      timer_common_all.c
  CC      usart_common_all.c
  CC      usart_common_f124.c
  CC      rcc_common_all.c
  CC      exti_common_all.c
  CC      flash_common_f01.c
  CC      usb.c
  CC      usb_control.c
  CC      usb_standard.c
  CC      usb_f103.c
  CC      usb_f107.c
  CC      usb_fx07_common.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_stm32f1.a
  BUILD   lib/stm32/f2
  CP      libopencm3_stm32f2.ld
  CC      gpio.c
  CC      rcc.c
  CC      crc_common_all.c
  CC      dac_common_all.c
  CC      dma_common_f24.c
  CC      gpio_common_all.c
  CC      gpio_common_f0234.c
  CC      i2c_common_all.c
  CC      iwdg_common_all.c
  CC      rtc_common_l1f024.c
  CC      spi_common_all.c
  CC      spi_common_l1f124.c
  CC      timer_common_all.c
  CC      timer_common_f234.c
  CC      timer_common_f24.c
  CC      usart_common_all.c
  CC      usart_common_f124.c
  CC      flash_common_f234.c
  CC      flash_common_f24.c
  CC      hash_common_f24.c
  CC      crypto_common_f24.c
  CC      exti_common_all.c
  CC      rcc_common_all.c
  CC      usb.c
  CC      usb_standard.c
  CC      usb_control.c
  CC      usb_fx07_common.c
  CC      usb_f107.c
  CC      usb_f207.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_stm32f2.a
  BUILD   lib/stm32/f3
  CP      libopencm3_stm32f3.ld
  CC      rcc.c
  CC      gpio.c
  CC      adc.c
  CC      i2c.c
  CC      usart.c
  CC      dma.c
  CC      flash.c
  CC      gpio_common_all.c
  CC      gpio_common_f0234.c
  CC      dac_common_all.c
  CC      usart_common_all.c
  CC      crc_common_all.c
  CC      iwdg_common_all.c
  CC      spi_common_all.c
  CC      dma_common_l1f013.c
  CC      timer_common_all.c
  CC      timer_common_f234.c
  CC      flash_common_f234.c
  CC      exti_common_all.c
  CC      rcc_common_all.c
  CC      spi_common_f03.c
  CC      usb.c
  CC      usb_control.c
  CC      usb_standard.c
  CC      usb_f103.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_stm32f3.a
  BUILD   lib/stm32/f4
  CP      libopencm3_stm32f4.ld
  CC      adc.c
  CC      adc_common_v1.c
  CC      can.c
  CC      gpio.c
  CC      pwr.c
  CC      rcc.c
  CC      rtc.c
  CC      crypto.c
  CC      crc_common_all.c
  CC      dac_common_all.c
  CC      dma_common_f24.c
  CC      gpio_common_all.c
  CC      gpio_common_f0234.c
  CC      i2c_common_all.c
  CC      iwdg_common_all.c
  CC      pwr_common_all.c
  CC      rtc_common_l1f024.c
  CC      spi_common_all.c
  CC      spi_common_l1f124.c
  CC      timer_common_all.c
  CC      timer_common_f234.c
  CC      timer_common_f24.c
  CC      usart_common_all.c
  CC      usart_common_f124.c
  CC      flash_common_f234.c
  CC      flash_common_f24.c
  CC      hash_common_f24.c
  CC      crypto_common_f24.c
  CC      exti_common_all.c
  CC      rcc_common_all.c
  CC      usb.c
  CC      usb_standard.c
  CC      usb_control.c
  CC      usb_fx07_common.c
  CC      usb_f107.c
  CC      usb_f207.c
  CC      mac.c
  CC      phy.c
  CC      mac_stm32fxx7.c
  CC      phy_ksz8051mll.c
  CC      fmc.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_stm32f4.a
  BUILD   lib/stm32/l1
  CP      libopencm3_stm32l1.ld
  CC      crc.c
  CC      desig.c
  CC      flash.c
  CC      rcc.c
  CC      usart.c
  CC      dma.c
  CC      lcd.c
  CC      crc_common_all.c
  CC      dac_common_all.c
  CC      dma_common_l1f013.c
  CC      gpio_common_all.c
  CC      gpio_common_f0234.c
  CC      i2c_common_all.c
  CC      iwdg_common_all.c
  CC      pwr_common_all.c
  CC      pwr.c
  CC      rtc_common_l1f024.c
  CC      spi_common_all.c
  CC      spi_common_l1f124.c
  CC      timer_common_all.c
  CC      usart_common_all.c
  CC      usart_common_f124.c
  CC      exti_common_all.c
  CC      rcc_common_all.c
  CC      usb.c
  CC      usb_control.c
  CC      usb_standard.c
  CC      usb_f103.c
  CC      adc.c
  CC      adc_common_v1.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_stm32l1.a
  BUILD   lib/lpc13xx
  CP      libopencm3_lpc13xx.ld
  CC      gpio.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_lpc13xx.a
  BUILD   lib/lpc17xx
  CP      libopencm3_lpc17xx.ld
  CC      gpio.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_lpc17xx.a
  BUILD   lib/lpc43xx/m4
  CP      libopencm3_lpc43xx.ld
  CC      gpio.c
  CC      scu.c
  CC      i2c.c
  CC      ssp.c
  CC      uart.c
  CC      timer.c
  CC      ipc.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_lpc43xx.a
  BUILD   lib/lpc43xx/m0
  CP      libopencm3_lpc43xx_m0.ld
  CC      gpio.c
  CC      scu.c
  CC      i2c.c
  CC      ssp.c
  CC      uart.c
  CC      timer.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_lpc43xx_m0.a
  BUILD   lib/lm3s
  CP      libopencm3_lm3s.ld
  CC      gpio.c
  CC      vector.c
  CC      assert.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_lm3s.a
  BUILD   lib/lm4f
  CP      libopencm3_lm4f.ld
  CC      gpio.c
  CC      vector.c
  CC      assert.c
  CC      systemcontrol.c
  CC      rcc.c
  CC      uart.c
  CC      usb_lm4f.c
  CC      usb.c
  CC      usb_control.c
  CC      usb_standard.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_lm4f.a
  BUILD   lib/efm32/efm32tg
  CP      libopencm3_efm32tg.ld
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_efm32tg.a
  BUILD   lib/efm32/efm32g
  CP      libopencm3_efm32g.ld
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_efm32g.a
  BUILD   lib/efm32/efm32lg
  CP      libopencm3_efm32lg.ld
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_efm32lg.a
  BUILD   lib/efm32/efm32gg
  CP      libopencm3_efm32gg.ld
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_efm32gg.a
  BUILD   lib/sam/3a
  CP      libopencm3_sam3a.ld
  CC      gpio.c
  CC      pmc.c
  CC      usart.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_sam3a.a
  BUILD   lib/sam/3n
  CP      libopencm3_sam3n.ld
  CC      gpio.c
  CC      pmc.c
  CC      usart.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_sam3n.a
  BUILD   lib/sam/3s
  CP      libopencm3_sam3s.ld
  CC      gpio.c
  CC      pmc.c
  CC      usart.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_sam3s.a
  BUILD   lib/sam/3u
  CP      libopencm3_sam3u.ld
  CC      gpio.c
  CC      pmc.c
  CC      usart.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_sam3u.a
  BUILD   lib/sam/3x
  CP      libopencm3_sam3x.ld
  CC      gpio.c
  CC      pmc.c
  CC      usart.c
  CC      vector.c
  CC      systick.c
  CC      scb.c
  CC      nvic.c
  CC      assert.c
  CC      sync.c
  CC      dwt.c
  AR      libopencm3_sam3x.a
  GIT     include/version.h
  CC      target/adiv5.c
target/adiv5.c: In function 'adiv5_dp_init':
target/adiv5.c:391:11: error: variable 'ctrlstat' might be clobbered by 'longjmp' or 'vfork' [-Werror=clobbered]
  uint32_t ctrlstat = 0;
           ^~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [adiv5.o] Error 1
make: *** [all] Error 2
$ arm-none-eabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-eabi-gcc
COLLECT_LTO_WRAPPER=/usr/local/Caskroom/gcc-arm-embedded/6_2-2016q4,20161216/gcc-arm-none-eabi-6_2-2016q4/bin/../lib/gcc/arm-none-eabi/6.2.1/lto-wrapper
Target: arm-none-eabi
Configured with: /tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/src/gcc/configure --target=arm-none-eabi --prefix=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/install-native --libexecdir=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/install-native/lib --infodir=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/install-native/arm-none-eabi --build=x86_64-apple-darwin10 --host=x86_64-apple-darwin10 --with-gmp=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/build-native/host-libs/usr --with-mpfr=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/build-native/host-libs/usr --with-mpc=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/build-native/host-libs/usr --with-isl=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/build-native/host-libs/usr --with-libelf=/tmp/jenkins-GCC-6-build_build-toolchain-mac-93_20161216_1481890191/build-native/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-lstdc++ -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors' --with-multilib-list=rmprofile
Thread model: single
gcc version 6.2.1 20161205 (release) [ARM/embedded-6-branch revision 243739] (GNU Tools for ARM Embedded Processors) 
fcgdam commented 7 years ago

I'm also having this issue on Linux and with the latest ARM toolchain version.

The error is the same.

paramaggarwal commented 7 years ago

@fcgdam You can go around this meanwhile by removing the -Werror parameter in this line: https://github.com/blacksphere/blackmagic/blob/master/src/Makefile#L13

fcgdam commented 7 years ago

Confirmed. It works now and outputs the firmware. Thanks.

paramaggarwal commented 7 years ago

I have documented some steps here: https://www.hackster.io/paramaggarwal/converting-an-stm32f103-board-to-a-black-magic-probe-e701d4

paramaggarwal commented 7 years ago

Thanks @gsmcmullin.