Closed Bug 450717 Opened 11 years ago Closed 11 years ago

dep file for pixman-mmx.c isn't generated with GCC

Categories

(Firefox Build System :: General, defect)

x86
All
defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ginnchen+exoracle, Assigned: ginnchen+exoracle)

Details

Attachments

(1 file, 1 obsolete file)

Compile libpixman with GCC compiler depend feature

In obj/gfx/cairo/libpixman/src/.deps, there is no
pixman-mmx.pp
on both Linux and Mac OS X.

It may cause some issues with tinderbox dep builds.

In Makefile.in there's
# special rule for pixman-mmx to get the right cflags
pixman-mmx.$(OBJ_SUFFIX): pixman-mmx.c Makefile Makefile.in
        $(REPORT_BUILD)
        @$(MAKE_DEPS_AUTO_CC)
        $(ELOG) $(CC) $(OUTOPTION)$@ -c $(COMPILE_CFLAGS) $(MMX_CFLAGS) $(_VPATH
_SRCS)

Because the object name is specified, so $(*F) is empty,
but we have
OS_COMPILE_CFLAGS = $(OS_CPPFLAGS) -include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT $(filter-out %/.pp,-Wp,-MD,$(MDDEPDIR)/$(*F).pp)

I tried
%.$(OBJ_SUFFIX): pixman-mmx.c Makefile Makefile.in
It doesn't work, the default rule wins.

Then I tried to use $(basename $(@F)) instead of  $(*F). It works.
Attached patch patch (obsolete) — Splinter Review
Assignee: nobody → ginn.chen
Status: NEW → ASSIGNED
Attachment #333902 - Flags: review?(ted.mielczarek)
Comment on attachment 333902 [details] [diff] [review]
patch

I really hate make's built-in variable names. It took me about 15 minutes of reading the make manual to understand what you were doing here. :)
Attachment #333902 - Flags: review?(ted.mielczarek) → review+
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
backed out

config/Makefile.in doesn't create .deps dir, so gcc failed to create .deps/xxx.pp file for elf-dynstr-gc.

According to rules.mk, we generate dep files for
$(OBJS)$(XPIDLSRCS)$(SDK_XPIDLSRCS)$(SIMPLE_PROGRAMS)
but for gcc, the -MD option is in compiler flag, it works for every file.

config/Makefile.in doesn't have any $(OBJS)$(XPIDLSRCS)$(SDK_XPIDLSRCS)$(SIMPLE_PROGRAMS), so .dep directory is not created.

Since we only have this issue with this special directory, I suggest we workaround it.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Attached patch patch v2Splinter Review
Attachment #333902 - Attachment is obsolete: true
Attachment #337419 - Flags: review?(ted.mielczarek)
Attachment #337419 - Flags: review?(ted.mielczarek) → review+
Pushed:
http://hg.mozilla.org/mozilla-central/rev/35e183680fda
Status: REOPENED → RESOLVED
Closed: 11 years ago11 years ago
Resolution: --- → FIXED
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.