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/20210215124906.792439-3-punitagrawal%40gmail.com.

Reply via email to