distributed builds for C, C++ and Objective C

Related tags

Compilers distcc
Overview

distcc -- a free distributed C/C++ compiler system

Build Status

by Martin Pool

Current Documents: https://distcc.github.io/ Formally http://distcc.org/

"pump" functionality added by Fergus Henderson, Nils Klarlund, Manos Renieris, and Craig Silverstein (Google Inc.)

distcc is a program to distribute compilation of C or C++ code across several machines on a network. distcc should always generate the same results as a local compile, is simple to install and use, and is often two or more times faster than a local compile.

Unlike other distributed build systems, distcc does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed. Machines can be running different operating systems, as long as they have compatible binary formats or cross-compilers.

By default, distcc sends the complete preprocessed source code across the network for each job, so all it requires of the volunteer machines is that they be running the distccd daemon, and that they have an appropriate compiler installed.

The distcc "pump" functionality, added in distcc 3.0, improves on distcc by distributing not only compilation but also preprocessing to distcc servers. This requires that the server and client have the same system headers (the client takes responsibility for transmitting application-specific headers). Given that, distcc in pump mode yields the same results that distcc would in non-pump mode, but faster, since the preprocessor no longer runs locally. For more details on the pump functionality, see README.pump.

distcc is not itself a compiler, but rather a front-end to the GNU C/C++ compiler (gcc), or another compiler of your choice. All the regular gcc options and features work as normal.

distcc is designed to be used with GNU make's parallel-build feature (-j). Shipping files across the network takes time, but few cycles on the client machine. Any files that can be built remotely are essentially "for free" in terms of client CPU. This is even more true in "pump" mode, where the client does not even have to take time to preprocess the source files. distcc has been successfully used in environments with hundreds of distcc servers, supporting dozens of simultaneous compiles.

distcc is now reasonably stable and can successfully compile the Linux kernel, rsync, KDE, GNOME (via GARNOME), Samba and Ethereal. distcc is nearly linearly scalable for small numbers of machines: for a typical case, three machines are 2.6 times faster than one.

Licence

distcc is distributed under the GNU General Public Licence v2.

Resources

