Solaris build failure after ANGLE revendor: missing rule for ANGLEShaderProgramVersion.h.rsp
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
People
(Reporter: petr.sumbera, Unassigned)
References
(Regression)
Details
(Keywords: regression)
Steps to reproduce:
Likely regressed by:
Bug 2035541 - Re-vendor ANGLE using new process
commit 7320f912e2a3
This commit introduced the new generated third_party/angle/*_gn/moz.build layout and the angle_program_version_id_gn target.
Affected platform
Solaris / SunOS, both x86_64 and sparc64.
Failure
Solaris build fails during export:
gmake[3]: *** No rule to make target
'third_party/angle/gen/ANGLEShaderProgramVersion.h.rsp',
needed by
'third_party/angle/gen/.deps/ANGLEShaderProgramVersion.h.stub'. Stop.
gmake[2]: *** [config/recurse.mk:34: export] Error 2
gmake[1]: *** [config/rules.mk:357: default] Error 2
gmake: *** [client.mk:58: build] Error 2
Cause
third_party/angle/angle_program_version_id_gn/moz.build always declares:
GeneratedFile(
"/third_party/angle/gen/ANGLEShaderProgramVersion.h",
extra_deps=['!/third_party/angle/gen/ANGLEShaderProgramVersion.h.rsp'],
...
)
but it only creates ANGLEShaderProgramVersion.h.rsp for:
Android
Darwin
Linux
OpenBSD
WINNT
There is no SunOS branch, so the dependency has no generating rule on Solaris.
Also, third_party/angle/angle_common_gn/moz.build has no SunOS branch for the platform-specific system_utils_* sources. Before the ANGLE revendor, Solaris built ANGLE
common code with:
system_utils_posix.cpp
system_utils_linux.cpp
from the old gfx/angle/targets/angle_common/moz.build.
Suggested fix
Add SunOS handling to the generated ANGLE moz.build files, matching the previous Solaris source set:
diff --git a/third_party/angle/angle_common_gn/moz.build b/third_party/angle/angle_common_gn/moz.build
--- a/third_party/angle/angle_common_gn/moz.build
+++ b/third_party/angle/angle_common_gn/moz.build
@@ -144,6 +144,13 @@ if CONFIG["OS_TARGET"] == "OpenBSD":
DEFINES["__STDC_CONSTANT_MACROS"] = True
DEFINES["__STDC_FORMAT_MACROS"] = True
+if CONFIG["OS_TARGET"] == "SunOS":
+
+ UNIFIED_SOURCES += [
+ "/third_party/angle/src/common/system_utils_linux.cpp",
+ "/third_party/angle/src/common/system_utils_posix.cpp"
+ ]
+
if CONFIG["OS_TARGET"] == "WINNT":
DEFINES["ANGLE_IS_WIN"] = True
diff --git a/third_party/angle/angle_program_version_id_gn/moz.build b/third_party/angle/angle_program_version_id_gn/moz.build
--- a/third_party/angle/angle_program_version_id_gn/moz.build
+++ b/third_party/angle/angle_program_version_id_gn/moz.build
@@ -69,6 +69,15 @@ if CONFIG["OS_TARGET"] == "OpenBSD":
script="/python/mozbuild/mozbuild/action/write_path_list.py",
)
+if CONFIG["OS_TARGET"] == "SunOS":
+
+ GeneratedFile(
| Reporter | ||
Updated•4 days ago
|
| Reporter | ||
Comment 1•4 days ago
|
||
Full suggested fix:
--- a/third_party/angle/angle_common_gn/moz.build Thu Jul 16 17:00:00 2026 -0700
+++ b/third_party/angle/angle_common_gn/moz.build Thu Jul 16 17:00:00 2026 -0700
@@ -144,6 +144,13 @@
DEFINES["__STDC_CONSTANT_MACROS"] = True
DEFINES["__STDC_FORMAT_MACROS"] = True
+if CONFIG["OS_TARGET"] == "SunOS":
+
+ UNIFIED_SOURCES += [
+ "/third_party/angle/src/common/system_utils_linux.cpp",
+ "/third_party/angle/src/common/system_utils_posix.cpp"
+ ]
+
if CONFIG["OS_TARGET"] == "WINNT":
DEFINES["ANGLE_IS_WIN"] = True
diff -r 000000000000 -r 000000000000 third_party/angle/angle_program_version_id_gn/moz.build
--- a/third_party/angle/angle_program_version_id_gn/moz.build Thu Jul 16 17:00:00 2026 -0700
+++ b/third_party/angle/angle_program_version_id_gn/moz.build Thu Jul 16 17:00:00 2026 -0700
@@ -69,6 +69,15 @@
script="/python/mozbuild/mozbuild/action/write_path_list.py",
)
+if CONFIG["OS_TARGET"] == "SunOS":
+
+ GeneratedFile(
+ "/third_party/angle/gen/ANGLEShaderProgramVersion.h.rsp",
+ entry_point="write_paths",
+ inputs=['ANGLEShaderProgramVersion.h-f55f152d23101920.rsp.in'],
+ script="/python/mozbuild/mozbuild/action/write_path_list.py",
+ )
+
if CONFIG["OS_TARGET"] == "WINNT":
DEFINES["UNICODE"] = True
Comment 2•4 days ago
|
||
:jnicol, since you are the author of the regressor, bug 2035541, could you take a look? Also, could you set the severity field?
For more information, please visit BugBot documentation.
Comment 3•4 days ago
|
||
The Bugbug bot thinks this bug should belong to the 'Firefox Build System::General' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.
Comment 4•10 hours ago
|
||
Previously we only built a complex ANGLE configuration for windows (the D3D backend), and on other platforms we only built the translator target which is simple. This means we could generate a proper ANGLE build configuration only for windows then derive our moz.build files from it, then just add a few additional paths required for other platforms.
We now want to build complex ANGLE configurations for more platforms: currently the Metal backend on macOS, but perhaps in the future Vulkan on Linux and Android too. The old approach doesn't scale to this, so as of bug 2035541 we now generate the full build configuration for all (supported) platforms and fully derive the moz.build files from that.
Unfortunately since neither upstream ANGLE nor the script we use to generate the build configurations supports Solaris, this causes this issue.
I'll have a think about how we could improve this, but it's not straightforward. So in the meantime this may have to be patched downstream.
Description
•