[distcc] Re: Build errors only when using distcc in parallel

Yang Zhang yanghatespam at gmail.com
Sat Mar 21 20:03:29 GMT 2009


The problem was because I was farming out a 64-bit compilation to 32-bit 
machines.  Specifying -m64 fixes this.

Yang Zhang wrote:
> Everything works fine if I build sequentially or if I don't use distcc:
> 
> $ make WTF= NPCH=1
> ...
> distcc g++ -pipe -g3 -pthread  -Wall -Werror -Wextra
> -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual
> -Wsign-promo -Wformat=2 -Winit-self -Wswitch-enum -Wunused -Wfloat-equal
> -Wundef -Wunsafe-loop-optimizations -Wpointer-arith -Wcast-qual
> -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op
> -Wno-aggregate-return -Wno-missing-declarations
> -Wno-missing-field-initializers -Wmissing-format-attribute -Wpacked
> -Wredundant-decls -Winvalid-pch -Wlong-long -Wvolatile-register-var
> -std=gnu++0x -march=native    -c -o ydb.o ydb.cc
> distcc g++ -pipe -g3 -pthread  -Wall -Werror -Wextra
> -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual
> -Wsign-promo -Wformat=2 -Winit-self -Wswitch-enum -Wunused -Wfloat-equal
> -Wundef -Wunsafe-loop-optimizations -Wpointer-arith -Wcast-qual
> -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op
> -Wno-aggregate-return -Wno-missing-declarations
> -Wno-missing-field-initializers -Wmissing-format-attribute -Wpacked
> -Wredundant-decls -Winvalid-pch -Wlong-long -Wvolatile-register-var
> -std=gnu++0x -march=native    -c -o main.o main.cc
> distcc g++ -pipe -g3 -pthread  -Wall -Werror -Wextra
> -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual
> -Wsign-promo -Wformat=2 -Winit-self -Wswitch-enum -Wunused -Wfloat-equal
> -Wundef -Wunsafe-loop-optimizations -Wpointer-arith -Wcast-qual
> -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op
> -Wno-aggregate-return -Wno-missing-declarations
> -Wno-missing-field-initializers -Wmissing-format-attribute -Wpacked
> -Wredundant-decls -Winvalid-pch -Wlong-long -Wvolatile-register-var
> -std=gnu++0x -march=native    -c -o stxn.o stxn.cc
> distcc g++ -pipe -g3 -pthread  -Wall -Werror -Wextra
> -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual
> -Wsign-promo -Wformat=2 -Winit-self -Wswitch-enum -Wunused -Wfloat-equal
> -Wundef -Wunsafe-loop-optimizations -Wpointer-arith -Wcast-qual
> -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op
> -Wno-aggregate-return -Wno-missing-declarations
> -Wno-missing-field-initializers -Wmissing-format-attribute -Wpacked
> -Wredundant-decls -Winvalid-pch -Wlong-long -Wvolatile-register-var
> -std=gnu++0x -march=native    -c -o tpcc.o tpcc.cc
> distcc g++ -pipe -g3 -pthread  -Wall -Werror -Wextra
> -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual
> -Wsign-promo -Wformat=2 -Winit-self -Wswitch-enum -Wunused -Wfloat-equal
> -Wundef -Wunsafe-loop-optimizations -Wpointer-arith -Wcast-qual
> -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op
> -Wno-aggregate-return -Wno-missing-declarations
> -Wno-missing-field-initializers -Wmissing-format-attribute -Wpacked
> -Wredundant-decls -Winvalid-pch -Wlong-long -Wvolatile-register-var
> -std=gnu++0x -march=native    -c -o util.o util.cc
> 
> But as soon as I introduce parallelism:
> 
> $ make WTF= NPCH=1 -j2
> ...
> distcc g++ -pipe -g3 -pthread  -Wall -Werror -Wextra
> -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual
> -Wsign-promo -Wformat=2 -Winit-self -Wswitch-enum -Wunused -Wfloat-equal
> -Wundef -Wunsafe-loop-optimizations -Wpointer-arith -Wcast-qual
> -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op
> -Wno-aggregate-return -Wno-missing-declarations
> -Wno-missing-field-initializers -Wmissing-format-attribute -Wpacked
> -Wredundant-decls -Winvalid-pch -Wlong-long -Wvolatile-register-var
> -std=gnu++0x -march=native    -c -o main.o main.cc
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory `/home/yang/work/assorted/ydb/trunk/src/tpcc'
> distcc g++ -pipe -g3 -pthread  -Wall -Werror -Wextra
> -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual
> -Wsign-promo -Wformat=2 -Winit-self -Wswitch-enum -Wunused -Wfloat-equal
> -Wundef -Wunsafe-loop-optimizations -Wpointer-arith -Wcast-qual
> -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op
> -Wno-aggregate-return -Wno-missing-declarations
> -Wno-missing-field-initializers -Wmissing-format-attribute -Wpacked
> -Wredundant-decls -Winvalid-pch -Wlong-long -Wvolatile-register-var
> -std=gnu++0x -march=native    -c -o stxn.o stxn.cc
> distcc g++ -pipe -g3 -pthread  -Wall -Werror -Wextra
> -Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual
> -Wsign-promo -Wformat=2 -Winit-self -Wswitch-enum -Wunused -Wfloat-equal
> -Wundef -Wunsafe-loop-optimizations -Wpointer-arith -Wcast-qual
> -Wcast-align -Wwrite-strings -Wconversion -Wlogical-op
> -Wno-aggregate-return -Wno-missing-declarations
> -Wno-missing-field-initializers -Wmissing-format-attribute -Wpacked
> -Wredundant-decls -Winvalid-pch -Wlong-long -Wvolatile-register-var
> -std=gnu++0x -march=native    -c -o tpcc.o tpcc.cc
> distccd[2386] (tcp_cork_sock) Warning: setsockopt(corked=1) failed:
> Socket operation on non-socket
> In file included from /usr/include/c++/4.3/ext/new_allocator.h:38,
>                  from
> /usr/include/c++/4.3/x86_64-linux-gnu/bits/c++allocator.h:40,
>                  from /usr/include/c++/4.3/bits/allocator.h:54,
>                  from /usr/include/c++/4.3/memory:56,
>                  from /opt/armed/include/boost/get_pointer.hpp:9,
>                  from /opt/armed/include/boost/mem_fn.hpp:26,
>                  from /opt/armed/include/boost/bind.hpp:27,
>                  from stxn.lzz:7,
>                  from stxn.cc:5:
> /usr/include/c++/4.3/new:95: error: \u2018operator new\u2019 takes type
> \u2018size_t\u2019 (\u2018unsigned int\u2019) as first parameter
> /usr/include/c++/4.3/new:96: error: \u2018operator new\u2019 takes type
> \u2018size_t\u2019 (\u2018unsigned int\u2019) as first parameter
> /usr/include/c++/4.3/new:99: error: \u2018operator new\u2019 takes type
> \u2018size_t\u2019 (\u2018unsigned int\u2019) as first parameter
> /usr/include/c++/4.3/new:100: error: \u2018operator new\u2019 takes type
> \u2018size_t\u2019 (\u2018unsigned int\u2019) as first parameter
> /usr/include/c++/4.3/new:105: error: \u2018operator new\u2019 takes type
> \u2018size_t\u2019 (\u2018unsigned int\u2019) as first parameter
> /usr/include/c++/4.3/new:106: error: \u2018operator new\u2019 takes type
> \u2018size_t\u2019 (\u2018unsigned int\u2019) as first parameter
> distcc[29710] ERROR: compile stxn.cc on @farm1 failed
> 
> Any ideas why this might be happening?  If you want to try it out
> yourself (and are willing to deal with the dependencies) the source is
> all available on svn:
> 
> https://assorted.svn.sourceforge.net/svnroot/assorted/ydb/trunk/src
> 
> Thanks in advance.


-- 
Yang Zhang
http://www.mit.edu/~y_z/


More information about the distcc mailing list