Comments
  • distcc-mon-gnome displays multiple rows for same host/slot

    distcc-mon-gnome displays multiple rows for same host/slot

    Answering the following questions is a big help:
    
    1. What version of distcc are you using (e.g. "2.7.1")?  You can run
    "distcc --version" to see.  If you got distcc from a distribution package
    rather than building from source, please say which one.
    
    distcc 3.0 i686-pc-linux-gnu
      (protocols 1, 2 and 3) (default port 3632)
      built Dec 18 2008 21:34:13
    
    Built from source using Gentoo package sys-devel/distcc-3.0-r4.
    
    2. What platform are you running on (e.g. "Red Hat 8.0", "HP-UX 11.11")? 
    What compilare are you using ("gcc 3.3")?  Run "uname -a" and "cc
    --version" to see.
    
    Linux tidal 2.6.23-gentoo-r9 #2 SMP Tue Aug 26 20:20:08 PDT 2008 i686
    Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz GenuineIntel GNU/Linux
    
    gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.1)
    
    3. What were you trying to do (e.g. "install distcc", "build Mozilla")?
    
    Compile almost anything with distcc.
    
    4. What went wrong?  Did you get an error message, did it hang, did it
    build a program that didn't work, did it not distribute compilation to
    machines that ought to get it?
    
    distcc-mon-gnome displays multiple rows for the same host/slot combination.
    This appears to occur only for remote hosts. See attached screenshot.
    
    5. If you have an example of a compiler invocation that failed, quote it,
    in full e.g.:
       distcc gcc -DHAVE_CONFIG_H -D_GNU_SOURCE -I./src \
    "-DSYSCONFDIR=\"/etc/\"" -I./lzo -g -O2 -W -Wall -W \ -Wimplicit -Wshadow
    -Wpointer-arith -Wcast-align \ -Wwrite-strings -Waggregate-return
    -Wstrict-prototypes \ -Wmissing-prototypes -Wnested-externs -o src/clirpc.o
    \ -c src/clirpc.c
    
    Compiling works fine.
    
    6. What error logging do you get?  Turn on client and server error logging.
     On the client, set these environment variables, and try to reproduce the
    problem: =export DISTCC_VERBOSE=1 DISTCC_LOG=/tmp/distcc.log=.  Start the
    server with the --verbose option. If the problem is intermittent, leave
    logging enabled and then pull out the lines from the log file when the
    problem recurs.
    
    No error messages.
    
    7. If you got an error message on stderr, quote that error exactly. Find
    the lines in the log files pertaining to the compile, and include all of
    them in your report, by looking at the process ID in square brackets. If
    you can't work that out, quote the last few hundred lines leading up to the
    failure. 
    
    No error messages.
    
    

    Original issue reported on code.google.com by [email protected] on 25 Jan 2009 at 7:37

    Attachments:

    auto-migrated 
    opened by GoogleCodeExporter 27
  • Move the home page to GitHub Pages

    Move the home page to GitHub Pages

    https://pages.github.com/

    i.e. https://distcc.github.io

    The current workaround* looks silly, and the old domains seems to be pointing to github project for now... (http://distcc.samba.org, distcc.org). Would be nice to gather all the old pages under a real web site again

    https://cdn.rawgit.com/distcc/distcc/9a09372bd3f420cdd7021e52eda14fa536a3c10e/doc/web/index.html

    opened by afbjorklund 20
  • Building Kernel >=5.2.0 fails to distribute out but 5.1.x builds fine

    Building Kernel >=5.2.0 fails to distribute out but 5.1.x builds fine

    Has anyone else noticed that compiling linux kernel 5.1.16 works fine with distcc but >=5.2.0 fails to distribute jobs? I'm thinking there is something in the upstream code that isn't honoring the old definitions?

    Example trying to compile 5.2.0:

    ...
    distcc[22629] (dcc_readx) ERROR: unexpected eof on fd5
    distcc[22629] (dcc_r_token_int) ERROR: read failed while waiting for token "DONE"
    distcc[22629] (dcc_r_result_header) ERROR: server provided no answer. Is the server configured to allow access from your IP address? Is the server performing authentication and your client isn't? Does the server have the compiler installed? Is the server configured to access the compiler?
    distcc[22629] Warning: failed to distribute scripts/mod/devicetable-offsets.c to 10.1.1.102/5, running locally instead
    distcc[22635] (dcc_readx) ERROR: unexpected eof on fd5
    distcc[22635] (dcc_r_token_int) ERROR: read failed while waiting for token "DONE"
    distcc[22635] (dcc_r_result_header) ERROR: server provided no answer. Is the server configured to allow access from your IP address? Is the server performing authentication and your client isn't? Does the server have the compiler installed? Is the server configured to access the compiler?
    distcc[22635] Warning: failed to distribute scripts/mod/empty.c to 10.1.1.102/5, running locally instead
    ...
    

    Whatever is causing this breakage, it has not been backported to the 4.19-lts series. I can build 4.19.61 with distcc working just fine. I found an older discussion on lkml about similar but the date of this being 8+ months ago doesn't seem right.

    My systems are running Arch Linux.

    • distcc 3.3.2
    • compiler 9.1.0
    opened by graysky2 19
  • Zeroconf fails if avahi supports IPv6

    Zeroconf fails if avahi supports IPv6

    I am running distcc 3.0 i686-pc-linux-gnu on a gentoo system with GCC
    4.1.2.  On any compile, or running 'distcc --show-hosts' I get an "ERROR:
    invalid tcp port specification in "<ipv6 address here>""
    
    Because of this, distcc fails to work with zeroconf on my network (or any
    network where zeroconf reports IPv6 adresses).
    
    The best solution is to either fix the address parsing so that zeroconf's
    IPv6 addresses parse correctly, or to force avahi to give only IPv4 addresses.
    

    Original issue reported on code.google.com by [email protected] on 13 Jan 2009 at 9:54

    Priority-Medium Type-Defect auto-migrated Usability 
    opened by GoogleCodeExporter 19
  • Handle 64-bit time_t on OpenBSD

    Handle 64-bit time_t on OpenBSD

    On OpenBSD, time_t is defined as a 64-bit type. So adjust the format string accordingly and make sure this gets casted correctly for other systems too.

    opened by jasperla 17
  • does distcc support android 10/11 compiling?

    does distcc support android 10/11 compiling?

    i noticed that distcc can warp C/C++ compile tools to make compile faster.

    in android 10 , it switches the compile tool to clang/clang++ and use ninjia to call them via -c:-S:-E and -o options.

    i did some tests use distcc to compile failed, but i can not send the log from internel net .

    i tried so many days, i want to know does this can work from the begining

    opened by modoojunko 16
  • Tag 3.2rc1

    Tag 3.2rc1

    distcc 3.2rc1 was released on Google Code in 2011, but the latest tag in this github repository is version 3.1 from 2008. Can you please tag 3.2rc1 here in this repository, and upload the corresponding tarball here using the github releases service? Thanks.

    bug Usability 
    opened by ryandesign 16
  • distcc --show-hosts fails when using Avahi with IPv6 support and +zeroconf for distcc.

    distcc --show-hosts fails when using Avahi with IPv6 support and +zeroconf for distcc.

    Answering the following questions is a big help:
    
    1. distcc 3.0 i686-pc-linux-gnu
      (protocols 1, 2 and 3) (default port 3632)
      built Mar 11 2009 14:16:41
    Copyright (C) 2002, 2003, 2004 by Martin Pool.
    Includes miniLZO (C) 1996-2002 by Markus Franz Xaver Johannes Oberhumer.
    Portions Copyright (C) 2007-2008 Google.
    
    distcc comes with ABSOLUTELY NO WARRANTY.  distcc is free software, and
    you may use, modify and redistribute it under the terms of the GNU 
    General Public License version 2 or later.
    
    Built with Zeroconf support.
    
    
    2. Linux localhost.localdomain 2.6.25-gentoo-r9 #2 SMP Fri Nov 14 09:35:46
    GMT 2008 i686 Intel(R) Xeon(TM) CPU 2.40GHz GenuineIntel GNU/Linux
    
    gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.1)
    Copyright (C) 2006 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    3. Compile any software package. Also  distcc --show-hosts
    
    4. Error Message unable to parse the host file.
    cat .distcc/zeroconf/hosts
    10.0.0.179:3632/16
    10.0.0.135:3632/8
    fe80::2c0:9fff:fe3d:1737:3632/16
    2001:470:1f09:22e:214:22ff:fe2d:1d7f:3632/8
    
    5. distcc --show-hosts
    distcc[29525] (dcc_parse_tcp_host) ERROR: invalid tcp port specification in
    ":2c0:9fff:fe3d:1737:3632/16
    2001:470:1f09:22e:214:22ff:fe2d:1d7f:3632/8
    "
    distcc[29525] (dcc_zeroconf_add_hosts) CRITICAL! failed to parse host file.
    
    distcc[29525] (dcc_show_hosts) CRITICAL! Failed to get host list
    
    6. See 5, the IPv6 address is missing the beginning of its address should
    have fe80.
    
    7. See 5.
    

    Original issue reported on code.google.com by [email protected] on 12 Mar 2009 at 11:07

    auto-migrated 
    opened by GoogleCodeExporter 15
  • Build failure on vanilla Ubuntu 8.10

    Build failure on vanilla Ubuntu 8.10

    
    Attempting to build distcc from source.  
    
    distcc 3.1
    Ubuntu 8.10
    
    $ tar xjvf distcc-3.1.tar.bz2
    $ cd distcc-3.1
    
    Tried the simple
      ./configure && make && sudo make install
    
    Warning are treated as errors so multiple failure.  You can hack the make
    file to turn this off but other errors occur 
    
    gcc -DHAVE_CONFIG_H -D_GNU_SOURCE -DSYSCONFDIR="\"/usr/local/etc\""
    -DPKGDATADIR="\"/usr/local/share/distcc\"" -Isrc -I"./src" -I"./lzo"
    -I"./popt" -Werror -g -O2 -MD -W -Wall -Wimplicit -Wshadow -Wpointer-arith
    -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes
    -Wmissing-prototypes -Wnested-externs -Wmissing-declarations
    -Wuninitialized -pthread -o src/emaillog.o -c src/emaillog.c
    cc1: warnings being treated as errors
    src/emaillog.c: In function ‘dcc_add_file_to_log_email’:
    src/emaillog.c:92: error: ignoring return value of ‘write’, declared with
    attribute warn_unused_result
    src/emaillog.c:93: error: ignoring return value of ‘write’, declared with
    attribute warn_unused_result
    src/emaillog.c:94: error: ignoring return value of ‘write’, declared with
    attribute warn_unused_result
    src/emaillog.c:98: error: ignoring return value of ‘write’, declared with
    attribute warn_unused_result
    
    ... etc.
    
    
    Regenerating configure results in a similar set of errors but starting in a
    different file.
    
    $ sh autogen.sh
    $ ./configure
    $ make
    
    cc1: warnings being treated as errors
    src/trace.c: In function ‘rs_logger_file’:
    src/trace.c:330: error: ignoring return value of ‘write’, declared with
    attribute warn_unused_result
    make: *** [src/trace.o] Error 1
    
    
    

    Original issue reported on code.google.com by [email protected] on 3 Dec 2008 at 11:31

    Type-Defect auto-migrated 
    opened by GoogleCodeExporter 14
  • pump does not parse response files

    pump does not parse response files

    pump cannot process compiler invocations with response files as they are used 
    to shorten the command line under windows usually passed with 
    "@more_arguments.rsp"
    
    Answering the following questions is a big help:
    
    1. What version of distcc are you using (e.g. "2.7.1")?  You can run "distcc 
    --version" to see.  If you got distcc from a distribution package rather than 
    building from source, please say which one.
    distcc 3.1
    
    2. What platform are you running on (e.g. "Red Hat 8.0", "HP-UX 11.11")?  What 
    compilare are you using ("gcc 3.3")?  Run "uname -a" and "cc --version" to see.
    Linux gold 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 
    x86_64 GNU/Linux
    
    x86_64-w64-mingw32-g++ (GCC) 4.5.1
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    
    3. What were you trying to do (e.g. "install distcc", "build Mozilla")?
    
    We use CMake to generate Makefiles - we use a toolchain for mingw32 targets
    CMake as of version 2.8.5 uses response files to make the commandlines shorter 
    since mysys shells on windows can sometimes not support long commandlines.
    
    4. What went wrong?  Did you get an error message, did it hang, did it build a 
    program that didn't work, did it not distribute compilation to machines that 
    ought to get it?
    
    when running 'pump make', the following warning is emitted:
    
    WARNING include server: Preprocessing locally. Include server not covering: 
    Could not locate name of translation unit: 
    ['@CMakeFiles/bclexampleutil.dir/includes_CXX.rsp', 
    'example/util/example_util_implementation.cpp']. for translation unit 'unknown 
    translation unit'
    
    and the file is preprocessed locally and compiled remotely without problems.
    
    5. If you have an example of a compiler invocation that failed, quote it, in 
    full e.g.:
    
    distcc x86_64-w64-mingw32-g++ @CMakeFiles/bclexampleutil.dir/includes_CXX.rsp   
    -m32 -Wno-deprecated -fno-pretty-templates -o 
    CMakeFiles/bclexampleutil.dir/example_util_implementation.cpp.obj -c 
    example/util/example_util_implementation.cpp
    
    6. What error logging do you get?  Turn on client and server error logging.  On 
    the client, set these environment variables, and try to reproduce the problem: 
    =export DISTCC_VERBOSE=1 DISTCC_LOG=/tmp/distcc.log=.  Start the server with 
    the --verbose option. If the problem is intermittent, leave logging enabled and 
    then pull out the lines from the log file when the problem recurs.
    
    problem might be in pump component "parse_command.py"
    
    7. If you got an error message on stderr, quote that error exactly. Find the 
    lines in the log files pertaining to the compile, and include all of them in 
    your report, by looking at the process ID in square brackets. If you can't work 
    that out, quote the last few hundred lines leading up to the failure.
    
    problem might be in pump component "parse_command.py"
    
    
    I think I can track down the problem to parse_command.py:343
    It might be necessary to actually expand the content of the file given with 
    '@...rsp' since it contains additional commandline arguments (like "-Ipath1 
    ...") that the compiler would need to parse - and pump as well.
    
    Before I suggest a patch, I just want to make sure there is no other solution.
    
    Thanks 
    

    Original issue reported on code.google.com by [email protected] on 18 Sep 2011 at 11:13

    auto-migrated 
    opened by GoogleCodeExporter 13
  • 3.0 on OSX: ValueError: Expected absolute path, but got '(framework'.

    3.0 on OSX: ValueError: Expected absolute path, but got '(framework'.

    Hi all,
    
    {{{
    [email protected] ~ $ uname -a
    Darwin montero.gostai.ensta.fr 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep  3 
    11:29:43 PDT 2008; root:xnu-
    1228.7.58~1/RELEASE_I386 i386
    [email protected] ~ $ g++ --version
    i686-apple-darwin9-g++-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5484)
    Copyright (C) 2005 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    [email protected] ~ $ which g++
    /usr/bin/g++
    }}}
    
    I'm using distcc as provided by the macports.
    
    I'm experiencing a bizarre error that I don't really understand.  I don't know 
    what I can do to provide more accurate 
    information, sorry.
    
    {{{
    $ cat contract.cc
    #include <iostream>
    $ DISTCC_LOG=/tmp/distcc.log DISTCC_VERBOSE=1 pump distcc g++ -c contract.cc -o 
    /tmp/foo.o
    __________Using distcc-pump from /opt/local/bin
    __________Using        4 distcc servers, of which only        3 support(s) pump 
    mode
    WARNING include server: Preprocessing locally. Include server internal error: 
    '<type 'exceptions.ValueError'>: ("Expected 
    absolute path, but got '(framework'.",)' for translation unit 'unknown 
    translation unit' ------- Include server stack trace -----
    ------
    Traceback (most recent call last):
      File "/opt/local/lib/python2.5/site-packages/include_server/include_server.py", line 379, in handle
        include_analyzer.client_root_keeper))
      File "/opt/local/lib/python2.5/site-packages/include_server/include_analyzer.py", line 254, in DoCompilationCommand
        self.timer))
      File "/opt/local/lib/python2.5/site-packages/include_server/parse_command.py", line 435, in ParseCommandArgs
        compiler_defaults.SetSystemDirsDefaults(compiler, parse_state.language, timer)
      File "/opt/local/lib/python2.5/site-packages/include_server/compiler_defaults.py", line 353, in SetSystemDirsDefaults
        self.system_links)
      File "/opt/local/lib/python2.5/site-packages/include_server/compiler_defaults.py", line 104, in 
    _MakeLinkFromMirrorToRealLocation
        raise ValueError("Expected absolute path, but got '%s'." % system_dir)
    ValueError: Expected absolute path, but got '(framework'.
    ----------------------------------------------
    }}}
    
    Thanks for the good work!
    
    
    

    Original issue reported on code.google.com by [email protected] on 15 Dec 2008 at 9:31

    Attachments:

    auto-migrated 
    opened by GoogleCodeExporter 13
  • Distcc not utilising client computer nearly enough

    Distcc not utilising client computer nearly enough

    My setup: -3 slow server machines -fast client machine

    When I run distcc my client machine core usage never goes about 60% on all cores like it usually does when compiling alone. I tried different configurations of make process count (-j) and localhost process usage (DISTCC_HOST = 'localhost/x ...'). The compile time is right around the time it would take the client machine to compile it alone.

    opened by ElectricPulse 1
  • Include Server Not covering

    Include Server Not covering

    I am using pump to compile the linux kernel and I get these types of errors on the client: Include server not covering: Could not find include file 'include/linux/... for translation unit. arch/x86/kernel...

    The server log looks fine. The non pump mode works - but it doesnt utilize system recources very well and I suspect its due to the heavy preprocessing of the linux kernel compilation.

    opened by ElectricPulse 2
  • malloc(): corrupted top size on PowerPC (32-bit) but not x86

    malloc(): corrupted top size on PowerPC (32-bit) but not x86

    The error shows up when I compile this basic source code in plain mode, on my Power Mac G4 computer, but not on my Compaq running a Pentium III.

    #include <stdio.h>
    
    int main() {
        printf("Hello distcc!\n");
        return 0;
    }
    

    These are the errors I get when I compile from the PowerPC. I tried with and without specifying the compiler.

    ppcsys ~ #  uname -primo
    5.15.41-gentoo ppc 7400, altivec supported PowerMac3,1 GNU/Linux
    
    ppcsys ~ #  distcc --version
    distcc 3.4 powerpc-unknown-linux-gnu
      (protocols 1, 2 and 3) (default port 3632)
      built Sep 22 2022 23:35:04
    Copyright (C) 2002, 2003, 2004 by Martin Pool.
    Includes miniLZO (C) 1996-2002 by Markus Franz Xaver Johannes Oberhumer.
    Portions Copyright (C) 2007-2008 Google.
    
    distcc comes with ABSOLUTELY NO WARRANTY.  distcc is free software, and
    you may use, modify and redistribute it under the terms of the GNU
    General Public License version 2 or later.
    
    Please report bugs to [email protected]
    
    ppcsys ~ #  DISTCC_VERBOSE=1 distcc gcc -c test.c -o test.o
    distcc[28610] (dcc_trace_version) distcc 3.4 powerpc-unknown-linux-gnu; built Sep 22 2022 23:35:04
    distcc[28610] (dcc_recursion_safeguard) safeguard level=0
    distcc[28610] (main) compiler name is "distcc"
    distcc[28610] (dcc_scan_args) scanning arguments: gcc -c test.c -o test.o
    distcc[28610] (dcc_scan_args) found input file "test.c"
    distcc[28610] (dcc_scan_args) found object/output file "test.o"
    distcc[28610] compile from test.c to test.o
    distcc[28610] (dcc_gcc_rewrite_fqn) Re-writing call to 'gcc' to 'powerpc-unknown-linux-gnu-gcc' to support cross-compilation.
    malloc(): corrupted top size
    Aborted
    
    ppcsys ~ #  DISTCC_VERBOSE=1 distcc -c test.c -o test.o
    distcc[28611] (dcc_trace_version) distcc 3.4 powerpc-unknown-linux-gnu; built Sep 22 2022 23:35:04
    distcc[28611] (dcc_recursion_safeguard) safeguard level=0
    distcc[28611] (main) compiler name is "distcc"
    distcc[28611] (dcc_scan_args) scanning arguments: cc -c test.c -o test.o
    distcc[28611] (dcc_scan_args) found input file "test.c"
    distcc[28611] (dcc_scan_args) found object/output file "test.o"
    distcc[28611] compile from test.c to test.o
    distcc[28611] (dcc_rewrite_generic_compiler) Rewriting 'cc' to 'gcc'
    distcc[28611] (dcc_gcc_rewrite_fqn) Re-writing call to 'gcc' to 'powerpc-unknown-linux-gnu-gcc' to support cross-compilation.
    malloc(): corrupted top size
    Aborted
    

    And this is on x86 (no output to indicate no errors)

    x86sys ~ #  uname -primo
    5.15.41-gentoo i686 Pentium III (Coppermine) GenuineIntel GNU/Linux
    
    x86sys ~#  distcc --version
    distcc 3.4 i686-pc-linux-gnu
      (protocols 1, 2 and 3) (default port 3632)
      built Aug 15 2022 12:59:25
    Copyright (C) 2002, 2003, 2004 by Martin Pool.
    Includes miniLZO (C) 1996-2002 by Markus Franz Xaver Johannes Oberhumer.
    Portions Copyright (C) 2007-2008 Google.
    
    distcc comes with ABSOLUTELY NO WARRANTY.  distcc is free software, and
    you may use, modify and redistribute it under the terms of the GNU
    General Public License version 2 or later.
    
    Please report bugs to [email protected]
    
    x86sys ~ #  distcc gcc -m32 -c test.c -o test.o
    x86sys ~ #
    
    x86sys ~ #  distcc -m32 -c test.c -o test.o
    x86sys ~ #
    
    x86sys ~ #  distcc gcc -c test.c -o test.o
    x86sys ~ #
    
    x86sys ~ #  distcc -c test.c -o test.o
    x86sys ~ #
    

    I rolled back my PowerPC's installation to 3.3.3. I get the error on this version as well, but only if I do not specify a compiler.

    ppcsys ~ #  distcc --version
    distcc 3.3.3 powerpc-unknown-linux-gnu
      (protocols 1, 2 and 3) (default port 3632)
      built Sep 23 2022 00:55:34
    Copyright (C) 2002, 2003, 2004 by Martin Pool.
    Includes miniLZO (C) 1996-2002 by Markus Franz Xaver Johannes Oberhumer.
    Portions Copyright (C) 2007-2008 Google.
    
    distcc comes with ABSOLUTELY NO WARRANTY.  distcc is free software, and
    you may use, modify and redistribute it under the terms of the GNU
    General Public License version 2 or later.
    
    Please report bugs to [email protected]
    
    ppcsys ~ #  distcc -c test.c -o test.o
    malloc(): corrupted top size
    Aborted
    
    ppcsys ~ #  DISTCC_VERBOSE=1 distcc -c test.c -o test.o
    distcc[24621] (dcc_trace_version) distcc 3.3.3 powerpc-unknown-linux-gnu; built Sep 23 2022 00:55:34
    distcc[24621] (dcc_recursion_safeguard) safeguard level=0
    distcc[24621] (main) compiler name is "distcc"
    distcc[24621] (dcc_scan_args) scanning arguments: cc -c test.c -o test.o
    distcc[24621] (dcc_scan_args) found input file "test.c"
    distcc[24621] (dcc_scan_args) found object/output file "test.o"
    distcc[24621] compile from test.c to test.o
    distcc[24621] (dcc_rewrite_generic_compiler) Rewriting 'cc' to 'gcc'
    distcc[24621] (dcc_gcc_rewrite_fqn) Re-writing call to 'gcc' to 'powerpc-unknown-linux-gnu-gcc' to support cross-compilation.
    malloc(): corrupted top size
    Aborted
    
    ppcsys ~ #  distcc gcc -c test.c -o test.o
    ppcsys ~ #
    
    opened by vbvr 0
  • Support with C++20 modules

    Support with C++20 modules

    I would like to know that what support does distcc provide for compiling C++20 modules. I tried to look for possible documentation sources but there was no such mention of this. Does distcc normally compile with C++20 modules or do we have any complications around that?

    opened by hardik-kgp 0
