VCVRack / rack-plugin-toolchain

53 stars 12 forks source link

v2 plugin build error: install_name_tool Command not found #11

Closed MarcBoule closed 2 years ago

MarcBoule commented 2 years ago

I'm getting the error install_name_tool: Command not found when trying to build my plugin with the v2 toolchain. I tried both the docker and non-docker methods, and I'm getting the same error. I successfully extracted the MacOSX11.1.sdk.tar.xz from Xcode_12.4.xip, as per the instructions. Here's the log from my non-docker attempt. I'm on Ubuntu 20.04.

There is an interesting warning near the end, I don't know if it's relevant: ld: warning: dylib (/home/build/rack-plugin-toolchain/Rack-SDK-mac/libRack.dylib) was built for newer macOS version (10.15) than being linked (10.9)

mboule@palomaru:~/VCVRack/rack-plugin-toolchain$ make -j8 docker-plugin-build PLUGIN_DIR=/home/mboule/VCVRack/Rack/plugins/ImpromptuModular/
mkdir -p plugin-build
docker run --rm --interactive --tty --volume=/home/mboule/VCVRack/Rack/plugins/ImpromptuModular/:/home/mboule/build/plugin-src --volume=/home/mboule/VCVRack/rack-plugin-toolchain/plugin-build:/home/mboule/build/rack-plugin-toolchain/plugin-build --env PLUGIN_DIR=/home/mboule/build/plugin-src rack-plugin-toolchain:2 /bin/bash -c "make plugin-build -j8 --jobserver-auth=3,4"
make: warning: -j8 forced in submake: resetting jobserver mode.
make plugin-build-mac
make[1]: Entering directory '/home/build/rack-plugin-toolchain'
cd /home/mboule/build/plugin-src && make clean
make[2]: Entering directory '/home/mboule/build/plugin-src'
rm -rfv build plugin.dylib dist
removed 'plugin.dylib'
make[2]: Leaving directory '/home/mboule/build/plugin-src'
cd /home/mboule/build/plugin-src && make cleandep
make[2]: Entering directory '/home/mboule/build/plugin-src'
rm -rfv dep
removed directory 'dep'
make[2]: Leaving directory '/home/mboule/build/plugin-src'
cd /home/mboule/build/plugin-src && make dep
make[2]: Entering directory '/home/mboule/build/plugin-src'
make[2]: Nothing to be done for 'dep'.
make[2]: Leaving directory '/home/mboule/build/plugin-src'
cd /home/mboule/build/plugin-src && make dist
make[2]: Entering directory '/home/mboule/build/plugin-src'
x86_64-apple-darwin20.2-clang++-libc++  -std=c++11 -stdlib=libc++   -fPIC -I/home/build/rack-plugin-toolchain/Rack-SDK-mac/include -I/home/build/rack-plugin-toolchain/Rack-SDK-mac/dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.9  -c -o build/src/comp/PianoKey.cpp.o src/comp/PianoKey.cpp

... [other plugin source builds here, removed for this github issue]

x86_64-apple-darwin20.2-clang++-libc++  -std=c++11 -stdlib=libc++   -fPIC -I/home/build/rack-plugin-toolchain/Rack-SDK-mac/include -I/home/build/rack-plugin-toolchain/Rack-SDK-mac/dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.9  -c -o build/src/Hotkey.cpp.o src/Hotkey.cpp
x86_64-apple-darwin20.2-clang++-libc++ -o plugin.dylib build/src/comp/PianoKey.cpp.o build/src/comp/Components.cpp.o build/src/comp/TactPad.cpp.o build/src/Clocked.cpp.o build/src/BigButtonSeq2.cpp.o build/src/Part.cpp.o build/src/ChordKey.cpp.o build/src/WriteSeq32.cpp.o build/src/Foundry.cpp.o build/src/Clkd.cpp.o build/src/PhraseSeqUtil.cpp.o build/src/ChordKeyExpander.cpp.o build/src/BlankPanel.cpp.o build/src/FundamentalUtil.cpp.o build/src/SemiModularSynth.cpp.o build/src/FoundrySequencerKernel.cpp.o build/src/PhraseSeq32.cpp.o build/src/GateSeq64.cpp.o build/src/BigButtonSeq.cpp.o build/src/TwelveKey.cpp.o build/src/ProbKeyExpander.cpp.o build/src/ClockedExpander.cpp.o build/src/Tact.cpp.o build/src/GateSeq64Expander.cpp.o build/src/ImpromptuModular.cpp.o build/src/CvPad.cpp.o build/src/Interop.cpp.o build/src/PhraseSeq16.cpp.o build/src/WriteSeq64.cpp.o build/src/PhraseSeqExpander.cpp.o build/src/ProbKey.cpp.o build/src/FoundrySequencer.cpp.o build/src/FoundryExpander.cpp.o build/src/FourView.cpp.o build/src/Hotkey.cpp.o -static-libstdc++  -shared -L/home/build/rack-plugin-toolchain/Rack-SDK-mac -lRack -undefined dynamic_lookup 
ld: warning: dylib (/home/build/rack-plugin-toolchain/Rack-SDK-mac/libRack.dylib) was built for newer macOS version (10.15) than being linked (10.9)
rm -rf dist
mkdir -p dist/ImpromptuModular
cp plugin.dylib dist/ImpromptuModular/
x86_64-apple-darwin20.2-strip -S dist/ImpromptuModular/plugin.dylib
install_name_tool -change libRack.dylib @rpath/libRack.dylib dist/ImpromptuModular/plugin.dylib
make[2]: install_name_tool: Command not found
make[2]: *** [/home/build/rack-plugin-toolchain/Rack-SDK-mac/plugin.mk:69: dist] Error 127
make[2]: Leaving directory '/home/mboule/build/plugin-src'
make[1]: *** [Makefile:151: plugin-build-mac] Error 2
make[1]: Leaving directory '/home/build/rack-plugin-toolchain'
make: *** [Makefile:158: plugin-build] Error 2
make: *** [Makefile:244: docker-plugin-build] Error 2
cschol commented 2 years ago

This issue is known and will be fixed as soon as updated SDKs are released. It required a change in the Rack source code for the build process to use, which is already pushed. Just waiting for the updated SDKs.

MarcBoule commented 2 years ago

Awesome, thanks Christoph!

cschol commented 2 years ago

This should be fixed in the latest commit on the v2 branch.