Hi, Eric, Thanks for your suggestion. I modify the order of the include in dma-fence.c and the error has gone. However, when I recompile it I got the same error on drm_bridge.c.
=============================================================== make make -C /lib/modules/3.13.0-108-generic/build KCPPFLAGS="-DVMWGFX_STANDALONE -DTTM_STANDALONE" SUBDIRS=`/bin/pwd` DRMSRCDIR=`/bin/pwd` modules make[1]: Entering directory `/usr/src/linux-headers-3.13.0-108-generic' CC [M] /home/zg/vmware/vmwgfx/ww_mutex.o CC [M] /home/zg/vmware/vmwgfx/dma-fence.o CC [M] /home/zg/vmware/vmwgfx/reservation.o CC [M] /home/zg/vmware/vmwgfx/drm_auth.o CC [M] /home/zg/vmware/vmwgfx/drm_bufs.o CC [M] /home/zg/vmware/vmwgfx/drm_context.o CC [M] /home/zg/vmware/vmwgfx/drm_crtc.o CC [M] /home/zg/vmware/vmwgfx/drm_drv.o CC [M] /home/zg/vmware/vmwgfx/drm_fops.o CC [M] /home/zg/vmware/vmwgfx/drm_ioctl.o CC [M] /home/zg/vmware/vmwgfx/drm_irq.o CC [M] /home/zg/vmware/vmwgfx/drm_modes.o CC [M] /home/zg/vmware/vmwgfx/drm_edid.o CC [M] /home/zg/vmware/vmwgfx/drm_lock.o CC [M] /home/zg/vmware/vmwgfx/drm_memory.o CC [M] /home/zg/vmware/vmwgfx/drm_vm.o CC [M] /home/zg/vmware/vmwgfx/drm_sysfs.o CC [M] /home/zg/vmware/vmwgfx/drm_hashtab.o CC [M] /home/zg/vmware/vmwgfx/drm_mm.o CC [M] /home/zg/vmware/vmwgfx/drm_debugfs.o CC [M] /home/zg/vmware/vmwgfx/drm_info.o CC [M] /home/zg/vmware/vmwgfx/drm_global.o CC [M] /home/zg/vmware/vmwgfx/drm_cache.o CC [M] /home/zg/vmware/vmwgfx/drm_prime.o CC [M] /home/zg/vmware/vmwgfx/drm_pci.o CC [M] /home/zg/vmware/vmwgfx/drm_atomic.o CC [M] /home/zg/vmware/vmwgfx/drm_scatter.o CC [M] /home/zg/vmware/vmwgfx/drm_dma.o CC [M] /home/zg/vmware/vmwgfx/drm_modeset_lock.o CC [M] /home/zg/vmware/vmwgfx/drm_crtc_helper.o CC [M] /home/zg/vmware/vmwgfx/drm_plane_helper.o CC [M] /home/zg/vmware/vmwgfx/drm_atomic_helper.o CC [M] /home/zg/vmware/vmwgfx/drm_bridge.o In file included from /home/zg/vmware/vmwgfx/drm_bridge.c:27:0: /home/zg/vmware/vmwgfx/drm_compat.h:113:3: error: expected identifier or ‘(’ before ‘{’ token ({BUILD_BUG_ON(_s != TASK_NORMAL); \ ^ include/linux/sched.h:2077:12: note: in expansion of macro ‘wake_up_state’ extern int wake_up_state(struct task_struct *tsk, unsigned int state); ^ make[2]: *** [/home/zg/vmware/vmwgfx/drm_bridge.o] Error 1 make[1]: *** [_module_/home/zg/vmware/vmwgfx] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-108-generic' make: *** [modules] Error 2 =============================================================== I try to reorder the include file in drm_bridge.c as follows: #include <linux/err.h> #include <linux/module.h> #include "drm_crtc.h" #include "drm_compat.h" #include "drmP.h" Then I got some other error as shown below: =============================================================== zg@ubuntu:~/vmware/vmwgfx$ make make -C /lib/modules/3.13.0-108-generic/build KCPPFLAGS="-DVMWGFX_STANDALONE -DTTM_STANDALONE" SUBDIRS=`/bin/pwd` DRMSRCDIR=`/bin/pwd` modules make[1]: Entering directory `/usr/src/linux-headers-3.13.0-108-generic' CC [M] /home/zg/vmware/vmwgfx/ww_mutex.o CC [M] /home/zg/vmware/vmwgfx/dma-fence.o CC [M] /home/zg/vmware/vmwgfx/reservation.o CC [M] /home/zg/vmware/vmwgfx/drm_auth.o CC [M] /home/zg/vmware/vmwgfx/drm_bufs.o CC [M] /home/zg/vmware/vmwgfx/drm_context.o CC [M] /home/zg/vmware/vmwgfx/drm_crtc.o CC [M] /home/zg/vmware/vmwgfx/drm_drv.o CC [M] /home/zg/vmware/vmwgfx/drm_fops.o CC [M] /home/zg/vmware/vmwgfx/drm_ioctl.o CC [M] /home/zg/vmware/vmwgfx/drm_irq.o CC [M] /home/zg/vmware/vmwgfx/drm_modes.o CC [M] /home/zg/vmware/vmwgfx/drm_edid.o CC [M] /home/zg/vmware/vmwgfx/drm_lock.o CC [M] /home/zg/vmware/vmwgfx/drm_memory.o CC [M] /home/zg/vmware/vmwgfx/drm_vm.o CC [M] /home/zg/vmware/vmwgfx/drm_sysfs.o CC [M] /home/zg/vmware/vmwgfx/drm_hashtab.o CC [M] /home/zg/vmware/vmwgfx/drm_mm.o CC [M] /home/zg/vmware/vmwgfx/drm_debugfs.o CC [M] /home/zg/vmware/vmwgfx/drm_info.o CC [M] /home/zg/vmware/vmwgfx/drm_global.o CC [M] /home/zg/vmware/vmwgfx/drm_cache.o CC [M] /home/zg/vmware/vmwgfx/drm_prime.o CC [M] /home/zg/vmware/vmwgfx/drm_pci.o CC [M] /home/zg/vmware/vmwgfx/drm_atomic.o CC [M] /home/zg/vmware/vmwgfx/drm_scatter.o CC [M] /home/zg/vmware/vmwgfx/drm_dma.o CC [M] /home/zg/vmware/vmwgfx/drm_modeset_lock.o CC [M] /home/zg/vmware/vmwgfx/drm_crtc_helper.o CC [M] /home/zg/vmware/vmwgfx/drm_plane_helper.o CC [M] /home/zg/vmware/vmwgfx/drm_atomic_helper.o CC [M] /home/zg/vmware/vmwgfx/drm_bridge.o In file included from /home/zg/vmware/vmwgfx/drm_crtc.h:101:0, from /home/zg/vmware/vmwgfx/drm_bridge.c:28: /home/zg/vmware/vmwgfx/drm_modes.h:400:27: error: field ‘picture_aspect_ratio’ has incomplete type enum hdmi_picture_aspect picture_aspect_ratio; ^ make[2]: *** [/home/zg/vmware/vmwgfx/drm_bridge.o] Error 1 make[1]: *** [_module_/home/zg/vmware/vmwgfx] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-108-generic' make: *** [modules] Error 2 =============================================================== Best regards, Zhiguang On Tue, Feb 28, 2017 at 2:24 PM, Eric Engestrom <eric.engest...@imgtec.com> wrote: > On Tuesday, 2017-02-28 14:04:15 +0100, Zhiguang Liu wrote: > > Hi, > > > > I try to build vmwgfx on Ubuntu 12.04 with gcc-4.8.1, make 3.8.1. I clone > > the source files using the following command: > > > > git clone git://anongit.freedesktop.org/git/mesa/vmwgfx > > > > However, when I use 'make' command to build it, I got one error like > this: > > > > ================================================================ > > zg@ubuntu:~/vmware/vmwgfx$ make > > make -C /lib/modules/3.13.0-108-generic/build > KCPPFLAGS="-DVMWGFX_STANDALONE > > -DTTM_STANDALONE" SUBDIRS=`/bin/pwd` DRMSRCDIR=`/bin/pwd` modules > > make[1]: Entering directory `/usr/src/linux-headers-3.13.0-108-generic' > > CC [M] /home/zg/vmware/vmwgfx/ww_mutex.o > > CC [M] /home/zg/vmware/vmwgfx/dma-fence.o > > In file included from /home/zg/vmware/vmwgfx/dma-fence.c:37:0: > > /home/zg/vmware/vmwgfx/drm_compat.h:113:3: error: expected identifier or > > ‘(’ before ‘{’ token > > ({BUILD_BUG_ON(_s != TASK_NORMAL); \ > > ^ > > include/linux/sched.h:2077:12: note: in expansion of macro > ‘wake_up_state’ > > extern int wake_up_state(struct task_struct *tsk, unsigned int state); > > ^ > > The problem isn't with the macro, but the fact that it's defined before > the function it replaces. > > The result is that this: > extern int wake_up_state(struct task_struct *tsk, unsigned int > state); > > … gets rewritten as this (by the preprocessor): > extern int ({BUILD_BUG_ON(_s != TASK_NORMAL); wake_up_state(struct > task_struct *tsk); }); > > … which is invalid and doesn't compile. > > Changing the order of the includes should fix this. Can you try this > patch? > > ----8<---- > diff --git a/core/dma-fence.c b/core/dma-fence.c > index d28fb37..515593f 100644 > --- a/core/dma-fence.c > +++ b/core/dma-fence.c > @@ -34,8 +34,8 @@ EXPORT_TRACEPOINT_SYMBOL(dma_fence_emit); > > #include <linux/slab.h> > #include <asm/atomic.h> > -#include "drm_compat.h" > #include "core/dma-fence.h" > +#include "drm_compat.h" > > #define trace_dma_fence_signaled(_a) > #define trace_dma_fence_wait_start(_a) > ---->8---- > > Cheers, > Eric > > > > make[2]: *** [/home/zg/vmware/vmwgfx/dma-fence.o] Error 1 > > make[1]: *** [_module_/home/zg/vmware/vmwgfx] Error 2 > > make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-108-generic' > > make: *** [modules] Error 2 > > ================================================================ > > > > I opened the drm_compat.h and it seems that nothing goes wrong for line > > 113. Does anyone have some idea on this problem? > > > > [image: Inline image 1] > > > > Best regards, > > Zhiguang >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev