Last Comment Bug 757339 - No rule to make target `../../gfx/ots/src/libmozots.a', needed by `libgkmedias.a.desc'. Stop.
: No rule to make target `../../gfx/ots/src/libmozots.a', needed by `libgkmedia...
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: Build Config (show other bugs)
: unspecified
: All All
: -- normal (vote)
: mozilla16
Assigned To: Mike Hommey [:glandium]
:
Mentors:
Depends on: 763143 766793
Blocks:
  Show dependency treegraph
 
Reported: 2012-05-22 00:13 PDT by Landry Breuil (:gaston)
Modified: 2012-08-23 15:14 PDT (History)
4 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Make expandlibs commands generate dependencies like gcc does (33.62 KB, patch)
2012-05-23 11:15 PDT, Mike Hommey [:glandium]
no flags Details | Diff | Review
Make expandlibs commands generate dependencies like gcc does (34.67 KB, patch)
2012-05-24 00:18 PDT, Mike Hommey [:glandium]
ted: review+
Details | Diff | Review

Description Landry Breuil (:gaston) 2012-05-22 00:13:40 PDT
This happens once in a while on my buildbot, where make clean is ran if the build succeeds otherwise the objdir is let as-is. It happens on builds that previously failed or not.

objdir/gfx/ots/src contains all the objfiles and libmozots.a.desc but not libmozots.a.

Removing objdir "fixes" it until it happens again. rnewman also saw it on macos.

Such occurences (but i have way more in the backlog, i can dig for all of them)

http://buildbot.rhaalovely.net/builders/mozilla-central-amd64/builds/399/steps/build/logs/stdio
http://buildbot.rhaalovely.net/builders/comm-central-i386/builds/172/steps/build/logs/stdio
Comment 1 Mike Hommey [:glandium] 2012-05-22 00:17:01 PDT
FTR, this comes from .deps/libs being generated at inconvenient times.
Comment 2 Landry Breuil (:gaston) 2012-05-22 00:46:42 PDT
A change in that timeframe probably triggered it for that occurence : https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=fb3036d9b9&tochange=64187d60fa
Comment 3 Richard Newman [:rnewman] 2012-05-22 08:06:02 PDT
This routinely occurs on my Mac as of yesterday, regardless of blowing away objdir/gfx. Next up will be blowing away the entire objdir.

I saved objdir/gfx from my first failed build, if you want a look.
Comment 4 Mike Hommey [:glandium] 2012-05-22 08:17:10 PDT
(In reply to Richard Newman [:rnewman] from comment #3)
> This routinely occurs on my Mac as of yesterday, regardless of blowing away
> objdir/gfx. Next up will be blowing away the entire objdir.
> 
> I saved objdir/gfx from my first failed build, if you want a look.

You need to remove the $objdir/layout/media/.deps/libs file if you want to avoid removing the entire objdir.
Comment 5 Mike Hommey [:glandium] 2012-05-23 11:15:56 PDT
Created attachment 626516 [details] [diff] [review]
Make expandlibs commands generate dependencies like gcc does

This is a more elegant approach to bug 644608, which solves issues with missing files by using the same logic as compilation dependencies (thus using mddepend.pl).
<none>
Comment 6 Mike Hommey [:glandium] 2012-05-24 00:18:44 PDT
Created attachment 626715 [details] [diff] [review]
Make expandlibs commands generate dependencies like gcc does

Changes since last patch:
- safer mkdir
- don't include directories in dependencies
- try to remove as much commands as possible, including wrappers such as distcc or ccache
Comment 7 Landry Breuil (:gaston) 2012-06-04 22:54:25 PDT
The same failure happened when building aurora tonight, so a bit after the last m-c->aurora uplift.
Comment 8 Ted Mielczarek [:ted.mielczarek] 2012-06-07 12:08:53 PDT
Comment on attachment 626715 [details] [diff] [review]
Make expandlibs commands generate dependencies like gcc does

Review of attachment 626715 [details] [diff] [review]:
-----------------------------------------------------------------

::: config/expandlibs_exec.py
@@ +314,5 @@
> +    if not options.depend:
> +        return
> +    ensureParentDir(options.depend)
> +    with open(options.depend, 'w') as depfile:
> +        print >>depfile, options.target, ':', ' '.join(dep for dep in deps if os.path.isfile(dep) and dep != options.target)

I'm not a big fan of just using commas here. Use a string with formatting instead. Also, print>> is a little weird, maybe just depfile.write()?

::: config/expandlibs_gen.py
@@ +43,5 @@
> +        print >>outfile, generate(args)
> +    if options.depend:
> +        ensureParentDir(options.depend)
> +        with open(options.depend, 'w') as depfile:
> +            print >>depfile, options.output, ':', ' '.join(ExpandLibsDeps(args))

Same as above.
Comment 10 Ed Morley [:emorley] 2012-06-08 14:00:17 PDT
https://hg.mozilla.org/mozilla-central/rev/2d48da1f2bd7
Comment 11 Philip Chee 2012-06-08 23:38:34 PDT
This caused SeaMonkey Bug 763143
Comment 12 David :Bienvenu 2012-06-09 11:32:41 PDT
This has also broken Thunderbird builds, with a similar error, at least on my machine, using pymake on windows. Presumably, similar changes need to be made to comm-central/config/config.mk and rules.mk?

Note You need to log in before you can comment on or make changes to this bug.