raspberrypi/openocd

Cannot build on M1 macOS Sonoma

adigandhi opened this issue · 6 comments

I followed steps from Getting Started with Pi Pico, and#7. Also https://hackaday.io/page/13821-building-openocd-for-picoprobe-on-m1-mac

MacOS Sonoma M1 Max (Mac Studio)

brew install automake
brew install autoconf pkg-config libtool texinfo wget gcc

cd ~/projects/pico
git clone https://github.com/raspberrypi/openocd.git --branch picoprobe --depth=1 --no-single-branch
cd openocd

export PATH="$(brew --prefix)/opt/texinfo/bin:$PATH"
./bootstrap

CAPSTONE_CFLAGS="-I$(brew --prefix)/include" \
  ./configure --prefix="$(brew --prefix)"  \
  --enable-picoprobe --disable-presto --disable-openjtag
  

I see this error:

make -j4
cat src/helper/startup.tcl src/jtag/startup.tcl src/target/startup.tcl src/server/startup.tcl src/flash/startup.tcl | ./src/helper/bin2char.sh > src/startup_tcl.inc || { rm -f src/startup_tcl.inc; false; }
cp src/jtag/drivers/minidriver_imp.h src/jtag/minidriver_imp.h
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in jimtcl
        MKLDEXT _load-static-exts.c
        CC      jim-subcmd.o
        CC      jim-interactive.o
        CC      jim-format.o
        CC      jim.o
        CC      jimregexp.o
        CC      utf8.o
        CC      jimiocompat.o
        CC      linenoise.o
        CC      jim-tty.o
        CC      jim-aio.o
        CC      jim-array.o
        CC      jim-clock.o
        CC      jim-eventloop.o
        CC      jim-exec.o
jim-exec.c:1046:15: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
        pid = vfork();
              ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
jim-exec.c:729:12: warning: variable 'child_environ' set but not used [-Wunused-but-set-variable]
    char **child_environ;
           ^
2 warnings generated.
        CC      jim-file.o
        CC      jim-history.o
        CC      jim-interp.o
        CC      jim-load.o
        CC      jim-namespace.o
        CC      jim-pack.o
        CC      jim-package.o
        CC      jim-posix.o
        CC      jim-readdir.o
        CC      jim-regexp.o
        CC      jim-signal.o
        CC      jim-syslog.o
        TCLEXT  _glob.c
        TCLEXT  _nshelper.c
        TCLEXT  _oo.c
        TCLEXT  _stdlib.c
        CC      nshelper.o
        CC      oo.o
        CC      stdlib.o
        CC      glob.o
        TCLEXT  _tclcompat.c
        TCLEXT  _tree.c
        CC      jimsh.o
        TCLEXT  _initjimsh.c
        CC      _load-static-exts.o
        CC      tree.o
        CC      initjimsh.o
        CC      tclcompat.o
        AR      libjim.a
        LINK    jimsh
ld: archive member '/' not a mach-o file in '/Users/adityagandhi/Workspace/pico-probe/openocd/openocd/jimtcl/libjim.a'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [jimsh] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
aallan commented

I'm not sure anyone here is running Sonoma yet. I'll see if I can get something upgraded and take a look.

I have exactly same error when building another small project after update to sonoma. Maybe it's something in macos

reproduced issue on minimal build example, https://stackoverflow.com/q/77444892/11335766