[Mesa-dev] problem on building vmwgfx
Eric Engestrom
eric.engestrom at imgtec.com
Tue Feb 28 13:24:24 UTC 2017
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
More information about the mesa-dev
mailing list