Closed Bug 1586100 Opened 5 years ago Closed 5 years ago

Spidermonkey build failure with --enable-clang-plugin: No rule to make target 'js/src/export', needed by 'build/clang-plugin/tests/target-objects'.

Categories

(Developer Infrastructure :: Source Code Analysis, defect, P3)

defect

Tracking

(firefox72 fixed)

RESOLVED FIXED
mozilla72
Tracking Status
firefox72 --- fixed

People

(Reporter: mgaudet, Assigned: glandium)

References

Details

Attachments

(2 files)

STR:

  1. Checkout central (or 001e665b6b2c at time of writing)
  2. mkdir js/src/build_clang_format_DBG.OBJ; cd js/src/build_clang_format_DBG.OBJ
  3. ../configure --enable-clang-plugin
  4. make

Expected result: Build succeeds and clang plugin detects errors if any.

Actual Result:

matthew@xtower:~/unified/js/src/build_clang_plugin_DBG.OBJ$ make
make[1]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ'
make recurse_pre-export
make[2]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ'
/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_include.track dist/include _build_manifests/install/dist_include
Elapsed: 0.02s; From dist/include: Kept 406 existing; Added/updated 0; Removed 0 files and 0 directories.
/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_public.track dist/public _build_manifests/install/dist_public
Elapsed: 0.00s; From dist/public: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_private.track dist/private _build_manifests/install/dist_private
Elapsed: 0.00s; From dist/private: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install__tests.track _tests _build_manifests/install/_tests
Elapsed: 0.03s; From _tests: Kept 489 existing; Added/updated 0; Removed 0 files and 0 directories.
/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_bin.track dist/bin _build_manifests/install/dist_bin
Elapsed: 0.00s; From dist/bin: Kept 1 existing; Added/updated 0; Removed 0 files and 0 directories.
make[2]: Leaving directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ'
make[1]: Leaving directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ'
make[1]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ'
make recurse_export
make[2]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ'
make[3]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/build/clang-plugin'
make[3]: Nothing to be done for 'host-objects'.
make[3]: Leaving directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/build/clang-plugin'
make[2]: Circular build/clang-plugin/host <- config/export dependency dropped.
make[3]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/build/clang-plugin'
make[3]: Nothing to be done for 'host'.
make[3]: Leaving directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/build/clang-plugin'
make[2]: Circular js/src/export <- config/export dependency dropped.
make[2]: Circular js/src/export <- config/host dependency dropped.
make[3]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/js/src'
make[3]: Nothing to be done for 'export'.
make[3]: Leaving directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/js/src'
make[3]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/build/clang-plugin/tests'

<snipped test files building> 

make recurse_compile
make[2]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ'
make[3]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/build/clang-plugin'
make[3]: Nothing to be done for 'host-objects'.
make[3]: Leaving directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/build/clang-plugin'
make[3]: Entering directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/build/clang-plugin'
make[3]: Nothing to be done for 'host'.
make[3]: Leaving directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ/build/clang-plugin'
make[2]: *** No rule to make target 'js/src/export', needed by 'build/clang-plugin/tests/target-objects'.  Stop.
make[2]: Leaving directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ'
/home/matthew/unified/config/recurse.mk:32: recipe for target 'compile' failed
make[1]: *** [compile] Error 2
make[1]: Leaving directory '/home/matthew/unified/js/src/build_clang_plugin_DBG.OBJ'
/home/matthew/unified/config/rules.mk:389: recipe for target 'default' failed
make: *** [default] Error 2

Not sure what the deal is with the circular dependency warnings, but they seem key to this failure.

The priority flag is not set for this bug.
:Sylvestre, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(sledru)

Not sure it is indeed supported.

Flags: needinfo?(sledru)
Priority: -- → P3

Oh, this also fails with mach based building of JS:

Mozconfig:

ac_add_options --enable-application=js
ac_add_options --enable-clang-plugin

produces the same error.

Is it blocking you? Thanks

No, the priority seems right. It would be nice to have working, because I shell build about 10-50x as often as I do a browser build, but I know I'm in the minority.

I would say though, for JS devs, it would reduce backouts: Just got backed out in Bug 1580338 for the "explicit" required check, which is checked by static analysis, and would be prevented by being able to add --clang-plugin to shell only builds (which we could then do in treeherder for people using things like mach try --preset=sm-shell )

Just built the browser with --enable-clang-plugin, and noticed the circular dependency message is also emitted:

0:01.55 make[3]: Circular build/clang-plugin/host <- config/export dependency dropped.

Assignee: nobody → mh+mozilla
Blocks: 1594851
Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/autoland/rev/5c88ec5a98a6
Avoid circular dependencies related to config/export|host. r=dmajor
https://hg.mozilla.org/integration/autoland/rev/4ab85fb8f492
Only depend on js/src/export when it is available. r=dmajor
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
Blocks: 1599574
Product: Firefox Build System → Developer Infrastructure
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: