Menu

#446 New compile error in debian docker container

0.11.0
new
nobody
None
2024-12-31
2024-12-31
No

Hi,
I am currently building OpenOCD in a fairly standard debian docker container. I am building the latest master rather than using 0.12.0 to get various bug fixes and updates.
It was all working fine a couple of days ago (20th December 13:12 UTC).
However, the next build after that (22nd December 02:49 UTC) had the following:

 > [stage-0 21/28] RUN ./bootstrap &&     ./configure &&     make &&     make install:
src/.libs/libopenocd.a(libocdjtagdrivers_la-dummy.o): in function `dummy_init':
/openocd/openocd/src/jtag/drivers/dummy.c:112: undefined reference to `bitbang_interface'
/usr/bin/ld: src/.libs/libopenocd.a(libocdjtagdrivers_la-dummy.o):(.data.rel+0x98): undefined reference to `bitbang_execute_queue'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:3219: src/openocd] Error 1
make[2]: Leaving directory '/openocd/openocd'
make[1]: *** [Makefile:4980: all-recursive] Error 1
make[1]: Leaving directory '/openocd/openocd'
make: *** [Makefile:2135: all] Error 2

I'm not sure if something has changed in openocd in between those times ?

Discussion

  • Andrew Shelley

    Andrew Shelley - 2024-12-31

    I also hit this last night after pulling latest master.

    I am building on Apple Silicon aarch64 and got a linker error that the bitbang methods were undefined for ARM64. I worked around it by enabling the broadcom (PI) bitbanger in configure to force inclusion of the bitbang source. I am a newbie to Open OCD and I didn't look further but suspect a dependancy issue in the bitbang source file configuring.

    OpenOCD configuration summary
    --------------------------------------------------
    MPSSE mode of FTDI based devices        yes (auto)
    ST-Link Programmer                      yes (auto)
    TI ICDI JTAG Programmer                 yes (auto)
    Keil ULINK JTAG Programmer              yes (auto)
    ANGIE Adapter                           yes (auto)
    Altera USB-Blaster II Compatible        yes (auto)
    Bitbang mode of FT232R based devices    yes (auto)
    Versaloon-Link JTAG Programmer          yes (auto)
    TI XDS110 Debug Probe                   yes (auto)
    CMSIS-DAP v2 Compliant Debugger         yes (auto)
    OSBDM (JTAG only) Programmer            yes (auto)
    eStick/opendous JTAG Programmer         yes (auto)
    Olimex ARM-JTAG-EW Programmer           yes (auto)
    Raisonance RLink JTAG Programmer        yes (auto)
    USBProg JTAG Programmer                 yes (auto)
    Espressif JTAG Programmer               yes (auto)
    CMSIS-DAP Compliant Debugger            yes (auto)
    Nu-Link Programmer                      yes (auto)
    Cypress KitProg Programmer              yes (auto)
    Altera USB-Blaster Compatible           yes (auto)
    ASIX Presto Adapter                     yes (auto)
    OpenJTAG Adapter                        yes (auto)
    Linux GPIO bitbang through libgpiod     no
    SEGGER J-Link Programmer                yes (auto)
    Xilinx XVC/PCIe                         no
    Bus Pirate                              yes (auto)
    Dummy Adapter                           yes (auto)
    Use Capstone disassembly framework      yes (auto)
    Collect coverage using gcov             no
    
    libtool: link: gcc -Wall -Wstrict-prototypes -Wformat-security -Wshadow -Wextra -Wno-unused-parameter -Wbad-function-cast -Wcast-align -Wredundant-decls -Wpointer-arith -Wundef -Werror -Wno-macro-redefined -o src/openocd src/main.o  -L/opt/homebrew/opt/bison/lib src/.libs/libopenocd.a -L/opt/homebrew/Cellar/libusb/1.0.27/lib -L/opt/homebrew/Cellar/libftdi/1.5_2/lib -lftdi1 -L/opt/homebrew/Cellar/hidapi/0.14.0/lib -lhidapi -L/usr/local/lib /usr/local/lib/libjaylink.dylib -lusb-1.0 -lm -L/opt/homebrew/Cellar/capstone/5.0.3/lib -lcapstone ./jimtcl/libjim.a
    Undefined symbols for architecture arm64:
      "_bitbang_execute_queue", referenced from:
          _dummy_interface in libopenocd.a[35](libocdjtagdrivers_la-dummy.o)
      "_bitbang_interface", referenced from:
          _dummy_init in libopenocd.a[35](libocdjtagdrivers_la-dummy.o)
    ld: symbol(s) not found for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    Fixed with....
    ./configure --enable-bcm2835gpio

     
  • Antonio Borneo

    Antonio Borneo - 2024-12-31

    Thanks for the ticket.
    Please check https://review.openocd.org/c/openocd/+/8682
    Our autobuild failed to detect the issue because other drivers requiring bitbang code were included, hiding the broken dependency of 'dummy' adapter.

     

Log in to post a comment.

MongoDB Logo MongoDB