VCVRack / rack-plugin-toolchain

53 stars 12 forks source link

build toolchain is working for mac and win, but not linux #19

Closed squinkylabs closed 2 years ago

squinkylabs commented 2 years ago

Here's the output for the Linux phase. Any idea how to fix this? Editing arch.mk just kicks the can down the road - the build itself then fails with 86_64-ubuntu16.04-linux-gnu-g++: No such file or directory. I can do a regular desktop build on this Ubuntu VM no problem.

make plugin-build-linux
make[1]: Entering directory '/home/bruce/rack-plugin-toolchain'
cd /home/bruce/Rack/plugins/SqHarmony && make clean
make[2]: Entering directory '/home/bruce/Rack/plugins/SqHarmony'
make[2]: x86_64-ubuntu16.04-linux-gnu-gcc: No such file or directory
make[2]: x86_64-ubuntu16.04-linux-gnu-gcc: No such file or directory
make[2]: x86_64-ubuntu16.04-linux-gnu-gcc: No such file or directory
/home/bruce/rack-plugin-toolchain/Rack-SDK-lin/arch.mk:10: *** Could not determine CPU architecture of . Try hacking around in arch.mk.  Stop.
cschol commented 2 years ago

So, your toolchain build worked fine, but your plugin build fails.

From where are you executing the make plugin-build-linux?

squinkylabs commented 2 years ago

from inside the toolchain folder, rack-plugin-toolchain. In there I have a one line script:

make -j4 plugin-build PLUGIN_DIR=~/Rack/plugins/SqHarmony
cschol commented 2 years ago

Did you build the toolchain for Linux or just for Windows and macOS?

make toolchain-lin

squinkylabs commented 2 years ago

pretty sure I did make toolchain-all like the instructions say. I have three folders under there now, Rack-SDK-lin, Rack-SDK-mac, Rack-SDK-win. I can try just building lin. Is that a "no op" if it's already built, or will it take an hour? I also have the default version of CMake. There is not easy way to install the "required" one in Ubuntu, but I did manage to update to 3.22.2 using some other package manager.

This is a brand new VM, not the one where I had previously don't a win only build.

cschol commented 2 years ago

You should have a folder named local where all of the toolchain binaries are stored. There you should find the Linux toolchain in x86_64-ubuntu16.04-linux-gnu.

Also, there is no "required" version of CMake to my knowledge. The Docker container works fine with the default CMake in Ubuntu 20.04.

squinkylabs commented 2 years ago

Yes, in rack-plugin-toolchain/local/x86_64-ubuntu16.04-linux-gnu/bin there are a bunch of tools, but apparently no gcc. Maybe the build failed. And, yes, toolchain does not list a CMake that is required, but the osxcross does. Of course that was fine. Should I run the linux build and watch carefully?

Here's what I have in that bin folder:

x86_64-ubuntu16.04-linux-gnu-addr2line
x86_64-ubuntu16.04-linux-gnu-elfedit  
x86_64-ubuntu16.04-linux-gnu-objcopy  
x86_64-ubuntu16.04-linux-gnu-strings
x86_64-ubuntu16.04-linux-gnu-ar            
x86_64-ubuntu16.04-linux-gnu-gprof    
x86_64-ubuntu16.04-linux-gnu-objdump 
 x86_64-ubuntu16.04-linux-gnu-strip
x86_64-ubuntu16.04-linux-gnu-as            
x86_64-ubuntu16.04-linux-gnu-ld       
x86_64-ubuntu16.04-linux-gnu-ranlib
x86_64-ubuntu16.04-linux-gnu-c++filt      
x86_64-ubuntu16.04-linux-gnu-ld.bfd   
x86_64-ubuntu16.04-linux-gnu-readelf
x86_64-ubuntu16.04-linux-gnu-ct-ng.config  
x86_64-ubuntu16.04-linux-gnu-nm       
x86_64-ubuntu16.04-linux-gnu-size
cschol commented 2 years ago

Yes, that's very strange. It should contain the toolchain specific gcc in that folder. Try building just Linux and watch the output.

squinkylabs commented 2 years ago

will do. I also [just] realized that when I first tried to build I ran out of space on that partition. I re-expanded it in place, but for all I know that linux gcc build was left if a bad state. Will try again. tx.

squinkylabs commented 2 years ago

ok, now gcc exists and work. Linux build now fails at the last copy step. It the invocation to make just linux plugins make plugin-build-linux? Is there any way to start over from scratch on linux, and leave the others? they take soo long... I deleted the rack-SDK-lin folder to force the gcc re-build. Any other tips?

(Actually, I thought I deleted that folder, but my modified arch.mk is still there. How do I regenerate that folder? oh, probably differnt folder. I delete every single folder that says something about linux)

rm -rf dist
mkdir -p dist/st-plug1
cp  dist/st-plug1/
cp: missing destination file operand after 'dist/st-plug1/'
Try 'cp --help' for more information.
make[1]: *** [/home/bruce/rack-plugin-toolchain/Rack-SDK-lin/plugin.mk:67: dist] Error 1
make[1]: Leaving directory '/home/bruce/Rack/plugins/SqHarmony'
make: *** [Makefile:161: plugin-build-linux] Error 2
squinkylabs commented 2 years ago

ok, that did it. I got them all. all errors on my side. tx!