Bug 8559

Summary: XCB's configure accepts versions of check that it can't compile with
Product: XCB Reporter: Peter Dyballa <Peter_Dyballa>
Component: LibraryAssignee: Jamey Sharp <jamey>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high    
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Peter Dyballa 2006-10-08 10:28:02 UTC
While "Building xcb module component xcb..." if fails with:

if gcc -DHAVE_CONFIG_H -I. -I../../tests -I../src   -no-cpp-precomp -I/usr/include/openssl -I/sw/
include/pango-1.0 -I/usr/local/include/freetype2 -I/usr/local/include -I/sw/include/libpng12 -I/sw/
include -Wall -Werror  -I../../src -pipe -fPIC -O0 -MT check_all.o -MD -MP -MF ".deps/check_all.Tpo" -
c -o check_all.o ../../tests/check_all.c; \
then mv -f ".deps/check_all.Tpo" ".deps/check_all.Po"; else rm -f ".deps/check_all.Tpo"; exit 1; fi
cc1: warnings being treated as errors
../../tests/check_all.c: In function ‘main’:
../../tests/check_all.c:15: warning: implicit declaration of function ‘srunner_set_xml’
make[4]: *** [check_all.o] Error 1
if gcc -DHAVE_CONFIG_H -I. -I../../tests -I../src   -no-cpp-precomp -I/usr/include/openssl -I/sw/
include/pango-1.0 -I/usr/local/include/freetype2 -I/usr/local/include -I/sw/include/libpng12 -I/sw/
include -Wall -Werror  -I../../src -pipe -fPIC -O0 -MT check_public.o -MD -MP -MF ".deps/
check_public.Tpo" -c -o check_public.o ../../tests/check_public.c; \
then mv -f ".deps/check_public.Tpo" ".deps/check_public.Po"; else rm -f ".deps/check_public.Tpo"; exit 
1; fi
../../tests/check_public.c:19:64: error: macro "fail_unless" passed 3 arguments, but takes just 2
../../tests/check_public.c: In function ‘parse_display_pass’:
../../tests/check_public.c:19: error: ‘fail_unless’ undeclared (first use in this function)
../../tests/check_public.c:19: error: (Each undeclared identifier is reported only once
../../tests/check_public.c:19: error: for each function it appears in.)
../../tests/check_public.c:20:130: error: macro "fail_unless" passed 5 arguments, but takes just 2
../../tests/check_public.c:21:130: error: macro "fail_unless" passed 5 arguments, but takes just 2
../../tests/check_public.c:22:125: error: macro "fail_unless" passed 5 arguments, but takes just 2
../../tests/check_public.c:28:75: error: macro "fail_unless" passed 3 arguments, but takes just 2
../../tests/check_public.c:29:141: error: macro "fail_unless" passed 5 arguments, but takes just 2
../../tests/check_public.c:30:141: error: macro "fail_unless" passed 5 arguments, but takes just 2
../../tests/check_public.c:43:65: error: macro "fail_unless" passed 3 arguments, but takes just 2
../../tests/check_public.c: In function ‘parse_display_fail’:
../../tests/check_public.c:43: error: ‘fail_unless’ undeclared (first use in this function)
../../tests/check_public.c:44:91: error: macro "fail_unless" passed 3 arguments, but takes just 2
../../tests/check_public.c:45:92: error: macro "fail_unless" passed 3 arguments, but takes just 2
../../tests/check_public.c:46:89: error: macro "fail_unless" passed 3 arguments, but takes just 2
../../tests/check_public.c:52:76: error: macro "fail_unless" passed 3 arguments, but takes just 2
../../tests/check_public.c:53:91: error: macro "fail_unless" passed 3 arguments, but takes just 2
../../tests/check_public.c:54:92: error: macro "fail_unless" passed 3 arguments, but takes just 2
make[4]: *** [check_public.o] Error 1
make[4]: Target `check_all' not remade because of errors.
make[3]: *** [check-am] Error 2
make[2]: *** [check-recursive] Error 1
make[1]: *** [check-recursive] Error 1
make: *** [distcheck] Error 2


There is also a warning:

In file included from /usr/X11R7/include/X11/Xdmcp.h:22,
                 from ../../src/xcb_auth.c:41:
/usr/X11R7/include/X11/Xmd.h:155: warning: ISO C90 does not support ‘long long’
Comment 1 Jamey Sharp 2006-11-15 15:43:02 UTC
I think you have an ancient version of check, from before August 2004. If so,
you should either upgrade or remove it. If that's not the problem, please
re-open this bug.
Comment 2 Peter Dyballa 2006-11-16 12:24:01 UTC
(In reply to comment #1)
> I think you have an ancient version of check, from before August 2004. If so,
> you should either upgrade or remove it. If that's not the problem, please
> re-open this bug.

What is "check?" I got xcb moduless and moree  via  git, so everything inside 
xcb should have been up-to-date ...
Comment 3 Jamey Sharp 2006-11-16 16:35:15 UTC
It's a unit-testing framework. See http://check.sourceforge.net/. It's optional
for building XCB: you only need it if you want to run the unit tests.

I'm re-opening this bug because we've just discovered that the dependency that
configure declares on check isn't sufficient to get a version that actually
works. We're fixing this by switching to using pkg-config, which is supported
only on check 0.9.4 or newer. Older versions might also work, but we don't care
since it's an optional dependency.
Comment 4 Jamey Sharp 2006-11-16 23:04:50 UTC
I believe this is fixed in current XCB git. You should have no problems
compiling, even with whatever version of check you currently have installed.

Also, I meant to say this earlier: I apologize for taking so long to respond to
your report. I didn't see it until I went searching for XCB-related bugs, a
month after you originally submitted it. I've taken some steps to make sure I
notice such reports in the future.

In hindsight, I also apologize for marking it "invalid" on the first try. :-/
Comment 5 Peter Dyballa 2006-11-17 05:28:49 UTC
(In reply to comment #3)
> It's a unit-testing framework. See http://check.sourceforge.net/. It's optional
> for building XCB: you only need it if you want to run the unit tests.
> 
I now remember! I've seen it in the Wiki and installed version 0.8.4, the version that Fink provides for Mac 
OS X.
Comment 6 Peter Dyballa 2006-11-17 07:16:59 UTC
(In reply to comment #4)
> I believe this is fixed in current XCB git. You should have no problems
> compiling, even with whatever version of check you currently have installed.

The old error does not re-appear in 0.9.93 after having updated. Configure finds no check >= 0.94. 
The new errors introduced (I think doxygen wasn't installed the last times) are (excerpts):

Making all in doc
make[1]: Entering directory `/Users/pete/Quellen/X11R7.1/xcb/libxcb/doc'
/Users/pete/Quellen/X11R7.1/xcb/libxcb/src/bigreq.c:108: Warning: end of file while inside a group

