Fix build on X11 following 64-bit detection changes

This also ports over the cross-compilation logic to the `server`
platform, and allows Embree to be used in server tools builds on aarch64.
This commit is contained in:
Hugo Locurcio 2024-02-06 01:24:11 +01:00
parent a81d96c637
commit b859a1898d
No known key found for this signature in database
GPG Key ID: 39E8F8BE30B0A49C
2 changed files with 13 additions and 7 deletions

View File

@ -82,9 +82,17 @@ def configure(env):
## Architecture
is64 = sys.maxsize > 2**32
# Cross-compilation
# TODO: Support cross-compilation on architectures other than x86.
host_is_64_bit = sys.maxsize > 2**32
if env["bits"] == "default":
env["bits"] = "64" if is64 else "32"
env["bits"] = "64" if host_is_64_bit else "32"
if host_is_64_bit and (env["bits"] == "32" or env["arch"] == "x86"):
env.Append(CCFLAGS=["-m32"])
env.Append(LINKFLAGS=["-m32"])
elif not host_is_64_bit and (env["bits"] == "64" or env["arch"] == "x86_64"):
env.Append(CCFLAGS=["-m64"])
env.Append(LINKFLAGS=["-m64"])
if env["arch"] == "" and platform.machine() == "riscv64":
env["arch"] = "rv64"
@ -264,10 +272,8 @@ def configure(env):
if not env["builtin_pcre2"]:
env.ParseConfig("pkg-config libpcre2-32 --cflags --libs")
# Embree is only compatible with x86_64. Yet another unreliable hack that will break
# cross-compilation, this will really need to be handle better. Thankfully only affects
# people who disable builtin_embree (likely distro packagers).
if env["tools"] and not env["builtin_embree"] and (is64 and platform.machine() == "x86_64"):
# Embree is only used in tools build on x86_64 and aarch64.
if env["tools"] and not env["builtin_embree"] and host_is_64_bit:
# No pkgconfig file so far, hardcode expected lib name.
env.Append(LIBS=["embree3"])

View File

@ -358,7 +358,7 @@ def configure(env):
env.ParseConfig("pkg-config libpcre2-32 --cflags --libs")
# Embree is only used in tools build on x86_64 and aarch64.
if env["tools"] and not env["builtin_embree"] and is64:
if env["tools"] and not env["builtin_embree"] and host_is_64_bit:
# No pkgconfig file so far, hardcode expected lib name.
env.Append(LIBS=["embree3"])