Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cmake #3

Open
wants to merge 215 commits into
base: cmake
Choose a base branch
from
Open

Cmake #3

wants to merge 215 commits into from

Commits on Oct 27, 2017

  1. Configuration menu
    Copy the full SHA
    2cf560c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1f93304 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8fd01f3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1c9d6b8 View commit details
    Browse the repository at this point in the history
  5. fix syntax error

    HenryMiller1 committed Oct 27, 2017
    Configuration menu
    Copy the full SHA
    281564a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9a0b3f8 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2017

  1. Configuration menu
    Copy the full SHA
    770ff5e View commit details
    Browse the repository at this point in the history
  2. Try more specific path to service/util.h in client

    Ideally we should rename this file, but for now I'm not willing to take that on
    HenryMiller1 committed Oct 28, 2017
    Configuration menu
    Copy the full SHA
    073696a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    630b172 View commit details
    Browse the repository at this point in the history
  4. Hack PLIBDIR into client

    HenryMiller1 committed Oct 28, 2017
    Configuration menu
    Copy the full SHA
    9ea3810 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2017

  1. Configuration menu
    Copy the full SHA
    415b488 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4c4b30f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0274bcb View commit details
    Browse the repository at this point in the history
  4. Build C programs too

    HenryMiller1 committed Oct 31, 2017
    Configuration menu
    Copy the full SHA
    2b77473 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    73664ea View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2017

  1. add compiler wrapper

    HenryMiller1 committed Nov 2, 2017
    Configuration menu
    Copy the full SHA
    e618696 View commit details
    Browse the repository at this point in the history
  2. more todo

    HenryMiller1 committed Nov 2, 2017
    Configuration menu
    Copy the full SHA
    8baad7e View commit details
    Browse the repository at this point in the history
  3. delete precise build

    HenryMiller1 committed Nov 2, 2017
    Configuration menu
    Copy the full SHA
    0bf49b9 View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2017

  1. Configuration menu
    Copy the full SHA
    e15b49c View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2017

  1. Start adding install commands

    Winfried Dobbe committed Nov 13, 2017
    Configuration menu
    Copy the full SHA
    52e5168 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2017

  1. Continue adding install targets

    Winfried Dobbe committed Dec 19, 2017
    Configuration menu
    Copy the full SHA
    b2b9fc6 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2018

  1. Fix get_absfilename()

    Previously, `get_absfilename()` was replacing '/..' for '/', without
    deleting the parent directory string.
    hferreiro committed Jul 17, 2018
    Configuration menu
    Copy the full SHA
    60c580d View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2018

  1. Configuration menu
    Copy the full SHA
    03e80e7 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2018

  1. Configuration menu
    Copy the full SHA
    f0658cb View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2018

  1. Merge pull request icecc#418 from xcorail/master

    Add LGTM code quality badges
    HenryMiller1 authored Oct 10, 2018
    Configuration menu
    Copy the full SHA
    6f6db88 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2018

  1. Configuration menu
    Copy the full SHA
    e3d10a3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cc8adcf View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2018

  1. Improve ccache + icecc advice

    Clarify that the usual usage pattern for icecc (adding its symlinks to $PATH) should not be followed when using ccache's own symlinks.
    smowton authored Nov 27, 2018
    Configuration menu
    Copy the full SHA
    bd12909 View commit details
    Browse the repository at this point in the history

