issues

parallel: race making common prereq

According to Re: Race condition with parallel recursive make

You must have the target built by only one makefile, and the other
makefiles should merely depend on it.  Whenever you have more than one
makefile that contains rules to build the same target, you have a
problem

No known features for CXX compiler

-- Configuring done
CMake Error in src/csync/CMakeLists.txt:
  No known features for CXX compiler

  "GNU"

  version 10.2.1.

Source was changed a lot. Solution: remove build directory and run again.

warning: jobserver unavailable

make[2]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.

Cause:

  • When parallel build is used, subsequent call to make was performed using normal
    make ...

    call not

    $(MAKE) ...

    .

  • Even with correct
    $(MAKE)

    usage, it is not working when $(MAKE) was used in variable:

DUMP_FILE_LIST := "$(MAKE)" -s --no-print-directory ...
%.out:
        $(NO_ECHO)$(DUMP_FILE_LIST) ...

Correct usage is to add + before $(MAKE):

DUMP_FILE_LIST := +"$(MAKE)" -s --no-print-directory ...
The problem is that GNU make, to implement parallel build, requires special options and descriptors to be passed
over the sub-make calls, this happens automatically when make is invoked directly or through $(MAKE) but if it’s
indirected through variables, then it’s not happening automatically and the developer has to tell GNU make to
actually pass the options along.