Releases(v3.4)
  • v3.4(May 11, 2021)

    • distccmon-gnome ported from gtk2 to gtk3

    • Remove debug lag in spawning new threads. (better multi-core performance)

    • Bug fixes.

    (Packagers: The .tar.gz file is to make it easier to build from source, as it doesn't require autoconf. It is hand-made so please use the autogenerated from git version instead.)

    Source code(tar.gz)
    Source code(zip)
    distcc-3.4.tar.gz(1.18 MB)
  • v3.3.5(Jan 4, 2021)

    Bugfix release.

    -Fix build on OSX -Fix build when using optional features AND those optional libraries decided to build against libsystemd (not sure which one, but it doesn't matter). -Python 3.8 compatibility issues

    (Packagers: The .tar.gz file is to make it easier to build from source, as it doesn't require autoconf. It is hand-made so please use the autogenerated from git version instead.)

    Source code(tar.gz)
    Source code(zip)
    distcc-3.3.5.tar.gz(1.14 MB)
  • v3.3.3(Aug 14, 2019)

    • small fixes, such as fixing the build on some non-Linux systems

    Remember, for those upgrading from pre-3.3: you must run update-distcc-symlinks on every server machine, and add manually (see MASQUERADING of distcc(1)) those compilers it does not detect.

    Source code(tar.gz)
    Source code(zip)
    distcc-3.3.3.tar.gz(1.14 MB)
  • v3.3.2(Jul 26, 2018)

    • Fixes a regression where ssh mode did not work in most circumstances. Bug #291

    • Misc smaller fixes

    Remember, for those upgrading from pre-3.3: you must run update-distcc-symlinks on every server machine, and add manually (see MASQUERADING of distcc(1)) those compilers it does not detect.

    Source code(tar.gz)
    Source code(zip)
    distcc-3.3.2.tar.gz(985.29 KB)
  • v3.3(Mar 7, 2018)

    • Use masquerade as compiler white-list. Bug #155 d849ca2. (Shawn Landden)

    • New --allow-private (the default) which allows non-global IP and IPv6 addresses. PR #240 (Shawn Landden)

    • Cross-compilation support. PR #244. (Shawn Landden)

    • Fix parsing of IPv6 addresses. PR #175 (Bing Sun)

    • Python 3, not python 2.

    • Can build without python (and without pump mode or tests).

    For those upgrading: you must run update-distcc-symlinks on every server machine, and add manually (see MASQUERADING of distcc(1)) those compilers it does not detect.

    Source code(tar.gz)
    Source code(zip)
    distcc-3.3.tar.gz(1.11 MB)
  • v3.2rc1.2(Feb 26, 2018)

  • v3.2rc1(Nov 10, 2016)

    Tagged based on the notes in issue #159

    distcc 3.2rc1 was the last release candidate issued on the old Google Code site in 2011.


    Changelog was updated as follows:

    2011-10-26 02:49 Fergus Henderson [email protected]

    • Makefile.in:

      After my change to gzip the man pages before installing them, I had to make a couple more changes to get "make distcheck" to pass.

      Reviewed by Craig Silverstein. 2011-10-25 01:49 Fergus Henderson [email protected]

      • Makefile.in, man:

        Gzip the man pages before installing them.

      This is required by the Debian policy manual http://www.debian.org/doc/debian-policy/ch-docs.html and is also assumed by our packaging/RedHat/rpm.spec file which we use for building both RPM and Debian packages.

      Also some whitespaces changes; only the first of the four segments in this patch has non-whitespace changes.

    2011-10-25 00:42 Fergus Henderson [email protected] * ChangeLog, NEWS, configure.ac:

    Update the NEWS and ChangeLog files, and set the version number to 3.2rc1, in preparation for releasing distcc version 3.2.

    Reviewed by Craig Silverstein.

    Source code(tar.gz)
    Source code(zip)
    distcc-3.2rc1.tar.bz2(595.60 KB)
    distcc-3.2rc1.tar.gz(914.63 KB)
  • distcc-3.1(Nov 10, 2016)

  • distcc-3.0(Nov 10, 2016)

  • distcc-3.0rc3(Nov 10, 2016)

  • distcc-3.0rc2(Nov 10, 2016)

  • distcc-3.0-rc1(Nov 10, 2016)

Owner
distcc
Developers of distcc. Mailing list at https://lists.samba.org/mailman/listinfo/distcc.
distcc
Przemyslaw Skibinski 579 Jan 8, 2023
Compile and execute C "scripts" in one go!

c "There isn't much that's special about C. That's one of the reasons why it's fast." I love C for its raw speed (although it does have its drawbacks)

Ryan Jacobs 2k Dec 30, 2022
Roaring bitmaps in C (and C++)

CRoaring Portable Roaring bitmaps in C (and C++) with full support for your favorite compiler (GNU GCC, LLVM's clang, Visual Studio). Included in the

Roaring bitmaps: A better compressed bitset 1.1k Jan 9, 2023
New generation entropy codecs : Finite State Entropy and Huff0

New Generation Entropy coders This library proposes two high speed entropy coders : Huff0, a Huffman codec designed for modern CPU, featuring OoO (Out

Yann Collet 1.1k Dec 26, 2022
Compression abstraction library and utilities

Squash - Compresion Abstraction Library

null 375 Dec 22, 2022
Multi-format archive and compression library

Welcome to libarchive! The libarchive project develops a portable, efficient C library that can read and write streaming archives in a variety of form

null 1.9k Dec 26, 2022
Easing the task of comparing code generated by cc65, vbcc, and 6502-gcc

6502 C compilers benchmark Easing the way to compare code generated by cc65, 6502-gcc, vbcc, and KickC. This repository contains scripts to: Compile t

Sylvain Gadrat 17 Sep 4, 2022
Secure ECC-based DID intersection in Go, Java and C.

SecureUnionID Secure ECC-based DID intersection. ABSTRACT This project is used to protect device ID using Elliptic Curve Cryptography algorithm. The d

Volcengine 20 Dec 27, 2022
nanoc is a tiny subset of C and a tiny compiler that targets 32-bit x86 machines.

nanoc is a tiny subset of C and a tiny compiler that targets 32-bit x86 machines. Tiny? The only types are: int (32-bit signed integer) char (8-

Ajay Tatachar 19 Nov 28, 2022
Smaller C is a simple and small single-pass C compiler

Smaller C is a simple and small single-pass C compiler, currently supporting most of the C language common between C89/ANSI C and C99 (minus some C89 and plus some C99 features).

Alexey Frunze 1.2k Jan 7, 2023
Microvm is a virtual machine and compiler

The aim of this project is to create a stack based language and virtual machine for microcontrollers. A mix of approaches is used. Separate memory is used for program and variable space (Harvard architecture). An interpreter, virtual machine and compiler are available. A demostration of the interpreter in action is presented below.

null 10 Aug 14, 2022
Pre-configured LLVM and ANTLR4 for C++

LLVM + ANTLR4 Starter Project Starter project for ANTLR4 and LLVM C++ project. Prerequisite LLVM 12 Java (for ANTLR4) git Install prerequisite librari

Nathanael Demacon 12 Aug 9, 2022
Aheui JIT compiler for PC and web

아희짓 개요 아희짓은 아희 언어를 위한 JIT (Just in Time) 컴파일러입니다. 어셈블러와 유틸 라이브러리외에 외부 라이브러리에 전혀 의존하지 않고 JIT을 바닥부터 구현합니다. 지원 환경 64비트 windows, mac, linux (x86 아키텍쳐) 웹어셈

Sunho Kim 28 Sep 23, 2022
Interpreter and miner for the LODA language written in C++

LODA Interpreter and Miner (C++) LODA is an assembly language, a computational model and a tool for mining integer sequences. You can use it to search

LODA Language 14 Dec 30, 2022
is a c++20 compile and runtime Struct Reflections header only library.

is a c++20 compile and runtime Struct Reflections header only library. It allows you to iterate over aggregate type's member variables.

RedSkittleFox 4 Apr 18, 2022
C++ python bytecode disassembler and decompiler

C++ python bytecode disassembler and decompiler

Michael Hansen 1.6k Jan 5, 2023
🌳 A compressed rank/select dictionary exploiting approximate linearity and repetitiveness.

The block-ε tree is a compressed rank/select dictionary that achieves new space-time trade-offs by exploiting the approximate linearity and the repeti

Giorgio Vinciguerra 10 Jun 5, 2022
A LLVM and Clang compiler toolchain built for kernel development

Cosmic-Clang Toolchain This is a LLVM and Clang compiler toolchain built for kernel development. Builds are always made from the latest LLVM sources r

Ǥђ๏ຮ₮⌁Ⲙครtє࿐ 0 Apr 12, 2022
Distributed, Encrypted, Fractured File System - A custom distributed file system written in C with FUSE

A custom FUSE-based filesystem that distributes encrypted shards of data across machines on a local network, allowing those files to be accessible from any machine.

Charles Averill 14 Nov 2, 2022
Kunlun distributed DBMS is a NewSQL OLTP relational distributed database management system

Kunlun distributed DBMS is a NewSQL OLTP relational distributed database management system. Application developers can use Kunlun to build IT systems that handles terabytes of data, without any effort on their part to implement data sharding, distributed transaction processing, distributed query processing, crash safety, high availability, strong consistency, horizontal scalability. All these powerful features are provided by Kunlun.

zettadb 114 Dec 26, 2022