This also does not work on Fedora:

./scripts/build mode=release image=tests fs=rofs -j$(nproc) arch=aarch64
--create-disk

Building into build/release.aarch64

Makefile:1857: *** Error: libboost_system.a needs to be installed..  Stop.

make failed. Exiting from build script

On Mon, Feb 15, 2021 at 7:49 AM Punit Agrawal <[email protected]>
wrote:

> Commits 5a9be20243fd ("boost: enhance main makefile to build against
> arbitrary boost") and 765fa172ab41 ("boost: enhance modules/common.gmk
> to build against arbitrary boost") added support for allowing the user
> to specify arbitrary boost_base but left in place the special casing
> when building for aarch64.
>
> As boost_base can also be used to specify the location for aarch64
> boost libraries when required, drop the extra logic that hard codes
> paths for arm64 in favour of the more flexible approach.
>
> As an added benefit the change also enables cross building in
> environments where the compiler can be trusted to correctly resolve
> the library paths such as on Debian or Ubuntu.
>
> Signed-off-by: Punit Agrawal <[email protected]>
> ---
>  Makefile           | 33 ++++++++++-----------------------
>  modules/common.gmk | 27 +++++++--------------------
>  2 files changed, 17 insertions(+), 43 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 9d80f095a3c7..b5d3f2cb0892 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1847,33 +1847,20 @@ endif
>
>  #Allow user specify non-default location of boost
>  ifeq ($(boost_base),)
> -    ifeq ($(CROSS_PREFIX),)
> -        # link with -mt if present, else the base version (and hope it is
> multithreaded)
> -        boost-mt := -mt
> +    # link with -mt if present, else the base version (and hope it is
> multithreaded)
> +    boost-mt := -mt
> +    boost-lib-dir := $(dir $(shell $(CC) --print-file-name
> libboost_system$(boost-mt).a))
> +    ifeq ($(filter /%,$(boost-lib-dir)),)
> +        boost-mt :=
>          boost-lib-dir := $(dir $(shell $(CC) --print-file-name
> libboost_system$(boost-mt).a))
>          ifeq ($(filter /%,$(boost-lib-dir)),)
> -            boost-mt :=
> -            boost-lib-dir := $(dir $(shell $(CC) --print-file-name
> libboost_system$(boost-mt).a))
> -            ifeq ($(filter /%,$(boost-lib-dir)),)
> -                $(error Error: libboost_system.a needs to be installed.)
> -            endif
> -        endif
> -        # When boost_env=host, we won't use "-nostdinc", so the build
> machine's
> -        # header files will be used normally. So we don't need to add
> anything
> -        # special for Boost.
> -        boost-includes =
> -    else
> -        ifeq ($(arch),aarch64)
> -            aarch64_boostbase =
> build/downloaded_packages/aarch64/boost/install
> -            ifeq (,$(wildcard $(aarch64_boostbase)))
> -                $(error Missing $(aarch64_boostbase) directory. Please
> run "./scripts/download_aarch64_packages.py")
> -            endif
> -
> -            boost-lib-dir := $(firstword $(dir $(shell find
> $(aarch64_boostbase)/ -name libboost_system*.a)))
> -            boost-mt := $(if $(filter %-mt.a, $(wildcard
> $(boost-lib-dir)/*.a)),-mt)
> -            boost-includes = -isystem $(aarch64_boostbase)/usr/include
> +            $(error Error: libboost_system.a needs to be installed.)
>          endif
>      endif
> +    # When boost_env=host, we won't use "-nostdinc", so the build
> machine's
> +    # header files will be used normally. So we don't need to add anything
> +    # special for Boost.
> +    boost-includes =
>  else
>      # Use boost specified by the user
>      boost-lib-dir := $(firstword $(dir $(shell find $(boost_base)/ -name
> libboost_system*.a)))
> diff --git a/modules/common.gmk b/modules/common.gmk
> index e0814b42414e..6ae5870ae365 100644
> --- a/modules/common.gmk
> +++ b/modules/common.gmk
> @@ -123,27 +123,14 @@ endif
>  # Let us detect presence of boost headers and library
>  # Allow user specify non-default location of boost
>  ifeq ($(boost_base),)
> -    ifeq ($(CROSS_PREFIX),)
> -        boost-lib-dir := $(dir $(shell $(CC) --print-file-name
> libboost_system.so))
> -        ifeq ($(filter /%,$(boost-lib-dir)),)
> -            $(error Error: libboost_system.so needs to be installed.)
> -        endif
> -        # When boost_env=host, we won't use "-nostdinc", so the build
> machine's
> -        # header files will be used normally. So we don't need to add
> anything
> -        # special for Boost.
> -        boost-includes =
> -    else
> -        ifeq ($(arch),aarch64)
> -            aarch64_boostbase =
> $(src)/build/downloaded_packages/aarch64/boost/install
> -            ifeq (,$(wildcard $(aarch64_boostbase)))
> -                $(error Missing $(aarch64_boostbase) directory. Please
> run "./scripts/download_aarch64_packages.py")
> -            endif
> -
> -            boost-lib-dir := $(firstword $(dir $(shell find
> $(aarch64_boostbase)/ -name libboost_system.so)))
> -            LDFLAGS += -L$(boost-lib-dir)
> -            boost-includes = -isystem $(aarch64_boostbase)/usr/include
> -        endif
> +    boost-lib-dir := $(dir $(shell $(CC) --print-file-name
> libboost_system.so))
> +    ifeq ($(filter /%,$(boost-lib-dir)),)
> +        $(error Error: libboost_system.so needs to be installed.)
>      endif
> +    # When boost_env=host, we won't use "-nostdinc", so the build
> machine's
> +    # header files will be used normally. So we don't need to add anything
> +    # special for Boost.
> +    boost-includes =
>  else
>      ifeq ($(filter /%,$(boost_base)),)
>          absolute_boost_base := $(src)/$(boost_base)# It must be relative
> OSv root
> --
> 2.29.2
>
>

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/CAL9cFfN2GwtQBZKzhaoe4pc58Uiwm4otm93pWW97y_LW8uN9Aw%40mail.gmail.com.

Reply via email to