[Mesa-dev] problem on building vmwgfx

Zhiguang Liu triggerliu at gmail.com
Tue Feb 28 13:40:55 UTC 2017


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 at 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.engestrom at 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 at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170228/509bc34e/attachment.html>


More information about the mesa-dev mailing list