Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

random header generation failures (maybe when parallel building?) #219

Closed
jku opened this issue Sep 10, 2015 · 3 comments
Closed

random header generation failures (maybe when parallel building?) #219

jku opened this issue Sep 10, 2015 · 3 comments

Comments

@jku
Copy link

jku commented Sep 10, 2015

Sometimes the header generation seems to fail. I've seen these issues pop up randomly mostly when using icecc (distributed build system) but have reproduced on a single machine as well.

A Full log of failing compile is in gist but the failure looks like this:

| In file included from /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/libical-1.0.1/src/libicalvcal/icalvcal.h:29:0,
|                  from /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/libical-1.0.1/src/libicalvcal/icalvcal.c:46:
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1019:1: error: unknown type name 'icalvalue'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1019:26: error: unknown type name 'icalvalue_kind'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1021:1: error: unknown type name 'icalvalue'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1021:38: error: unknown type name 'icalvalue'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1023:1: error: unknown type name 'icalvalue'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1023:38: error: unknown type name 'icalvalue_kind'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1025:21: error: unknown type name 'icalvalue'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1027:30: error: unknown type name 'icalvalue'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1029:44: error: unknown type name 'icalvalue'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1030:40: error: unknown type name 'icalvalue'
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1032:1: error: unknown type name 'icalvalue_kind'
    (and so on for a long time)

When this failure happens ical.h really is missing parts that should be there -- lines from icalderivedproperty.h.in, icalderivedparameter.h.in and icalderivedvalue.h.in are missing: the individual headers themselves (like icalderivedvalue.h) look correct but maybe they weren't when ical.h was generated? If I re-run make without changes, ical.h gets properly generated -- this seems to agree with the theory.

I've looked in your CMakeLists.txt and I can't see anything wrong with the dependencies though...

@jku
Copy link
Author

jku commented Sep 10, 2015

A different failure but probably the same root cause:

| In file included from /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/libical-1.0.1/src/libicalss/icalclassify.c:30:0:
| /home/jku/src/poky/build/tmp/work/core2-64-poky-linux/libical/1.0.1-r0/build/src/libical/ical.h:1:0: error: unterminated #ifndef
|  #ifndef LIBICAL_ICAL_H
|  ^

Looks like this time ical.h itself wasn't fully written by the time compilation starts. I checked ical.h afterwards and the #endif is there.

@winterz
Copy link
Member

winterz commented Sep 12, 2015

I recently fixed parallel builds in master branch.

@jku
Copy link
Author

jku commented Sep 14, 2015

Thanks! This line (and others like it for the executables) from your recent commit does indeed help with 1.0.1:

add_dependencies(ical-static ical-header)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants