Closed Normalised closed 1 year ago
How much RAM do you have?
Machine has 16gb. I changed the settings in the docker app : Resources -> Advanced and changed memory to 8gb. Ran docker builder prune and make docker-build again, still fails. Last part of log is :
#15 1654.7 /home/build/rack-plugin-toolchain/osxcross/build/llvm-10.0.1.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp:7659:75: note: parameter passing for argument of type 'llvm::SDNodeFlags' changed in GCC 9.1
#15 1654.7 7659 | Res = DAG.getNode(BaseOpcode, dl, EltVT, Res, Ops[i], Node->getFlags());
#15 1654.7 | ^
#15 1654.8 In file included from /home/build/rack-plugin-toolchain/osxcross/build/llvm-10.0.1.src/include/llvm/CodeGen/TargetLowering.h:35,
#15 1654.8 from /home/build/rack-plugin-toolchain/osxcross/build/llvm-10.0.1.src/lib/CodeGen/SelectionDAG/TargetLowering.cpp:13:
#15 1654.8 /home/build/rack-plugin-toolchain/osxcross/build/llvm-10.0.1.src/include/llvm/CodeGen/SelectionDAG.h: In member function 'void llvm::TargetLowering::softenSetCCOperands(llvm::SelectionDAG&, llvm::EVT, llvm::SDValue&, llvm::SDValue&, llvm::ISD::CondCode&, const llvm::SDLoc&, llvm::SDValue, llvm::SDValue, llvm::SDValue&, bool) const':
#15 1654.8 /home/build/rack-plugin-toolchain/osxcross/build/llvm-10.0.1.src/include/llvm/CodeGen/SelectionDAG.h:1008:67: note: parameter passing for argument of type 'llvm::SDNodeFlags' changed in GCC 9.1
#15 1654.8 1008 | return getNode(ISD::SETCC, DL, VT, LHS, RHS, getCondCod
#15 1654.8 [output clipped, log limit 1MiB reached]
------
executor failed running [/bin/sh -c make toolchain-mac]: exit code: 2
I ran into the same problem on an 2012 Macbook Pro. 8GB is not enough RAM for the build process. The problem is that it tries to parallelize the build implicitly. I am working on an update to the Makefile that will correctly propagate a -j
argument to the build process underneath and then running -j 1
(no parallel build) will make the build succeed. Downsize is that it takes about 6-8 hours for the tool chain build to finish.
Ok, thanks for the info. It looks like it takes the input to -j from the current docker config. I've turned the number of CPUs down to 2 in the docker settings. I'll let you know how it goes.
1 CPU, 10 GB, still fails.
#15 15.88 + cmake .. -DCMAKE_INSTALL_PREFIX=/home/build/rack-plugin-toolchain/local -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=OFF -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=1
#15 19.11 /usr/bin/ar: creating t.a
#15 23.67 -- Version: 0.0.0
#15 24.22 -- Performing Test HAVE_GNU_POSIX_REGEX
#15 24.22 -- Performing Test HAVE_GNU_POSIX_REGEX
#15 24.24 -- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile
#15 24.24 -- Performing Test HAVE_POSIX_REGEX
#15 24.24 -- Performing Test HAVE_POSIX_REGEX
#15 24.36 -- Performing Test HAVE_POSIX_REGEX -- success
#15 24.36 -- Performing Test HAVE_STEADY_CLOCK
#15 24.36 -- Performing Test HAVE_STEADY_CLOCK
#15 24.44 -- Performing Test HAVE_STEADY_CLOCK -- success
#15 28.29 + make -j 1 VERBOSE=1
was the command it was running and ended with
executor failed running [/bin/sh -c make toolchain-mac]: exit code: 2
make: *** [docker-build] Error 1
This is not docker related, but found out that there is for compiling llvm a JOBS environment variable used which is not set - so if empty make will only see -j and use all cpus available (32 in my case), so JOBS=8 make toolchain-all
did the job and only used 8 GB. It seems that 1 GB per CPU is necessary
@docb That was my experience on a Mac in general and the reason why I implemented the JOBS
environment variable to be passed to the underlying build processes (I need to run JOBS=1 make
on my old 2012 Macbook Pro). Thank you for confirming.
This issue is resolved with the latest toolchain updates, which have been confirmed to work on M1 and M2 platforms.
Installed docker for ARM. Created and added osxcross package to rack-plugin-toolchain directory. Build fails with this output :
make_docker_build_output.txt