1. 5
  1.  

  2. 2

    Congratulations on the release. I found this anecdote in the FAQ interesting:

    A mailing list thread of 20 messages where we painstakingly discovered that the user accidentally built our library with libstdc++ and their application with libc++ which all resulted in mysterious crashes (exception handling was not working properly) – this is a waste of life.

    How does build2 prevent compilers from linking against the wrong libraries? It seems like a difficult problem, given that linking against a base system is allowed:

    The build2 build system will happily use a system-installed library; there is even pkg-config integration to extract additional information such as the location of headers, additional libraries to link, etc.

    1. 1

      How does build2 prevent compilers from linking against the wrong libraries?

      It doesn’t prevent it per se, rather it makes it less likely to happen on the “default path” where everything is built from source, in the same build configuration, and using the build2 build system. The “waste of life” rarely happens when an expert configures their build to use some dependencies as system-installed. Rather it happens when a novice has no choice but to build dependencies of their project using N different build systems.

      Congratulations on the release.

      Thank you!