/Users/pete/Quellen/X11R7.1/xcb/libxcb/src/composite.c:752: Warning: end of file while inside a 
group
...
/Users/pete/Quellen/X11R7.1/xcb/libxcb/src/damage.h:25: Warning: Member xcb_damage_id 
(variable) of group XCB_Damage_API is not documented.
sh: line 1: dot: command not found
Problems running dot. Check your installation!
sh: line 1: dot: command not found
Problems running dot. Check your installation!
/Users/pete/Quellen/X11R7.1/xcb/libxcb/src/dpms.h:20: Warning: Member 
XCB_DPMS_MAJOR_VERSION (define) of group XCB_DPMS_API is not documented.
...
/Users/pete/Quellen/X11R7.1/xcb/libxcb/src/bigreq.h:6: Warning: group XCB_BigRequests_API already 
documented. Skipping documentation.
/Users/pete/Quellen/X11R7.1/xcb/libxcb/src/composite.h:6: Warning: group XCB_Composite_API 
already documented. Skipping documentation.
...
sh: line 1: dot: command not found
Problems running dot. Check your installation!
make[1]: Leaving directory `/Users/pete/Quellen/X11R7.1/xcb/libxcb/doc'
make[1]: Entering directory `/Users/pete/Quellen/X11R7.1/xcb/libxcb'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/Users/pete/Quellen/X11R7.1/xcb/libxcb'
make: Leaving directory `/Users/pete/Quellen/X11R7.1/xcb/libxcb'

> 
> Also, I meant to say this earlier: I apologize for taking so long to respond to
> your report. I didn't see it until I went searching for XCB-related bugs, a
> month after you originally submitted it. I've taken some steps to make sure I
> notice such reports in the future.

That's OK with me. Since I could avoid the errors by leaving away -D ...

Comment 7 Jamey Sharp 2006-11-18 22:42:59 UTC
Those are just warnings. I've just committed fixes for most of the Doxygen
warnings, but if you have Doxygen and not graphviz then you're still going to
get the warnings about missing dot. I suggest you just ignore them, though at
some point I guess we should test for whether dot is installed from configure as
well.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.