View previous topic :: View next topic |
Author |
Message |
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1593
|
Posted: Fri Jan 17, 2025 4:51 pm Post subject: i686-pc-linux-musl-g++ not in /usr/lib/distcc |
|
|
I am trying to setup distcc and cross compiling to compile i686 packages on my x86_64 laptop(both laptops have USE=-*)
while compiling mesa on the client I see these errors:
Code: | [21/3494] /usr/lib/distcc/bin/i686-pc-linux-musl-g++ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/tmp/portage/llvm-core/llvm-18.1.8-r6/work/llvm_build-abi_x86_32.x86/lib/Support -I/var/tmp/portage/llvm-core/llvm-18.1.8-r6/work/llvm/lib/Support -I/var/tmp/portage/llvm-core/llvm-18.1.8-r6/work/llvm_build-abi_x86_32.x86/include -I/var/tmp/portage/llvm-core/llvm-18.1.8-r6/work/llvm/include -DNDEBUG -O2 -march=atom -pipe -fomit-frame-pointer -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -std=c++17 -MD -MT lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o -c /var/tmp/portage/llvm-core/llvm-18.1.8-r6/work/llvm/lib/Support/Compression.cppition -fvisibility-inlines-hidden -Werror=date-time -f
distcc[220] (dcc_build_somewhere) Warning: failed to distribute, running locally instead |
and can find the following on the x86_64 machine:
Code: | t14 /usr/lib/distcc # tail -f /var/log/distccd.log
distccd[21008] (dcc_check_compiler_whitelist) CRITICAL! i686-pc-linux-musl-g++ not in /usr/lib/distcc or /usr/lib/distcc whitelist.
distccd[21008] (dcc_job_summary) client: 192.168.1.4:45028 OTHER exit:0 sig:0 core:0 ret:0 time:7378ms
distccd[21009] (dcc_check_compiler_whitelist) CRITICAL! i686-pc-linux-musl-g++ not in /usr/lib/distcc or /usr/lib/distcc whitelist.
distccd[21009] (dcc_job_summary) client: 192.168.1.4:45040 OTHER exit:0 sig:0 core:0 ret:0 time:7787ms
distccd[21010] (dcc_check_compiler_whitelist) CRITICAL! i686-pc-linux-musl-g++ not in /usr/lib/distcc or /usr/lib/distcc whitelist.
distccd[21010] (dcc_job_summary) client: 192.168.1.4:45044 OTHER exit:0 sig:0 core:0 ret:0 time:5029ms
distccd[21011] (dcc_check_compiler_whitelist) CRITICAL! i686-pc-linux-musl-g++ not in /usr/lib/distcc or /usr/lib/distcc whitelist.
distccd[21011] (dcc_job_summary) client: 192.168.1.4:56518 OTHER exit:0 sig:0 core:0 ret:0 time:5528ms
distccd[21012] (dcc_check_compiler_whitelist) CRITICAL! i686-pc-linux-musl-g++ not in /usr/lib/distcc or /usr/lib/distcc whitelist.
distccd[21012] (dcc_job_summary) client: 192.168.1.4:40706 OTHER exit:0 sig:0 core:0 ret:0 time:5937ms
t14 /usr/lib/distcc # ls -l
total 156
lrwxrwxrwx 1 root root 1 Jan 16 18:00 bin -> .
lrwxrwxrwx 1 root root 15 Jan 17 18:39 c++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 c99 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 cc -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 clang -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 clang++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 clang++-18 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 clang++-19 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 clang-18 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 clang-19 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 g++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 g++-14 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 gcc -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 gcc-14 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-gnu-clang -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-gnu-clang++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-gnu-clang++-18 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-gnu-clang++-19 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-gnu-clang-18 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-gnu-clang-19 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-musl-cc -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-musl-gcc -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-musl-gcc-13 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-pc-linux-musl-gcc-14 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-unknown-linux-musl-cc -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-unknown-linux-musl-gcc -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 i686-unknown-linux-musl-gcc-14 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-c++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-cc -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-clang -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-clang++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-clang++-18 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-clang++-19 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-clang-18 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-clang-19 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-g++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-g++-14 -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-gcc -> /usr/bin/distcc
lrwxrwxrwx 1 root root 15 Jan 17 18:39 x86_64-pc-linux-gnu-gcc-14 -> /usr/bin/distcc
|
i tried rebuilding the target using crossdev using this command but it did not work:
Code: | crossdev --target i686-pc-linux-musl --gcc 14 -s4 --force
|
I also tried using eselect to update the symlinks:
Code: | eselect compiler-shadow update all
Updating masquerade for distcc ...
'clang' -> '/usr/bin/distcc'
'clang-18' -> '/usr/bin/distcc'
'clang-19' -> '/usr/bin/distcc'
'clang++' -> '/usr/bin/distcc'
'clang++-18' -> '/usr/bin/distcc'
'clang++-19' -> '/usr/bin/distcc'
'i686-pc-linux-gnu-clang' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-clang' -> '/usr/bin/distcc'
'i686-pc-linux-gnu-clang-18' -> '/usr/bin/distcc'
'i686-pc-linux-gnu-clang-19' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-clang-18' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-clang-19' -> '/usr/bin/distcc'
'i686-pc-linux-gnu-clang++' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-clang++' -> '/usr/bin/distcc'
'i686-pc-linux-gnu-clang++-18' -> '/usr/bin/distcc'
'i686-pc-linux-gnu-clang++-19' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-clang++-18' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-clang++-19' -> '/usr/bin/distcc'
'gcc' -> '/usr/bin/distcc'
'gcc-14' -> '/usr/bin/distcc'
'g++' -> '/usr/bin/distcc'
'g++-14' -> '/usr/bin/distcc'
'i686-pc-linux-musl-gcc' -> '/usr/bin/distcc'
'i686-unknown-linux-musl-gcc' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-gcc' -> '/usr/bin/distcc'
'i686-pc-linux-musl-gcc-14' -> '/usr/bin/distcc'
'i686-unknown-linux-musl-gcc-14' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-gcc-14' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-g++' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-g++-14' -> '/usr/bin/distcc'
'cc' -> '/usr/bin/distcc'
'c99' -> '/usr/bin/distcc'
'c++' -> '/usr/bin/distcc'
'i686-pc-linux-musl-cc' -> '/usr/bin/distcc'
'i686-unknown-linux-musl-cc' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-cc' -> '/usr/bin/distcc'
'x86_64-pc-linux-gnu-c++' -> '/usr/bin/distcc' |
what am I doing wrong here? |
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9871 Location: almost Mile High in the USA
|
Posted: Fri Jan 17, 2025 5:06 pm Post subject: |
|
|
probably a bug/oversight, too many combinations, might want to b.g.o it. But first, does it work if you put in that link manually?
someday i should set up a musl system to see what benefits it gets... _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1593
|
Posted: Sun Jan 19, 2025 3:58 pm Post subject: |
|
|
putting in the link manually did not work
Code: | t14 /usr/lib/distcc # ./i686-pc-linux-musl-g++
distcc[19249] (dcc_execvp) ERROR: failed to exec i686-pc-linux-musl-g++: No such file or directory
distcc[19248] ERROR: compile (null) on localhost failed with exit code 110 |
|
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9871 Location: almost Mile High in the USA
|
Posted: Sun Jan 19, 2025 7:00 pm Post subject: |
|
|
Well, that's still necessary (and it should be handled by portage/ebuild), then the other thing is why isn't i686-pc-linux-musl-g++ in the path of distccd ... where is the normal binary installed and is it in distccd's path?
(clang was a weird problem in the past for me... had one machine kept running old versions of clang and couldn't get it to run newer versions at all...) _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1593
|
Posted: Mon Jan 20, 2025 7:17 am Post subject: |
|
|
the binary is not installed, I'm not sure why, i tried running crossdev again with the stage 4 option but it's not there:
Code: | t14 /usr/lib/distcc # locate i686-pc-linux-musl-g++
/usr/lib/distcc/i686-pc-linux-musl-g++
t14 /usr/lib/distcc # ls -l /usr/lib/distcc/i686-pc-linux-musl-g++
lrwxrwxrwx 1 root root 15 Jan 17 20:49 /usr/lib/distcc/i686-pc-linux-musl-g++ -> /usr/bin/distcc |
|
|
Back to top |
|
|
eccerr0r Watchman
Joined: 01 Jul 2004 Posts: 9871 Location: almost Mile High in the USA
|
Posted: Mon Jan 20, 2025 5:01 pm Post subject: |
|
|
Is there a g++ somewhere? How is g++ being invoked normally/locally?
Can you symlink i686-pc-linux-musl-g++ to that binary? _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD
What am I supposed watching? |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1415 Location: Richmond Hill, Canada
|
Posted: Mon Jan 20, 2025 5:27 pm Post subject: |
|
|
Adel Ahmed,
You are trying cross compile with distcc. You may want to review Gentoo wiki: Distcc/Cross-Compiling-Compiling
So, does your distcc helper have same crossdev target installed? does your distcc helper updated so it know how to invoke your crossdev target compiler? |
|
Back to top |
|
|
Adel Ahmed Veteran
Joined: 21 Sep 2012 Posts: 1593
|
Posted: Mon Jan 20, 2025 8:02 pm Post subject: |
|
|
I tried to create the symlink pointing to my executable under /usr/bin/g++
still getting the error though:
Code: | distccd[6344] (dcc_execvp) ERROR: failed to exec i686-pc-linux-musl-g++: No such file or directory
distccd[31519] (dcc_job_summary) client: 192.168.1.4:34116 COMPILE_ERROR exit:110 sig:0 core:0 ret:0 time:151ms i686-pc-linux-musl-g++ /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp |
I also seee this in the build log:
Code: | -- Found assembler: /usr/lib/distcc/bin/i686-pc-linux-musl-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /usr/lib/distcc/bin/i686-pc-linux-musl-gcc
-- Check for working C compiler: /usr/lib/distcc/bin/i686-pc-linux-musl-gcc - works
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/distcc/bin/i686-pc-linux-musl-g++ - skipped |
it does feel a bit closer to the solution:
Code: | t14 /usr/lib/distcc/bin # /usr/lib/distcc/i686-pc-linux-musl-g++
i686-pc-linux-musl-g++: fatal error: no input files
compilation terminated.
t14 /usr/lib/distcc/bin # i686-pc-linux-musl-g++
-su: i686-pc-linux-musl-g++: command not found
t14 /usr/lib/distcc/bin # whereis i686-pc-linux-musl-g++
i686-pc-linux-musl-g++: |
I read the document again, but I still don't know what I'm missing yet, my distcc helper has that crossdev target installed, i think it's updated to know how to invoke the compiler as it's able to invoke gcc but not g++ |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1415 Location: Richmond Hill, Canada
|
Posted: Mon Jan 20, 2025 8:25 pm Post subject: |
|
|
So may be the file got accidentally deleted.
So let examine if any thing is missing from portage point of view first.
first use the known exist gcc by Code: | which i686-pc-linux-musl-gcc |
Now you got full path to i686-pc-linux-musl-gcc. please use Code: | namei -l /path/to/i686-pc-linux-musl-gcc |
This should gave you where the real binary location.
Now find which package own the binary by Code: | qfile /path/to/the/real binary(i686-pc-linux-musl-gcc) |
The qfile should return the category/package name.
Now verify with Code: | qcheck category/package name |
if qcheck report ok, then it would be a distcc configuration issue. or else you will need to rebuild your crossdev tool chain, something is missing.
You need to do this on both you build server and your distcc helper. |
|
Back to top |
|
|
|