The "Mesa/include/GL/internal/dri_interface.h" in the current CVS head is different from that of "xorg/proto/XF86DRI/dri_interface.h" of the current CVS head which is imported from Mesa 6.4.1. There are some additional member function in the struct __DRIdrawableRec like copySubBuffer which is undefined in the xorg/proto/XF86DRI/dri_interface.h. The problem is, when building the dri drivers in the "Mesa/src/drivers/dri/*", since the rule in the "Mesa/src/drivers/dri/Makefile.template" for generating "depend" file calls pkg-config to find the CFLAGS of libdrm that will returns the path pointed to the installed xorg/proto/XF86DRI/dri_interface.h, and this occurs earilier to the path pointed to the Mesa/include/GL/internal/dri_interface.h, the building process will break when compiling Mesa/src/mesa/drivers/dri/common/dri_utils.h which includes the dri_interface.h for the definition of struct __DRIdrawableRec for undefined member "copySubBuffer". I made a dirty patch that just change some parameters' order of the SHARED_INCLUDE variable in the Makefile.template to workaround this problem. However, the more correct way should be re-importing the new dri_interface.h into the xorg/proto/XF86DRI CVS tree.
Created attachment 5241 [details] [review] The dirty workaround for the dependency problem Here is the patch I mentioned in my bug report. It just move the order of calling 'pkg-config --cflags libdrm' to somewhere after '-I$(TOP)/include' to force the makedepend using the Mesa/include/GL/internal/dri_interface.h as its first choice.
The hack worked as of April 20th, 2006 I am able to build Mesa HEAD fine.
This should be fixed in Mesa CVS.
Mass version move, cvs -> git
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.