Bug 87858

Summary: [bisected] build errors on xserver master branch
Product: xorg Reporter: fangxun <xunx.fang>
Component: Server/DDX/XorgAssignee: Kenneth Graunke <kenneth>
Status: VERIFIED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: high CC: kenneth
Version: git   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
build log none

Description fangxun 2014-12-30 09:22:47 UTC
Created attachment 111508 [details]
build log

Bug detailed description:
------------------------- 
Build fails on xserver master branch with following error:
present.c: In function 'ms_present_flush':
present.c:204:9: error: implicit declaration of function 'glamor_block_handler' [-Werror=implicit-function-declaration]
         glamor_block_handler(screen);
         ^present.c:204:9: warning: nested extern declaration of 'glamor_block_handler' [-Wnested-externs]
cc1: some warnings being treated as errors
make[5]: *** [present.lo] Error 1

Bisect shows commit 09230a2 is the first bad commit.
commit 09230a2d435aa7f893ad5022220e3eb39ffb6db5
Author:     Kenneth Graunke <kenneth@whitecape.org>
AuthorDate: Thu Dec 11 13:37:14 2014 -0800
Commit:     Keith Packard <keithp@keithp.com>
CommitDate: Thu Dec 25 13:39:19 2014 -0800

    modesetting: Add vblank synchronization support when using Present.

    modesetting hooked up vblank support for DRI2, but was missing support
    for vblanks in Present.

    This is mostly copy and pasted from Keith's code in the intel driver.

    v2: Use ms_crtc_msc_to_kernel_msc in ms_present_queue_vblank to hook
        up the vblank_offset workaround for bogus MSC values (which the
        DRI2 code already did).

        Also simplify the ms_present_get_crtc function.  vblank.c already
        implements the functionality; we just need to convert types.

    v3: Fix ms_flush_drm_events return code.  I'd copied code where 0 meant
        success into a function that returned a boolean, so the return code
        was always backwards.

Reproduce steps:
----------------
./autogen.sh  --prefix=${INSTALL_ROOT} --enable-config-udev --disable-config-hal --disable-unit-tests
Comment 1 Kenneth Graunke 2014-12-30 19:52:47 UTC
Patch on mailing list:
http://lists.x.org/archives/xorg-devel/2014-December/045052.html
Comment 2 fangxun 2015-01-04 02:38:29 UTC
Fixed by commit 6672606.
commit 66726064204b869a24e5a8dc6e24daa5acb92bab
Author:     Kenneth Graunke <kenneth@whitecape.org>
AuthorDate: Tue Dec 30 11:51:43 2014 -0800
Commit:     Keith Packard <keithp@keithp.com>
CommitDate: Thu Jan 1 10:52:30 2015 -0800

    modesetting: Fix build with --disable-glamor.

    present.c: In function 'ms_present_flush':
    present.c:204:9: error: implicit declaration of function
    'glamor_block_handler'

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.