Closed Bug 961339 Opened 11 years ago Closed 6 years ago

Minimal resource changes cause various robocop failures, requiring clobber

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: bnicholson, Assigned: nalexander)

References

Details

Attachments

(1 file, 2 obsolete files)

Bug 917896, which contains only updated png files and a single .java addition to moz.build, had several robocop failures when pushed: https://tbpl.mozilla.org/?tree=Fx-Team&rev=a63deedeb4b7. Try is all green, however, so the problem is likely due to a needed clobber: https://tbpl.mozilla.org/?tree=Try&rev=7e2e23d43969 A clobber shouldn't be necessary here.
(In reply to Brian Nicholson (:bnicholson) from comment #0) > Bug 917896, which contains only updated png files and a single .java > addition to moz.build That is, speaking in terms of resource changes. Also forgot to mention that a couple layout XML files were modified.
Assignee: nobody → nalexander
Status: NEW → ASSIGNED
Attachment #8362696 - Attachment is obsolete: true
Comment on attachment 8362702 [details] [diff] [review] Fix generated/ source dependencies. Review of attachment 8362702 [details] [diff] [review]: ----------------------------------------------------------------- This does a few things. First, it prints when fennec_ids.txt gets generated. That would have been useful when debugging, since it appeared from the build log to not be getting built at all. Second, it fixes the proguard JAR dependencies. Pretty sure that $(list): $(list) is valid, but extra eyes appreciated. Since proguard is a global operation, the dependency set should be the complete graph, as this defines it. Before, this was essentially a FORCE. Finally, this adds $CURDIR to the generated source dependencies. When you landed the changes to the preprocessor that introduced absolute paths, this didn't get fully updated. java-build.mk used $^ as much as possible and so building found the files, but the dependencies busted since make treats foo and $(CURDIR)/foo differently. Adding $CURDIR to the generated dependencies means writing $(CURDIR)/../R.java, which actually fixes the issue I think caused this ticket.
Attachment #8362702 - Flags: review?(mh+mozilla)
OS: Linux → All
Hardware: x86_64 → All
Comment on attachment 8362702 [details] [diff] [review] Fix generated/ source dependencies. Review of attachment 8362702 [details] [diff] [review]: ----------------------------------------------------------------- ::: mobile/android/base/Makefile.in @@ +98,1 @@ > java -jar $(ANDROID_SDK_ROOT)/tools/proguard/lib/proguard.jar @$(topsrcdir)/mobile/android/config/proguard.cfg -optimizationpasses $(PROGUARD_PASSES) -injars $(subst ::,:,$(subst $(NULL) ,:,$(strip $(ALL_JARS)))) -outjars jars-proguarded -libraryjars $(ANDROID_SDK)/android.jar:$(ANDROID_COMPAT_LIB) That's going to run several instances of that java command concurrently. $ cat > foo.mk <<EOF all: a b a b: @echo $@ @touch a b EOF $ make -f foo.mk a $ rm a b $ make -f foo.mk -j2 a b ::: python/mozbuild/mozbuild/backend/recursivemake.py @@ +1036,5 @@ > if jar.sources: > backend_file.write('%s_JAVAFILES := %s\n' % > (target, ' '.join(jar.sources))) > if jar.generated_sources: > + backend_file.write('%s_PP_JAVAFILES := $(addprefix $(CURDIR)/,%s)\n' % Seems to me this should be done in config/makefiles/java-build.mk. That being said, I don't see what that's supposed to fix.
Attachment #8362702 - Flags: review?(mh+mozilla) → review-
Generated sources are listed like 'generated/FILE.java'. Generated sources are produced by PP_TARGETS, which generates the file '$(CURDIR)/generated/FILE.java'. Because Make interprets $(CURDIR)/foo and foo differently, this means we need to depend on $(CURDIR)/* for all generated sources. Since R.java is both listed as a generated source, but produced by aapt, we need any dependencies to be on $(CURDIR)/.../R.java. The change to java-build.mk includes $(CURDIR) in the dependencies for generated sources. The changes to Makefile.in includes $(CURDIR) in the produced R.java files for Make.
Comment on attachment 8370202 [details] [diff] [review] Fix generated/ source dependencies. r=glandium Review of attachment 8370202 [details] [diff] [review]: ----------------------------------------------------------------- Hi glandium: this moves the relevant change to java-build.mk. Hopefully the commit comment explains what this intends to do. I'm going to push Proguard dep changes as part of a different ticket.
Attachment #8370202 - Flags: review?(mh+mozilla)
Attachment #8362702 - Attachment is obsolete: true
Attachment #8370202 - Flags: review?(mh+mozilla) → review+
Product: Core → Firefox Build System
We're definitely not doing this, post https://bugzilla.mozilla.org/show_bug.cgi?id=1414415 \o/
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: