From f4fee4d6c062b6ab4aa46bf2d942a4bff3481e05 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 15 Apr 2021 23:08:05 +0300 Subject: Make build scripts to create hermetic configurations --- BOOTSTRAP-UNIX.cli | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'BOOTSTRAP-UNIX.cli') diff --git a/BOOTSTRAP-UNIX.cli b/BOOTSTRAP-UNIX.cli index 5ffa6b2..70e9a08 100644 --- a/BOOTSTRAP-UNIX.cli +++ b/BOOTSTRAP-UNIX.cli @@ -223,10 +223,11 @@ a local installation and skip the rest of the steps. To perform a local installation you will need to change the \c{configure} and \c{install} command lines above along these lines (see also notes on the following step about only building shared libraries, private installation -subdirectory, and toolchain executables prefix/suffix): +subdirectory, toolchain executables prefix/suffix, etc): \ $ build2/build2/b-boot configure \ + config.config.hermetic=true \ config.cxx=g++ \ config.cc.coptions=-O3 \ config.bin.lib=shared \ @@ -276,6 +277,7 @@ $ cd build2-toolchain-X.Y $ bpkg-stage create \ cc \ + config.config.hermetic=true \ config.cxx=g++ \ config.cc.coptions=-O3 \ config.bin.lib=shared \ @@ -300,6 +302,13 @@ then you can remove \c{config.install.private=build2}.| \N|To add a custom prefix/suffix to the toolchain executables names, add \c{config.bin.exe.prefix=...} and/or \c{config.bin.exe.suffix=...}.| +\N|The \c{config.config.hermetic=true} configuration variable in the above +command makes sure the embedded \c{~host} and \c{~build2} configurations +include the current environment. This is especially important for \c{~build2} +which is used to dynamically build and load ad hoc recipes and build system +modules and must therefore match the environment that was used to build the +build system itself.| + Next, we add the package repository, build, and install: \ -- cgit v1.1