Skip to content

Commit

Permalink
Fix build on X11 following 64-bit detection changes
Browse files Browse the repository at this point in the history
This also ports over the cross-compilation logic to the `server`
platform, and allows Embree to be used in server tools builds on aarch64.
  • Loading branch information
Calinou committed Feb 7, 2024
1 parent a81d96c commit b859a18
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
18 changes: 12 additions & 6 deletions platform/server/detect.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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"])

Expand Down
2 changes: 1 addition & 1 deletion platform/x11/detect.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"])

Expand Down

0 comments on commit b859a18

Please sign in to comment.