Regression in "make install" in embedder builds
Categories
(Firefox Build System :: General, defect)
Tracking
(firefox-esr115 unaffected, firefox-esr128 fixed, firefox128 wontfix, firefox129 wontfix, firefox130 fixed)
Tracking | Status | |
---|---|---|
firefox-esr115 | --- | unaffected |
firefox-esr128 | --- | fixed |
firefox128 | --- | wontfix |
firefox129 | --- | wontfix |
firefox130 | --- | fixed |
People
(Reporter: ptomato, Assigned: glandium)
References
(Regression)
Details
(Keywords: regression)
Attachments
(12 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-esr128+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-esr128+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-esr128+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-esr128+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-esr128+
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-esr128+
|
Details | Review |
This seems to be a regression from Bug 1459764. Running make install
fails:
make[2]: *** No rule to make target 'libmozjs-128.so', needed by 'install'. Stop.
make[2]: Leaving directory '/.../mozjs-128.0.0/js/src/_build/js/src/build'
make[1]: *** [Makefile:99: install] Error 2
make[1]: Leaving directory '/.../mozjs-128.0.0/js/src/_build/js/src'
make: *** [Makefile:225: install] Error 2
I believe this is due to an unforeseen interaction with the install rules in js/src/build/Makefile.in
: https://searchfox.org/mozilla-central/source/js/src/build/Makefile.in#75-90
It looks like the SHARED_LIBRARY
variable gained a full path, which is necessary because it is now generated in dist/bin
. While the IMPORT_LIBRARY
variable remained just a filename. (The import library is only generated on Windows. On other platforms, IMPORT_LIBRARY
is supposed to be identical to SHARED_LIBRARY
.)
The immediate cause of the failure is that Make looks for the install
prerequisite IMPORT_LIBRARY
(whose value is libmozjs-128.so
) in the current directory $builddir/js/src/build/
, whereas it should be located in $builddir/dist/bin/
, and fails because there is no rule to build it in $builddir/js/src/build/
.
However once that is fixed, we still need to ensure that IMPORT_LIBRARY
and SHARED_LIBRARY
have the same value on non-Windows platforms, to satisfy the ifneq ($(IMPORT_LIBRARY),$(SHARED_LIBRARY))
check below.
I think the easiest fix is probably in https://searchfox.org/mozilla-central/source/python/mozbuild/mozbuild/backend/recursivemake.py#1367, set IMPORT_LIBRARY
to something like self._pretty_path(libdef.output_path, libdef.import_name)
and I'm happy to make and test a patch for that, if it seems like the way to go.
Assignee | ||
Updated•4 months ago
|
Assignee | ||
Comment 1•4 months ago
|
||
Updated•4 months ago
|
Assignee | ||
Comment 2•4 months ago
|
||
Can you test the attached patch?
Reporter | ||
Comment 3•4 months ago
|
||
This makes IMPORT_LIBRARY an absolute path, to match the change to
SHARED_LIBRARY so that the IMPORT_LIBRARY target can be found in
js/src/build/Makefile.in. Fixes regression in standalone build 'make
install'.
Reporter | ||
Comment 4•4 months ago
|
||
D215970 doesn't fix the immediate problem, which is that the prerequisites for the install
target can't be satisfied.
I've attached a new patch that fixes the problem for me.
I think the first change of D215970 is correct and necessary as well, but the second change will no longer work if D215992 is accepted.
Comment 5•4 months ago
|
||
Set release status flags based on info from the regressing bug 1459764
Updated•4 months ago
|
Assignee | ||
Comment 6•4 months ago
|
||
Its only use was removed in bug 1304815.
Assignee | ||
Comment 7•4 months ago
|
||
For consistency with other Library classes, import_name should be the
"import" library name, while import_path is the full path.
Assignee | ||
Comment 8•4 months ago
|
||
This will allow to use better backend primitives to use it in a
subsequent change.
Assignee | ||
Comment 9•4 months ago
|
||
Updated•4 months ago
|
Updated•4 months ago
|
Comment 10•4 months ago
|
||
Comment 11•4 months ago
|
||
Backed out for causing python failure on test_recursivemake.py::TestRecursiveMakeBackend
Assignee | ||
Updated•4 months ago
|
Comment 12•4 months ago
|
||
Comment 13•4 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/a0bb59edb3c3
https://hg.mozilla.org/mozilla-central/rev/682de9005b7f
https://hg.mozilla.org/mozilla-central/rev/743b41e65f84
https://hg.mozilla.org/mozilla-central/rev/23022456c1af
https://hg.mozilla.org/mozilla-central/rev/137ae2391cb1
https://hg.mozilla.org/mozilla-central/rev/9c1a7ace8507
Comment 14•4 months ago
|
||
The patch landed in nightly and beta is affected.
:glandium, is this bug important enough to require an uplift?
- If yes, please nominate the patch for beta approval.
- If no, please set
status-firefox129
towontfix
.
For more information, please visit BugBot documentation.
Comment 15•4 months ago
|
||
Probably not important for Beta129, but we'll want this on ESR128. It does graft cleanly.
Assignee | ||
Comment 16•4 months ago
|
||
Yes, I want to get it on esr128, but bug 1907361 prevents that from happening at the moment.
Assignee | ||
Comment 17•4 months ago
|
||
Its only use was removed in bug 1304815.
Original Revision: https://phabricator.services.mozilla.com/D216140
Updated•4 months ago
|
Assignee | ||
Comment 18•4 months ago
|
||
For consistency with other Library classes, import_name should be the
"import" library name, while import_path is the full path.
Original Revision: https://phabricator.services.mozilla.com/D216141
Updated•4 months ago
|
Assignee | ||
Comment 19•4 months ago
|
||
This will allow to use better backend primitives to use it in a
subsequent change.
Original Revision: https://phabricator.services.mozilla.com/D216142
Updated•4 months ago
|
Assignee | ||
Comment 20•4 months ago
|
||
Original Revision: https://phabricator.services.mozilla.com/D216143
Updated•4 months ago
|
Assignee | ||
Comment 21•4 months ago
|
||
This makes IMPORT_LIBRARY a full path, to match the change to
SHARED_LIBRARY so that the IMPORT_LIBRARY target can be found in
js/src/build/Makefile.in. Fixes regression in js standalone build 'make
install'.
Initial patch by Philip Chimento.
Original Revision: https://phabricator.services.mozilla.com/D215992
Updated•4 months ago
|
Assignee | ||
Comment 22•4 months ago
|
||
Original Revision: https://phabricator.services.mozilla.com/D215970
Updated•4 months ago
|
Comment 23•4 months ago
|
||
esr128 Uplift Approval Request
- User impact if declined:
make install
failure when building standalone JS - Code covered by automated testing: no
- Fix verified in Nightly: yes
- Needs manual QE test: no
- Steps to reproduce for manual QE testing: N/A
- Risk associated with taking this patch: Low
- Explanation of risk level: Build system only
- String changes made/needed: N/A
- Is Android affected?: no
Comment 24•4 months ago
|
||
esr128 Uplift Approval Request
- User impact if declined:
make install
failure when building standalone JS - Code covered by automated testing: no
- Fix verified in Nightly: yes
- Needs manual QE test: no
- Steps to reproduce for manual QE testing: N/A
- Risk associated with taking this patch: Low
- Explanation of risk level: Build system only
- String changes made/needed: N/A
- Is Android affected?: no
Comment 25•4 months ago
|
||
esr128 Uplift Approval Request
- User impact if declined:
make install
failure when building standalone JS - Code covered by automated testing: no
- Fix verified in Nightly: yes
- Needs manual QE test: no
- Steps to reproduce for manual QE testing: N/A
- Risk associated with taking this patch: Low
- Explanation of risk level: Build system only
- String changes made/needed: N/A
- Is Android affected?: no
Comment 26•4 months ago
|
||
esr128 Uplift Approval Request
- User impact if declined:
make install
failure when building standalone JS - Code covered by automated testing: no
- Fix verified in Nightly: yes
- Needs manual QE test: no
- Steps to reproduce for manual QE testing: N/A
- Risk associated with taking this patch: Low
- Explanation of risk level: Build system only
- String changes made/needed: N/A
- Is Android affected?: no
Comment 27•4 months ago
|
||
esr128 Uplift Approval Request
- User impact if declined:
make install
failure when building standalone JS - Code covered by automated testing: no
- Fix verified in Nightly: yes
- Needs manual QE test: no
- Steps to reproduce for manual QE testing: N/A
- Risk associated with taking this patch: Low
- Explanation of risk level: Build system only
- String changes made/needed: N/A
- Is Android affected?: no
Comment 28•4 months ago
|
||
esr128 Uplift Approval Request
- User impact if declined:
make install
failure when building standalone JS - Code covered by automated testing: no
- Fix verified in Nightly: yes
- Needs manual QE test: no
- Steps to reproduce for manual QE testing: N/A
- Risk associated with taking this patch: Low
- Explanation of risk level: Build system only
- String changes made/needed: N/A
- Is Android affected?: no
Assignee | ||
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Comment 29•4 months ago
|
||
uplift |
Updated•4 months ago
|
Description
•