Commits on Nov 28, 2018

  1. Update README.md

    smowton authored Nov 28, 2018
    Configuration menu
    Copy the full SHA
    c1ccc4a View commit details
    Browse the repository at this point in the history
  2. Merge pull request icecc#434 from smowton/patch-1

    Improve ccache + icecc advice
    HenryMiller1 authored Nov 28, 2018
    Configuration menu
    Copy the full SHA
    f429052 View commit details
    Browse the repository at this point in the history
  3. Additional Assembler Files for Linux Kernel (icecc#430)

    * Add unit tests for assembler options
    
    This is to ensure we don't break existing functionality
    in subsequent patches.
    
    * Clean up assembly argument handling to process all arguments
    
    This patch should have no functional changes besides handling
    a few more esoteric cases of assembler arguments.
    
    The -Wa arguments are split by comma and analyzed one by one with
    a new helper function.
    
    * Check for assembler options that have two arguments
    
    According to the gas help file there are two options that
    have two arguments where the second argument does not start
    with a hyphen (--debug-prefix-map OLD=NEW and --defsym SYM=VAL).
    With the current code, these arguments will be forced to run
    locally, even though there's no good reason for that.
    
    * Ensure assembler argument files run locally
    
    Any assembler option beginning with @ specifies more options that
    must be in a file. Instead of trying to parse all of those arguments,
    we just force that file to run locally.
    
    * Stop forcing the use of -pipe in the compiler
    
    The -pipe flag does not work when passing additional assembly
    files with -Wa. GCC is not smart enough to add an additional '-'
    argument to ensure the assembler still reads from stdin when there are
    additional files passed through -Wa.
    
    Additionally, as a matter of policy, I think it's wrong for icecc
    to enforce using -pipe and should be left to the individual build
    systems to make this decision.
    
    Besides that, in this day and age, the performance benefits of
    -pipe are dubious at best.
    
    * Add support for additional assembly files passed through gcc
    
    The Linux kernel has started passing an extra assembly file to all
    compilation steps in order to add globally available inline macros.
    It does this by passing an extra file using -Wa. Currently this causes
    icecc to force the build locally which means compiling the kernel
    cannot be distributed.
    
    In order to support this in icecc, we add any such files to
    the extra files in the environment.
    lsgunth authored and HenryMiller1 committed Nov 28, 2018
    Configuration menu
    Copy the full SHA
    69caa4a View commit details
    Browse the repository at this point in the history
  4. limit the ICECC_REMOTE_CPP/-pedantic workaround to avoid new breakage (

    …icecc#426)
    
    ICECC_REMOTE_CPP is typically used to avoid remote (clang) compilation
    errors, so we should avoid disabling it where possible.
    
    The test case in icecc#410 passes if you specify an official language
    standard rather than using GCC's default (which allows GNU extensions).
    Let's check this before deciding to disable ICECC_REMOTE_CPP.
    
    Followup to icecc#411.
    mostynb authored and HenryMiller1 committed Nov 28, 2018
    Configuration menu
    Copy the full SHA
    f469bc9 View commit details
    Browse the repository at this point in the history
  5. Various fixes related to Clear Linux (icecc#431)

    * Also include base libraries for AVX2 and AVX512 builds
    
    glibc supports searching for libraries in subdirs according to the CPU
    features. On x86-64, those are "haswell" and "avx512_1", as in:
    
    $ ldd /usr/bin/icecc | grep haswell
            libstdc++.so.6 => /usr/lib64/haswell/avx512_1/libstdc++.so.6
            libc.so.6 => /usr/lib64/haswell/libc.so.6
            libm.so.6 => /usr/lib64/haswell/avx512_1/libm.so.6
    
    With this change, we'll include the base library or libraries in the
    environment. In the system above, we'll include /usr/lib64/libm.so.6,
    /usr/lib64/haswell/libm.so.6 in addition to the libm listed in ldd's
    output.
    
    * Fix finding ld.so.conf on Clear Linux
    
    Clear Linux has a "stateless" /etc, meaning that all files there are
    supposed to belong to the user. The ld.so.cache file is instead in
    /var/cache/ldconfig.
    
    * Fix warning printed when /lib or /lib64 are symlinks
    
    icecc-create-env was printing:
    [...]
    adding file /usr/bin/objcopy
    adding file /etc/ld.so.conf=/tmp/icecc_ld_so_confTsSNqs
    cp: -r not specified; omitting directory '/lib'
    cp: -r not specified; omitting directory '/lib64'
    creating d7801039695fbb794e026bdaf287276c.tar.gz
    
    The -p option means to preserve ownership, timestamps, etc., but doesn't
    tell cp to operate on the symlink itself. The -P option does.
    thiagomacieira authored and HenryMiller1 committed Nov 28, 2018
    Configuration menu
    Copy the full SHA
    67d989c View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2018

  1. Configuration menu
    Copy the full SHA
    19ebe8a View commit details
    Browse the repository at this point in the history
  2. Add support for decompressing more tarballs

    Detect xz and zst compressions too. This allows teams that know all
    their iceccd servers have been updated to this version to package the
    environment using more efficient file formats.
    
    The test is updated to detect different file extensions, should
    icecc-create-env produce them.
    thiagomacieira authored and HenryMiller1 committed Dec 12, 2018
    Configuration menu
    Copy the full SHA
    7be9e25 View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2018

  1. Add Cirrus-CI config for FreeBSD builds (icecc#440)

    * Add Cirrus-CI config for FreeBSD builds
    
    * Add build status badge
    lwhsu authored and HenryMiller1 committed Dec 17, 2018
    Configuration menu
    Copy the full SHA
    e39103f View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2019

  1. Keep -Werror=missing-include-dirs local

    Hannu Lyytinen committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    27a2e59 View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2019

  1. Fix ignoring objective c/c++ language option as valid.

    Rene Rivera committed Feb 22, 2019
    Configuration menu
    Copy the full SHA
    1759235 View commit details
    Browse the repository at this point in the history

Commits on Mar 9, 2019

  1. filter out also -include-pch when preprocessing for the remote

    It's apparently making Clang slower (presumably -include-pch is handled
    even in the -frewrite-includes mode where it's useless). Gcc's -include .gch
    is handled the same way already.
    llunak committed Mar 9, 2019
    Configuration menu
    Copy the full SHA
    3cc917e View commit details
    Browse the repository at this point in the history
  2. Merge pull request icecc#450 from llunak/master

    filter out also -include-pch when preprocessing for the remote
    llunak authored Mar 9, 2019
    Configuration menu
    Copy the full SHA
    070d953 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2019

  1. Configuration menu
    Copy the full SHA
    d3aea80 View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2019

  1. Merge pull request icecc#461 from cooldavid/gentoo-usage

    Update instructions for gentoo
    HenryMiller1 authored Apr 25, 2019
    Configuration menu
    Copy the full SHA
    c1af219 View commit details
    Browse the repository at this point in the history
  2. Merge pull request icecc#448 from disbeliefstudio/bugfix/x-obj-c

    Fix ignoring objective c/c++ language option as valid.
    HenryMiller1 authored Apr 25, 2019
    Configuration menu
    Copy the full SHA
    c7157a9 View commit details
    Browse the repository at this point in the history
  3. Merge pull request icecc#446 from hlyytine/poky-fix

    Keep -Werror=missing-include-dirs local
    HenryMiller1 authored Apr 25, 2019
    Configuration menu
    Copy the full SHA
    fa4dd76 View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2019

  1. Configuration menu
    Copy the full SHA
    e71173e View commit details
    Browse the repository at this point in the history

Commits on May 1, 2019

  1. Removed dependency on native tar command and used libarchive library (i…

    …cecc#447)
    
    * Removed dependency on native tar command and used libarchive library instead
    * Updated NEWS and README.
    albuquerque authored and HenryMiller1 committed May 1, 2019
    Configuration menu
    Copy the full SHA
    0c7c455 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2019

  1. make sure check failures also cause a failure in travis builds

    6756498 added 'make dist' to the end of the travis build commands,
    effectively hiding exit code from 'make test'
    llunak committed May 31, 2019
    Configuration menu
    Copy the full SHA
    f83b000 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e6ada97 View commit details
    Browse the repository at this point in the history
  3. fix symlink wrapper test

    llunak committed May 31, 2019
    Configuration menu
    Copy the full SHA
    9c1590b View commit details
    Browse the repository at this point in the history
  4. fix copy&paste error

    llunak committed May 31, 2019
    Configuration menu
    Copy the full SHA
    0bfca5a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e11195a View commit details
    Browse the repository at this point in the history
  6. drop -fpch-preprocess from local flags

    It'd insert a pragma that'd make the remote compilation break.
    And ccache recommends it as one way to make ccache work with PCH.
    llunak committed May 31, 2019
    Configuration menu
    Copy the full SHA
    c56c19e View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    1069f24 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    942ac71 View commit details
    Browse the repository at this point in the history
  9. do not use -fdirectives-only locally, ever

    For whatever sick reason the pch test fails locally with gcc9 because
    "not used because `__FLT_MIN__' defined as
    ` 1.17549435082228750796873653722224568e-38F' not ` 1.1'".
    llunak committed May 31, 2019
    Configuration menu
    Copy the full SHA
    968fca4 View commit details
    Browse the repository at this point in the history
  10. move DEBUG_SCHEDULER to a header

    compileserver.cpp uses it too
    llunak committed May 31, 2019
    Configuration menu
    Copy the full SHA
    b20ff79 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    7421b5e View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    b816d44 View commit details
    Browse the repository at this point in the history
  13. do not require absolute path in debug tests with absolute path

    It may be because of clang's -fdebug-compilation-dir, but gdb here
    now shows the path only as debug/debug2.cpp and not the full path.
    As long as the actual gdb output works (and thus gdb can find the file),
    this doesn't actually matter, so do not require the full path.
    llunak committed May 31, 2019
    Configuration menu
    Copy the full SHA
    5a4cf10 View commit details
    Browse the repository at this point in the history
  14. force -ftime-report* and -ftime-trace as local builds

    They are profiling options for the compiler itself.
    llunak committed May 31, 2019
    Configuration menu
    Copy the full SHA
    b807f1c View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    ec9e5f0 View commit details
    Browse the repository at this point in the history

Commits on Jun 1, 2019

  1. Configuration menu
    Copy the full SHA
    9713dce View commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2019

  1. Merge pull request icecc#406 from kito-cheng/master

    Always compile cmake tests locally
    llunak authored Jun 2, 2019
    Configuration menu
    Copy the full SHA
    341f5b9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fc03a71 View commit details
    Browse the repository at this point in the history
  3. make .cirrus.xml also actually build icecream

    'make dist' just creates a tarball, it doesn't build the sources
    llunak committed Jun 2, 2019
    Configuration menu
    Copy the full SHA
    d4358e1 View commit details
    Browse the repository at this point in the history
  4. server -> submitter

    'Server' is just too vague.
    llunak committed Jun 2, 2019
    Configuration menu
    Copy the full SHA
    dff9def View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8a99dd8 View commit details
    Browse the repository at this point in the history
  6. dist-bzip2 -> dist-xz

    bzip2 is kind of obsolete these days.
    llunak committed Jun 2, 2019
    Configuration menu
    Copy the full SHA
    3dc05e5 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2019

  1. daemon: fix MemTotal on macos

    the mach codepath doesn't obtain `MemTotal`, which will always cause the
    a pessimistic 100MB memory limit. as later on, we'll just return 0.
    
    the best way on macos to obtain the total memory is reading `hw.memsize`
    timblechmann authored and HenryMiller1 committed Jun 5, 2019
    Configuration menu
    Copy the full SHA
    1af3a23 View commit details
    Browse the repository at this point in the history
  2. Add support for Zstandard compression of the content

    Zstandard (https://zstd.net) is a modern compression library also of the
    Lempel-Ziv family of compressors. Compared to LZO, if given the same CPU
    time, zstd will compress better. Testing with the "lzop" and "zstd"
    command-line tools indicates that the same-CPU-time level compression
    for a 7241 kB preprocessed source lies between zstd levels 2 and 3 (LZO
    takes 916 µs; zstd level 2 takes 753 µs and level 3 takes 1024 µs).
    Level 2 compresses this file to 1028 kB, while level 3 reaches 929 kB,
    compared to LZO's 1581 kB.
    
    However, when testing a full compilation of a large-ish source code (not
    including linking), we find that CPU time is the bottleneck, shared
    between the compressor and the preprocessors. The results of a best-of-5
    run on this source are:
    
    	lzo:    22.989s
    	zstd1:  20.421s
    	zstd2:  20.554s
    	zstd3:  20.630s
    	zstd4:  20.762s
    	zstd5:  21.355s
    	zstd6:  21.341s
    
    Therefore, this commit chooses level 1 as the default. The 11% gain in
    build time is caused the reduction in both CPU contention and the
    network transmission -- zstd level 1 compresses the above source to 1029
    kB, which is almost 35% smaller than the LZO content.
    thiagomacieira authored and HenryMiller1 committed Jun 5, 2019
    Configuration menu
    Copy the full SHA
    7f0d8d9 View commit details
    Browse the repository at this point in the history
  3. switch travis to ubuntu 16.04 where possible

    And this 'where possible' is everythere except for the address/leak
    sanitizer, which is broken for whatever mysterious reason. We already
    had to explicitly force an older version of Ubuntu Trusty
    for the asan/lsan build, so keep it that way. In a summary:
    - Normal builds work fine with newer Ubuntu (if 16.04 can be called "newer").
    - Sanitizers generally work with -fuse-ld=gold, so maybe the BFD ld is
      old/broken on these old Ubuntu versions.
    - Asan/lsan breaks when tests try to terminate the iceccd daemon. Either
      the signal handling is broken, or the leak cleanup is broken, it simply
      exists and the only thing it says is 'fatal error'.
    - I have no idea how to fix that. Even when using gcc9
      from the ubuntu-toolchain-r-test it's still broken.
    - So stay on the ancient Trusty version.
    - However, there's no official zstd package for Trusty, so grab one
      from a "random" unsupported repository. It works *shrug*.
    - Also, asan contains lsan, so just use them together, so that the special
      handling is at least done only once.
    llunak authored and HenryMiller1 committed Jun 5, 2019
    Configuration menu
    Copy the full SHA
    7bd85b3 View commit details
    Browse the repository at this point in the history
  4. add zstd to .cirrus.yml too

    llunak authored and HenryMiller1 committed Jun 5, 2019
    Configuration menu
    Copy the full SHA
    1a237aa View commit details
    Browse the repository at this point in the history
  5. force local rebuild if remote is missing file

    There are cases where a remote compilation is failing due to a missing
    file, that we can't detect with limited amount of work before kicking
    off the compile. One such occasion is the Linux kernel including a file
    in a inline ASM statement in a C file via the incbin directive.
    
    If we detect a remote error with a missing file, force a local recompile.
    This should only be hit in a very limited number of cases, so there is no
    need for a more clever workaround.
    lynxeye-dev authored and HenryMiller1 committed Jun 5, 2019
    Configuration menu
    Copy the full SHA
    f9d896c View commit details
    Browse the repository at this point in the history
  6. allow other tests to fall back to local rebuild

    There are some other issues, which require a local rebuild as a workaround.
    Rename the stderrfix to localrebuild and also honor it when building with
    clang to make it reusable.
    lynxeye-dev authored and HenryMiller1 committed Jun 5, 2019
    Configuration menu
    Copy the full SHA
    f1797ed View commit details
    Browse the repository at this point in the history
  7. try local recompile when local cpp invocation fails

    When fdirectives-only is used the local cpp can fail on some macro constructs
    that are incompatible with this mode of preprocessing. Currently this fails
    the build, as it's not a remote error, which would get recovered by a local
    rebuild, but the local side failing.
    
    Instead of failing the build, trigger a local rebuild. The failure rate is
    so small that any more sophisticated recovery seems to be wasted effort. This
    leads to an additional local recompile in case of broken code, that fails in
    the cpp, but I don't think that matters, as performance of failing builds is
    probably not as important.
    
    The tests need to account for the local fallback being triggered by a
    failing cpp invocation.
    lynxeye-dev authored and HenryMiller1 committed Jun 5, 2019
    Configuration menu
    Copy the full SHA
    a29944f View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2019

  1. handle -MF, -MT and -MQ when passed via -Wp

    More fixes for Linux kernel build with -fdirectives-only. Some of the
    kernel tools are passing the above options directly to the preprocessor
    via -Wp. Need to make sure they are applied on the local cpp side.
    lynxeye-dev authored and HenryMiller1 committed Jun 7, 2019
    Configuration menu
    Copy the full SHA
    14eabd4 View commit details
    Browse the repository at this point in the history
  2. improve cross-compile handling for clang in icecc-create-env

    One clang binary can be used to compile code for different architectures.
    One way to select the target architecture is the name of the compiler:
    A symlink with the target triple, e.g. armv7-unknown-linux-gnueabihf-clang.
    
    Add support for this in icecc-create-env by calling the clang binary as
    specified on the command-line when querying other tools and headers.
    This way the correct tools and headers for the desired architecture are
    added to the environment.
    michaelolbrich authored and HenryMiller1 committed Jun 7, 2019
    Configuration menu
    Copy the full SHA
    1aa0885 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2019

  1. do not package Clang internal headers in icecc-create-env

    It doesn't seem to be actually needed (tested with Clang 8.0.0 and 4.0.1).
    I have no idea why I added it, the commit doesn't say. Possibly
    initially -frewrite-includes had a bug that necessitated this.
    llunak committed Jun 16, 2019
    Configuration menu
    Copy the full SHA
    dd623e7 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2019

  1. remove special PCH handling with -include and -include-pch

    As far as I can tell, this is mostly just needless trouble, and the purpose
    of the code is unclear and hard to understand. AFAICT the extension check
    means that it's mostly skipped anyway (because most headers have
    the extension starting with 'h'). And there are several commits
    in the history that try to fix this somehow only breaking something else.
    
    Without handling these options in any special way this should work in all
    cases, except for the case when the -include(-pch) option is required
    (i.e. the source does not include the headers from which the PCH has been
    built, so the PCH is the only source of that code). Since we do not
    ship PCHs to remote nodes and assume the code will build fine even without
    the PCH, this will obviously break. But although that mode of operation is
    supported by GCC, I consider it to be weird. And if this actually breaks
    things for somebody who uses it, they can complain so that it actually
    becomes clear what the problem is and how it can possibly be handled.
    llunak committed Jun 19, 2019
    Configuration menu
    Copy the full SHA
    a6d299b View commit details
    Browse the repository at this point in the history
  2. fix mismatching error code

    llunak committed Jun 19, 2019
    Configuration menu
    Copy the full SHA
    48a7cb7 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2019

  1. Merge pull request icecc#473 from llunak/no-env-clang-includes

    do not package Clang internal headers in icecc-create-env
    llunak authored Jun 20, 2019
    Configuration menu
    Copy the full SHA
    654cb28 View commit details
    Browse the repository at this point in the history
  2. Merge pull request icecc#475 from llunak/remove_special_pch_include

    remove special PCH handling with -include and -include-pch
    llunak authored Jun 20, 2019
    Configuration menu
    Copy the full SHA
    2ba5451 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2019

  1. -Xclang -building-pch-with-obj must be built locally

    Since we strip the PCH for the remote build.
    llunak committed Jun 23, 2019
    Configuration menu
    Copy the full SHA
    7d6091e View commit details
    Browse the repository at this point in the history
  2. fix gcc9 warning about strncpy()

    This is old code for backwards compatibility, so just silence the warning
    somehow in a way that works and be done with it.
    llunak committed Jun 23, 2019
    Configuration menu
    Copy the full SHA
    ce3f16e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b26de0e View commit details
    Browse the repository at this point in the history
  4. make libtool more silent

    llunak committed Jun 23, 2019
    Configuration menu
    Copy the full SHA
    c016252 View commit details
    Browse the repository at this point in the history
  5. don't clamp ICECC_COMPRESSION

    zstd clamps the value to the allowed range, and recent zstd versions
    allow even negative values for even faster compression
    llunak committed Jun 23, 2019
    Configuration menu
    Copy the full SHA
    f206e6c View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2019

  1. Configuration menu
    Copy the full SHA
    b6d194f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    01fe714 View commit details
    Browse the repository at this point in the history
  3. std::string::find_last_of() -> rfind()

    find_last_of() searches for any of the given characters, which is not
    used in these cases -> using find_last_of() is a needless confusion.
    llunak committed Jun 24, 2019
    Configuration menu
    Copy the full SHA
    8d77ce9 View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2019

  1. reduce copy&paste in test.sh

    llunak committed Jun 25, 2019
    Configuration menu
    Copy the full SHA
    7b41835 View commit details
    Browse the repository at this point in the history
  2. removed hardcoded compiler paths, allow usage of compiler in any loca…

    …tion
    
    This removes the last cases of hardcoded paths like /usr/bin/gcc. Now
    icecc can be invoked with compiler in any location and the environment
    sent to the remote host will include the proper compiler. Supported
    compilers (binary names) are gcc/g++, clang/clang++ and cc/c++ (the first
    two including prefixes and postfixes, e.g. aarch64-suse-linux-gcc-6.
    llunak committed Jun 25, 2019
    Configuration menu
    Copy the full SHA
    17e5024 View commit details
    Browse the repository at this point in the history
  3. create tarball in icecc-create-env atomically

    There's a small chance that icecc-create-env will get invoked again
    for the same result (e.g. because different wrapper scripts point
    to the same real compiler), and so the existing tarball would
    be temporarily broken.
    llunak committed Jun 25, 2019
    Configuration menu
    Copy the full SHA
    5a8f6f1 View commit details
    Browse the repository at this point in the history
  4. include guards

    llunak committed Jun 25, 2019
    Configuration menu
    Copy the full SHA
    3eb87d8 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2eed5e3 View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2019

  1. keep order of remote arguments, especially -gsplit-dwarf (icecc#435)

    This is based on pull requests icecc#425. Both gcc and clang
    have their peculiarities when handling -gsplit-dwarf depending
    on the exact order of this and other -g arguments. So keep the order
    the same and do not handle any of those arguments specially.
    
    This technically changes the protocol, but let's keep it as part
    of the recent version 41 change.
    llunak committed Jun 29, 2019
    Configuration menu
    Copy the full SHA
    8801771 View commit details
    Browse the repository at this point in the history
  2. Merge pull request icecc#477 from llunak/keep_args_order

    keep order of remote arguments, especially -gsplit-dwarf (icecc#435)
    llunak authored Jun 29, 2019
    Configuration menu
    Copy the full SHA
    59fbc01 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    05cfcdd View commit details
    Browse the repository at this point in the history
  4. Merge pull request icecc#403 from hferreiro/master

    Fix get_absfilename()
    llunak authored Jun 29, 2019
    Configuration menu
    Copy the full SHA
    07bbfd1 View commit details
    Browse the repository at this point in the history
  5. test -fsanitize-blacklist also with a path with /../

    To check the recent commit fixing get_absfilename().
    llunak committed Jun 29, 2019
    Configuration menu
    Copy the full SHA
    04ebef0 View commit details
    Browse the repository at this point in the history
  6. fix resolve_path() in icecc-create-env (icecc#445)

    If there's a cd to dirname of local_path, then the file itself
    becomes just basename of local_path indeed.
    llunak committed Jun 29, 2019
    Configuration menu
    Copy the full SHA
    70b9468 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    9e050f6 View commit details
    Browse the repository at this point in the history
  8. std::find_first_of/find_last_of -> std::find/rfind

    No idea why the codebase uses these for seaching for just one specific
    character.
    llunak committed Jun 29, 2019
    Configuration menu
    Copy the full SHA
    18c847b View commit details
    Browse the repository at this point in the history
  9. increase default cache size limit to 256MiB (icecc#413)

    Apparently nowadays environments sometimes can get close to or even
    over the 100MiB default, and 100MiB should count as an insignificant
    amount of disk space these days.
    llunak committed Jun 29, 2019
    Configuration menu
    Copy the full SHA
    4c3fbb1 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2019

  1. a node that can still accept one preload job is still eligible

    We try to allow one more job that the configured maximum, this extra
    job being a preload job that will be sent to the remote node
    in the hope that by the time the transfer finishes the node will
    have a slot free.
    llunak committed Jun 30, 2019
    Configuration menu
    Copy the full SHA
    6fde17c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6ab8860 View commit details
    Browse the repository at this point in the history
  3. fix typo "recveiving"

    llunak committed Jun 30, 2019
    Configuration menu
    Copy the full SHA
    5157268 View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2019

  1. Configuration menu
    Copy the full SHA
    77e3b83 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2019

  1. handle EWOULDBLOCK, especially in flush_writebuf() (icecc#456,icecc#408)

    Man pages for send and read say that EAGAIN and EWOULBLOCK are basically
    the same and that they should be checked both. Also, make sure
    log_perror() actually refers to the proper errno and not possibly
    to one from select(). This hopefully avoids the error messages
    from flush_writebuf() when the network gets overloaded.
    llunak committed Jul 5, 2019
    Configuration menu
    Copy the full SHA
    d03f718 View commit details
    Browse the repository at this point in the history
  2. try to strip binaries in icecc-create-env

    It used to be the case that it did 'strip -s' on the binaries, but
    f756262 reverted it because in icecc#154 somebody said that doing
    so corrupted the binaries there, for whatever reason.
    As now icecream automatically packages compiler in any location,
    this now again matters a bit more, as now it's easy to use icecream
    with a custom compiler build, so the "niche" case is now more likely
    (and I use it). And in that case this makes a big difference
    in the tarball size.
    Instead of using 'strip -s', which strips "all", use only --strip-unneeded
    or -g (= --strip-debug), which should be safe.
    llunak committed Jul 5, 2019
    Configuration menu
    Copy the full SHA
    ea8e854 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2019

  1. increase timeout 5->15s in MsgChannel::wait_for_protocol() (icecc#474)

    As said in the issue, I'm somewhat doubtful on this, but it probably
    can't hurt much, and if it does, then somebody will complain and
    provide details on how this can possibly hurt. Or maybe the change
    is ok, we'll see.
    llunak committed Jul 6, 2019
    Configuration menu
    Copy the full SHA
    dee71bb View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2019

  1. replace select() will poll() (icecc#453)

    The primary reason is that select() works only with fds up to FD_SETSIZE,
    which is 1024 on Linux.
    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    b248c3c View commit details
    Browse the repository at this point in the history
  2. limit the -pedantic workaround to gcc

    I see no point in limiting Clang just because GCC's -fdirectives-only
    has so many problems.
    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    b64ffa9 View commit details
    Browse the repository at this point in the history
  3. handle also POLLHUP when checking poll() results

    Unlike with select(), where readfds gets set even on EOF, with poll()
    POLLIN doesn't imply EOF and we need to check explicitly.
    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    d88799f View commit details
    Browse the repository at this point in the history
  4. change misleading log message

    The "while receiving" part to me suggests that the end was unexpected,
    but given that this is the only non-error break out of the loop,
    it's apparently actually ok.
    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    882a3a9 View commit details
    Browse the repository at this point in the history
  5. try harder to receive error from remote daemon if compiler is broken

    This should handle all those bugreports about "Broken pipe" such as icecc#257
    that in fact are just about the environment tarball being broken.
    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    1ce5d1a View commit details
    Browse the repository at this point in the history
  6. handle better the case when icecc-create-env fails

    Without this, instead of saying that the daemon failed to create the env,
    there is a confusing error message about
    "$ICECC_VERSION needs to point to .tar file".
    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    366e262 View commit details
    Browse the repository at this point in the history
  7. increase flush_writebuf() timeout to 30s and log timeout (icecc#456,i…

    …cecc#408)
    
    I've finally managed to reliably reproduce the problems with flush_writebuf()
    writing error messages and forcing local compilation (building LibreOffice's
    Clang compilerplugins with -g). It turns out that it really is the case
    that the sending times out. This means that in those cases the network is
    so overloaded that it doesn't manage to send files in 20 seconds.
    
    I don't think there is really that much to do about it. I've increased
    the timeout slightly to 30s, but if just the network transfer takes that
    long, then presumably a local recompile is faster anyway. So also add
    a log message saying it's a timeout and I guess that's it.
    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    b1f04ce View commit details
    Browse the repository at this point in the history
  8. fix typo

    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    e978a01 View commit details
    Browse the repository at this point in the history
  9. rename write_server_cpp() to write_fd_to_server()

    It's also used for sending the env. tarball and it's a bit confusing.
    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    8746ef2 View commit details
    Browse the repository at this point in the history
  10. make icecc-create-env faster with Clang built as shared libs

    With GCC or statically built Clang this doesn't matter, but if the compiler
    consists of a number of libs and those generally depend on each other,
    then add_files() gets called recursively, with many duplicates. It
    actually checks for duplicates, using is_contained(), but apparently
    doing path manipulations manually in bash is not very fast. This
    optimization saves about 2/3 of the time.
    llunak committed Jul 7, 2019
    Configuration menu
    Copy the full SHA
    c987923 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2019

  1. Configuration menu
    Copy the full SHA
    7466c80 View commit details
    Browse the repository at this point in the history
  2. make receiving environment more robust

    The daemon was actually handling pretty poorly the cases when it couldn't
    handle properly the environment it had received, e.g. when the tarball
    was compressed in a way it couldn't decompress. Where "poorly" means
    it easily crashed. Also handling of who deletes the Msg object was
    unconsistent and error handling of handle_file_chunk_env() was broken
    as well.
    llunak committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    aeba2f7 View commit details
    Browse the repository at this point in the history
  3. make scheduler's minimum-version-check work properly

    Avoid scheduler thinking the daemon has a lower version than it
    does just because the scheduler's version is lower than the daemon's
    and so MsgChannel had to use the common lowest denominator for mutual
    communication (i.e. remember also the daemon's actual version).
    llunak committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    a5eefdb View commit details
    Browse the repository at this point in the history
  4. prevent getting stuck on "No suitable host found, delaying"

    Sometimes the scheduler simply can't find any suitable host, e.g.
    when asking for a remote for an environment that none of the available
    nodes support, or maybe there's no node to have the required minimal
    version or required feature. In that case the scheduler would needlessly
    delay until it'd time out. So just bail our immediatelly in case
    there's no node that could possibly handle the job.
    llunak committed Jul 9, 2019
    Configuration menu
    Copy the full SHA
    623f714 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1cbd030 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5f5da80 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2019

  1. make icecc-create-env by avoiding needless repeated ldd

    7s->3s with my dynamically linked Clang.
    llunak committed Jul 10, 2019
    Configuration menu
    Copy the full SHA
    3ac9141 View commit details
    Browse the repository at this point in the history
  2. detect better when unpacking of environment actually was successful

    There wasn't any detection of whether the unpacking child process
    finished successfully or not. Moreover one Jenkins build managed
    to run into a state when the child finished before the daemon,
    which resulted in EPIPE in the daemon when trying to write more data
    (tarball had extra data at the end?).
    llunak committed Jul 10, 2019
    Configuration menu
    Copy the full SHA
    113e467 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2019

  1. more robust waiting for M_END message when receiving environment

    On Jenkins the M_END message for whatever strange reason can come
    with a delay after the file chunk messages. So really finish
    environment tranfer receiving after both the M_END message has been
    received and the unpacking child has finished.
    llunak committed Jul 12, 2019
    Configuration menu
    Copy the full SHA
    35b52ac View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    27aca26 View commit details
    Browse the repository at this point in the history
  3. add supports for checking if a remote node supports a feature

    To be used to check if the remote can unpack an environment compressed
    using xz/zstd, but can be used later if needed.
    llunak committed Jul 12, 2019
    Configuration menu
    Copy the full SHA
    82505ac View commit details
    Browse the repository at this point in the history
  4. support compressing compiler tarballs using xz and zstd

    Xz compresses much better than gzip (e.g. 39MiB->26MiB) and zstd
    compresses much faster and still a bit better than gzip, so gzip
    really only has the it-works-everywhere argument in its favour.
    Since daemons are already capable of handling tarballs compressed
    using these, add also optional support for automatically compressing
    using xz/zstd by setting ICECC_ENV_COMPRESSION=xz (or zstd).
    
    The patch includes proper handling of nodes that do not support
    these types (read: they will get ignored), and this handling itself
    requires that the scheduler is also new.
    
    By default, the old gzip compression is still used, so there should
    be no backwards compatibility problems. But with sufficient control
    over the cluster it's better to upgrade both the scheduler and nodes
    and then go with one of these methods.
    
    There's also one more "type" called 'none', which creates just
    uncompressed .tar, which is faster to create (and so it is used
    by tests). In fact, since tarballs themselves are transferred
    compressed by the internal zstd support, this is usable even
    for normal work, just taking a bit more disk space locally (plus
    it works around only recent libarchive having zstd support).
    llunak committed Jul 12, 2019
    Configuration menu
    Copy the full SHA
    c46375c View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2019

  1. limit number of local preprocessor invocations up to local cpus avail…

    …able (icecc#285)
    
    Apparently with large enough parallel builds the local preprocessor calls
    can cause a high local load (I can't reproduce, but then I don't use that
    large builds and possibly clang's -frewrite-includes is faster than
    gcc's preprocessor). So extend the local file locking to automatically
    use slots up to the number of local cpus(=threads) available. Using
    local locking is preferred to using JobLocalBeginMsg to the daemon
    because it's an internal detail and so it shouldn't e.g. show in icemon,
    it should(?) also be a bit faster and simpler.
    As a side effect this also changes runs without the local daemon available
    to serialize to more than one job.
    llunak committed Jul 13, 2019
    Configuration menu
    Copy the full SHA
    b1d8c33 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2019

  1. Merge pull request icecc#480 from llunak/xz-zstd-tarballs

    support compressing compiler tarballs using xz and zstd
    llunak authored Jul 15, 2019
    Configuration menu
    Copy the full SHA
    7193cbf View commit details
    Browse the repository at this point in the history
  2. Merge pull request icecc#486 from llunak/limited_cpp

    limit number of local preprocessor invocations up to local cpus available (icecc#285)
    llunak authored Jul 15, 2019
    Configuration menu
    Copy the full SHA
    987bed8 View commit details
    Browse the repository at this point in the history
  3. add --enable-debug to configure, for developer builds

    Currently normal production builds can abort on asserts, see e.g. icecc#452.
    So now by default a production build is done, without asserts,
    for developer builds use --enable-debug, which will enable asserts
    and disable compiler optimizations. The ICECC_DEBUG= mechanism is
    unaffected.
    llunak committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    8ee2f83 View commit details
    Browse the repository at this point in the history
  4. don't exit() silently in client

    An unlikely error, but still.
    llunak committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    1a9fb73 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    83ea1b5 View commit details
    Browse the repository at this point in the history
  6. rename 'newer scheduler' test to 'multiple schedulers'

    It was confusing, if two schedulers have the same version, it's
    actually the longer running one that's preferred (newer one would
    be stupid, somebody starting another scheduler would needlessly
    take over the cluster).
    llunak committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    f32a1df View commit details
    Browse the repository at this point in the history
  7. increase the listen() backlog argument to 1024

    The manpage says that if there are more pending connections than this
    that those may get refused, which seems needless (icecream does its
    own scheduling, so there shouldn't be too many remote connections,
    and many local parallel connections are ok as well).
    llunak committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    24e9198 View commit details
    Browse the repository at this point in the history
  8. implement --listen <address> option (icecc#427)

    This can help to listen on the right network interface if e.g. by
    default a slower VPN interface is selected.
    llunak committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    5e275a5 View commit details
    Browse the repository at this point in the history
  9. daemon: mention "[-p|--port <port>]" option in usage text

    Christoph Erhardt authored and llunak committed Jul 15, 2019
    Configuration menu
    Copy the full SHA
    10bfc1e View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2019

  1. fix protocol 41 client asking protocol 40 daemon for native env

    Not a very likely combination, but still.
    llunak committed Jul 16, 2019
    Configuration menu
    Copy the full SHA
    b9085dd View commit details
    Browse the repository at this point in the history
  2. fix sending CompileFileMsg arguments to protocol 40

    A mistake from 8801771.
    llunak committed Jul 16, 2019
    Configuration menu
    Copy the full SHA
    bf788b5 View commit details
    Browse the repository at this point in the history
  3. make protocol 41 client ask GetNative from protocol 40 daemon properly

    Older clients understand only "gcc" or "clang" as compilers.
    This is a mistake from 17e5024.
    llunak committed Jul 16, 2019
    Configuration menu
    Copy the full SHA
    2491820 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2019

  1. when using more "generic" library in icecc-create-env, check arch (ic…

    …ecc#393)
    
    The problem in icecc#393 is that the libc to use (which ldd gives) is
    /lib/x86_64-linux-gnu/libc.so.6, but there's /lib/libc.so.6 pointing to
    /lib/i386-linux-gnu/libc.so.6 .
    Also as an optimization do not do this if the regexp in sed fails
    with files in just one level of directories and so there's actually
    no parent lib.
    llunak committed Jul 18, 2019
    Configuration menu
    Copy the full SHA
    70b4590 View commit details
    Browse the repository at this point in the history
  2. Improve error messages for exec() calls

    If exec() fails, the user should be told which binary was supposed to be
    executed.
    Christoph Erhardt committed Jul 18, 2019
    Configuration menu
    Copy the full SHA
    fe4e299 View commit details
    Browse the repository at this point in the history
  3. make sending in small 10k chunks controlled by ICECC_SLOW_NETWORK (ic…

    …ecc#407)
    
    With limiting the rate of local preprocessors in icecc#486 the change from icecc#407
    should be much less needed and IMO it's now generally a needless slowdown
    that causes more system calls, possibly more context switches, etc.
    So change back to using large chunks by default and use the smaller ones
    only if ICECC_SLOW_NETWORK=1 is set.
    llunak committed Jul 18, 2019
    Configuration menu
    Copy the full SHA
    2db7459 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    310379c View commit details
    Browse the repository at this point in the history
  5. move unittests from tests/ to their own directory

    They were kind of lost among all the files used for tests.
    Unit tests are faster than "real" tests done by launching the binaries,
    so this could help reduce the time of running the tests.
    llunak committed Jul 18, 2019
    Configuration menu
    Copy the full SHA
    93f5141 View commit details
    Browse the repository at this point in the history
  6. remove unused $(LIBRSYNC)

    llunak committed Jul 18, 2019
    Configuration menu
    Copy the full SHA
    db476c2 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    339a209 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2019

  1. Merge pull request icecc#491 from mp-chet/better-error-messages-for-exec

     Improve error messages for exec() calls
    llunak authored Jul 20, 2019
    Configuration menu
    Copy the full SHA
    06b7985 View commit details
    Browse the repository at this point in the history

Commits on Jul 22, 2019

  1. remove icecc-create-env's handling of 'weird multilib setups' (icecc#464

    )
    
    This comes from 2008's ab934f2, which says it's for gentoo, but
    doesn't say more. It doesn't seem actually needed AFAICT, and it breaks
    Fedora with /lib64 being a symlink, and it's unclear what this was
    trying to solve or whether that is still a problem. So remove
    and if this change breaks it for something, at least they'll provide
    information on why this would be needed.
    llunak committed Jul 22, 2019
    Configuration menu
    Copy the full SHA
    4e50f58 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2019

  1. create_native(): return 1 on execv() failure

    This value will be returned by main() as the process exit status, so it
    should equal 1 (EXIT_FAILURE).
    Christoph Erhardt authored and llunak committed Jul 26, 2019
    Configuration menu
    Copy the full SHA
    169b35e View commit details
    Browse the repository at this point in the history
  2. create_native(): remove superfluous lstat() call

    This call is not needed. On the one hand, execv() will test for the
    file's existence and accessibility anyway; on the other hand, the
    information retrieved by lstat() might become outdated before execv() is
    called ("time of check to time of use", TOCTTOU).
    
    So we just remove the call to lstat().
    Christoph Erhardt authored and llunak committed Jul 26, 2019
    Configuration menu
    Copy the full SHA
    3d75cec View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2019

  1. Revert "implement --listen <address> option (icecc#427)"

    This reverts commit 5e275a5.
    Christoph Erhardt committed Jul 29, 2019
    Configuration menu
    Copy the full SHA
    35e14f4 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2019

  1. Allow restricting network access to a specific interface

    By default, both the daemon and the scheduler listen on all network
    interfaces, with no restrictions regarding the origin of a connection
    request. However, there are cases in which we may want to allow access
    from a certain network interface only. For example, we may want to put
    the icecream cluster into its own VPN.
    
    This commit adds an option for both the daemon and the scheduler to
    listen only on a specific interface. This is implemented in the
    following way: if the user specifies an interface name on the command
    line, the IP address of that interface is looked up and the socket is
    bound to that address.
    
    Caveats:
    * No more than one interface can be specified.
    * If an interface has more than one address, only the first one is
    considered.
    * The use of IPv4 is hardcoded (but this is the case all over the
    icecream code base).
    Christoph Erhardt committed Aug 5, 2019
    Configuration menu
    Copy the full SHA
    9b2409b View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2019

  1. Merge pull request icecc#495 from mp-chet/net-interfaces

    Allow restricting access to a specific network interface
    llunak authored Aug 16, 2019
    Configuration menu
    Copy the full SHA
    56e971e View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2019

  1. test also that debug tests print out properly value of a variable

    The gdb in openSUSE 15.1 seems to have a problem with compressed debuginfo,
    which is not Icecream's fault, but it's a good idea to do this check anyway.
    llunak committed Sep 1, 2019
    Configuration menu
    Copy the full SHA
    edff2f2 View commit details
    Browse the repository at this point in the history
  2. fix 'make test' depending on 'make check'

    With parallel make 'test' depends on install, which recursively invokes building
    in subdirs, and 'check' also recursively invokes building in subdirs, so ensure
    they are ordered properly, when recursive make doesn't handle that well.
    llunak committed Sep 1, 2019
    Configuration menu
    Copy the full SHA
    2ff9cb5 View commit details
    Browse the repository at this point in the history
  3. always make daemons listen on the loopback interface

    If --interface is used to restrict on what interface to listen, explicitly
    listen also on loopback. This generally shouldn't be needed, because there
    is the unix socket, but if the build runs in a chroot (e.g. with 'osc build'
    from the openSUSE build service), then the unix socket is not reachable
    and the client falls back to using the loopback.
    The scheduler shouldn't need any such mechanism, daemons shouldn't use
    loopback when talking to the scheduler.
    llunak committed Sep 1, 2019
    Configuration menu
    Copy the full SHA
    776b3e5 View commit details
    Browse the repository at this point in the history
  4. announce in MonStatMsg also the protocol and supported features

    So that icemon can display these for each node.
    llunak committed Sep 1, 2019
    Configuration menu
    Copy the full SHA
    c7c24ea View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2019

  1. log 'local cpp invocation failed' message by default

    We log this way other errors, and in this case it makes sense to print
    it because the cpp output will be possibly printed twice.
    llunak committed Sep 5, 2019
    Configuration menu
    Copy the full SHA
    c8d5b3e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ac730ce View commit details
    Browse the repository at this point in the history
  3. support testing with different protocol versions

    This allows running the test e.g. with an older scheduler, to test
    protocol backwards compatibility.
    llunak committed Sep 5, 2019
    Configuration menu
    Copy the full SHA
    81ace5f View commit details
    Browse the repository at this point in the history
  4. limit local recompile when cpp fails only to -fdirectives-only

    The change from a29944f is way too
    broad and somewhat annoying in case of actual cpp errors, as they
    get duplicated. Since without the somewhat problematic -fdirectives-only
    a cpp failure should always mean an actual error, limit the recompile
    only to the -fdirectives-only case.
    llunak committed Sep 5, 2019
    Configuration menu
    Copy the full SHA
    861030d View commit details
    Browse the repository at this point in the history
  5. log also when listening on all network interfaces

    For consistency, missing from 776b3e5.
    llunak committed Sep 5, 2019
    Configuration menu
    Copy the full SHA
    3d64a7c View commit details
    Browse the repository at this point in the history
  6. 1.3 NEWS

    llunak committed Sep 5, 2019
    Configuration menu
    Copy the full SHA
    2086233 View commit details
    Browse the repository at this point in the history
  7. add required libs to README

    llunak committed Sep 5, 2019
    Configuration menu
    Copy the full SHA
    52a6966 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2019

  1. Fix typo: Networ -> Network

    kwk authored and llunak committed Sep 11, 2019
    Configuration menu
    Copy the full SHA
    89dac40 View commit details
    Browse the repository at this point in the history
  2. waffle.io is no more

    llunak committed Sep 11, 2019
    Configuration menu
    Copy the full SHA
    d807940 View commit details
    Browse the repository at this point in the history
  3. fix case when icecream_version_micro is not set

    So that e.g. version 1.3 works properly and is not e.g. "1.3." .
    llunak committed Sep 11, 2019
    Configuration menu
    Copy the full SHA
    8c2048c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ec54119 View commit details
    Browse the repository at this point in the history
  5. more 1.3 news

    llunak committed Sep 11, 2019
    Configuration menu
    Copy the full SHA
    064f4c2 View commit details
    Browse the repository at this point in the history
  6. 1.3

    llunak committed Sep 11, 2019
    Configuration menu
    Copy the full SHA
    aa9e2fc View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2019

  1. fix typo

    llunak committed Sep 22, 2019
    Configuration menu
    Copy the full SHA
    fdeccc1 View commit details
    Browse the repository at this point in the history

Commits on Oct 5, 2019

  1. allow preloading more than one job on multi-core nodes

    I have a node with 8 (HT) cores and it often isn't fully loaded.
    The assumption is this is primarily because it can compile 8 jobs
    at a time and so just one preloaded job isn't enough to keep them
    busy if several of them finish compiling at about the same time.
    So allow one extra preloaded job per 4 allowed jobs, the preload
    feature probably comes from times when CPUs didn't have many cores.
    Picking a compile server penalizes ones that have many jobs assigned,
    so this generally shouldn't lead to overloading the fastest node
    at the expense of the others.
    llunak committed Oct 5, 2019
    Configuration menu
    Copy the full SHA
    d93e9c3 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2019

  1. handle flags for Clang modules

    Clang modules are handled the same way like precompiled headers.
    The basic assumption is that the same code should in practice compile
    equally with or without the module, and so for remote builds
    we simply strip the options and compile normally, which will save
    the hassle of having to transfer the modules. As I understand it
    Clang compiles modules in the background on demand as needed,
    so remote compilations not having anything to do with modules
    should be completely harmless.
    llunak committed Oct 24, 2019
    Configuration menu
    Copy the full SHA
    7bec654 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    df24c54 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2019

  1. Revert icecc-create-env darwin optimization

    Reverts Darwin changes made in 3ac9141
    
    refs icecc#509
    loganharbour authored and llunak committed Nov 26, 2019
    Configuration menu
    Copy the full SHA
    10b9468 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2020

  1. tweak creating pipes with a large output buffer

    According to perf/hotspot off-CPU profiling on my Linux machine,
    the compiler actually ends up waiting on write() calls, and it
    seems that F_SETPIPE_SZ can create a larger buffer than SO_SNDBUF.
    llunak committed Feb 4, 2020
    Configuration menu
    Copy the full SHA
    90e70af View commit details
    Browse the repository at this point in the history
  2. still invoke sudo for test.sh even for valgrind

    Because sudo is used in the script and this caches the password for it.
    llunak committed Feb 4, 2020
    Configuration menu
    Copy the full SHA
    937a2c4 View commit details
    Browse the repository at this point in the history
  3. get rid of the ASAN travis build

    Now it's broken even in the old deprecated Ubuntu system, I can't get
    it to work and I'm tired of fighting it. With the valgrind build there's
    not much point anyway. Feel free to get it to work if you know how.
    llunak committed Feb 4, 2020
    Configuration menu
    Copy the full SHA
    a24d282 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1ac241a View commit details
    Browse the repository at this point in the history
  5. use valgrind-listener in test.sh

    Recent versions of valgrind abort with error if they cannot write
    to --log-file, and this seems to cause problems with chroot-ed processes.
    So redirect to a socket and valgrind-listener.
    llunak committed Feb 4, 2020
    Configuration menu
    Copy the full SHA
    161d830 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d64397d View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2020

  1. The tilde doesn't need to be escaped in markdown.

    - The tilde doesn't need to be escaped in markdown.
    - placing some strings into "code" format by means of backticks.
    albert-github authored and llunak committed Feb 5, 2020
    Configuration menu
    Copy the full SHA
    0c7ef30 View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2020

  1. Compile locally with coverage argument

    According
    https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html
    --coverage option is a synonym for -fprofile-arcs -ftest-coverage.
    efokin authored and llunak committed Feb 27, 2020
    Configuration menu
    Copy the full SHA
    fb2861d View commit details
    Browse the repository at this point in the history

Commits on Feb 28, 2020

  1. enable C++11 (icecc#353)

    Or rather force it, because all(?) compilers in use support it, or even
    newer.
    llunak committed Feb 28, 2020
    Configuration menu
    Copy the full SHA
    db3a4b2 View commit details
    Browse the repository at this point in the history

Commits on Mar 24, 2020

  1. fix a typo in a function name

    llunak committed Mar 24, 2020
    Configuration menu
    Copy the full SHA
    fb1efa7 View commit details
    Browse the repository at this point in the history
  2. fixes for cache cleanup

    Remember the total size of an unpacked environment tarball instead
    of computing it on removal, because if something external removes
    something from it (e.g. an automatic system cleanup or /var/cache),
    then the reported sum will be smaller, so the daemon will think
    the cache takes up more than it does.
    llunak committed Mar 24, 2020
    Configuration menu
    Copy the full SHA
    f1e5ebe View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    424b6ca View commit details
    Browse the repository at this point in the history
  4. fix codacy warnings

    llunak committed Mar 24, 2020
    Configuration menu
    Copy the full SHA
    be4b682 View commit details
    Browse the repository at this point in the history
  5. use -Wextra

    It seems that -W (which IIRC is the old name for -Wextra) either doesn't
    work anymore or it doesn't work with Clang.
    llunak committed Mar 24, 2020
    Configuration menu
    Copy the full SHA
    fd5245a View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2020

  1. Configuration menu
    Copy the full SHA
    4f16a9f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    38a8002 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2020

  1. Configuration menu
    Copy the full SHA
    26573a6 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2020

  1. Configuration menu
    Copy the full SHA
    478e060 View commit details
    Browse the repository at this point in the history
  2. Install compile wrapper to correct directory. Update list of TODOs as…

    … headers are properly installed.
    brianhall12345 committed Mar 31, 2020
    Configuration menu
    Copy the full SHA
    041af27 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    46f31b3 View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2020

  1. Configuration menu
    Copy the full SHA
    f60e5e9 View commit details
    Browse the repository at this point in the history
  2. Create pkgconfig.

    brianhall12345 committed Apr 1, 2020
    Configuration menu
    Copy the full SHA
    4106559 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    20caf43 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6976121 View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2020

  1. Configuration menu
    Copy the full SHA
    0915fcb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    92a5ad1 View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2020

  1. Configuration menu
    Copy the full SHA
    102fb91 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ac7abc2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ce7e70e View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2020

  1. Configuration menu
    Copy the full SHA
    eb88945 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0cc91a3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    568e5ea View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6768362 View commit details
    Browse the repository at this point in the history