On 2016/02/04 0:19, ISHIKAWA,chiaki wrote:
Hi,

Starting about 12 hours ago, I refreshed my source and got hit with another build bustage locally.

Namely, some header files in M-C part of the tree cannot be found during compilation.

I thought it was a temporary fluke. But, no, it is permanent. Although I refreshed my tree about an hour ago, the problem still persists.

I took a close look and found that header files below
${MOZ_SRC}/mozilla/dom/base

where MOZ_SRC is the top-level of my local C-C TB tree, are not found during compilation.

Checking the compiler command line, I found that the -I specification that is supposed to point to
that directory is incorrect.

After configure,  it comes out as
 -I  ${MOZ_SRC}/dom/base

without "mozilla/" part, thus the compiler could not find the header files under mozilla/dom/base.

Have anyone seen this?

I have no idea about where to look except I vaguely recall that there has been incorrect directory path specification before. But in that case, I recall that the variable for the new build/configure mechanism got it all wrong and every include path became incorrect (?) In this case, I found the errors seemed to occur only for the header files under mozilla/dom/base.

TIA

CI

(I am adding dev-builds mailing list in the hompe that someone there may notice a symptom of known issue.)


I investigated a little further and noticed that

/dom/base was specified in the LOCAL_INCLUDES variable
in respective directory where the problem ocucrred.

So just as experiment, I changed /dom/base into a relative form such as
../../dom/base
../../../dom/base
../../../../dom/base
according to the depth of the directory where moz.build is located.


Voila!

The compilation proceeded!?

But I am really puzzled.
Only the header files under dom/base are affected.

This problem did not occur Jan 31 (and Feb 1 I think).
It certainly did not occur before that.

Only yesterday after refreshing the source, I noticed this problem.
I looked at the mercurial logs of M-C portion of the tree, but could not find
an entry that stood out (I am not familiar with build system and so
I may have missed a crucial patch, etc. Also, there is a blanket log that says it would include all the patches in mozilla-incoming.)

BTW, funny, it seems that LOCAL_INCLUDES seems to expect a SORTED list of
values when a value is appended to it,
and so I had to move the relative pathnames to the front of the list
where there are multiple directories specified in LOCAL_INCLUDES: but
I am afraid there may be an issue of improper ordering of
include directories if we are forced to use lexicographically sorted include list paths. We may have a couple of header files with the SAME name and
may want to include a particular one by specifying the include directory
path for that include file. A case in point is discussed below [1])

I was so puzzled and I looked into bugzilla and searched for |LOCAL_INCLUDES|, but only found an entry which generally discusses the header file inclusion issue.

I wonder why possibly I am the only person on the earth who see this problem under local Linux development environment(?).

I am using Debian GNU/Linux 64-bit.

I had to disable a few features such as gstreams, etc. (gstream under Debian GNU/Linux is old and does not meet the version requirement of mozilla software.)

But otherwise, I don't see a problem with my mozconfig.
Like I mentioned, the build worked like a charm until Feb 1st.

Any tips/hints regarding this issue will be appreciated.
Should I file a bug ?

[1] Case in point.
mozilla/accessible/generic/HyperTextAccessible.cpp
includes "TreeWalker.h".

There are two TreeWalker.h in the source tree:
mozilla/accessible/base/TreeWalker.h
mozilla/dom/base/TreeWalker.h

HyperTextAccessible.cpp needs to include the version under accessible/base, not
under mozilla/dom/base. (If the latter is included, compiler complains about
type mismatch.)

So to meet the requirement that the value added to LOCAL_INCLUDES must be a sorted list and that ../../dom/base does not come before accessible/base in this particular case, I had to split the list into two as below.

LOCAL_INCLUDES += [
    '/accessible/base',
    '/accessible/html',
    '/accessible/ipc',
    '/accessible/xpcom',
    '/accessible/xul',
    '/layout/generic',
    '/layout/xul',
]

# I need to add /dom/base, but this has to be specified as relative
# for some reason, and has to come AFTER the others.
# Because of the requirement that a list must be sorted, I have to
# separate the addition of dom/base in another assignment that comes
# after the above (!)
LOCAL_INCLUDES += ['../../dom/base' ]


PS: But again, I am curious why this bustage?
Only headers below dom/base seem to be affected.



_______________________________________________
dev-builds mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-builds

Reply via email to