graphics/dri: nouveau_array.c:49:16: error: illegal storage class on function, *extract_u = EXTRACT(char, unsigned, 1);

From: O. Hartmann <ohartman_at_zedat.fu-berlin.de>
Date: Sat, 09 Jun 2012 19:00:14 +0200
I try to track down problems on one of our FreeBSD 10.0-CURRENT/amd64
boxes and therefore, I try recompiling "xorg".

One box is constantly failing to compile port graphics/dri with a
obviously well know error, as "googling" reveals (
http://lists.freedesktop.org/archives/mesa-dev/2011-December/016348.html).

I share /etc/make.conf and /etc/src.conf on those FreeBSD 10.0-CURRENT
boxes, they are supposed to have set
WITH_NEW_XORG=yes
WITHOUT_NOUVEAU=yes

There was a time when also WITH_KMS=yes was set on the box in question,
but I disabled that again (commented out).

The problem is sticky. I also tried "portmaster -f graphics/dri",
everything is compiled well (CLANG) until it comes to graphics/dri itself.

graphics/libdrm is compiled without KMS.

Somehow bad things slipped into the system and I feel like floating like
a dead man in the water. I considered deleting /var/db/pkg/*, since
sometimes I need to delete manually specific folders in that directory
to make a port compiling again. But I do not know wether this is
introducing larger problems.

Compiling the whole ports (implies deleting them all) is no option for
this moment.

Does anyone know this problem and has a solution to get rid of this
sticky thing?

Regards,
Oliver


[...]
../../src/egl/main -I../../../../../src/egl/drivers/dri
-I/usr/local/include -I/usr/local/include/libdrm    -DFEATURE_GL=1
-I/usr/local/include -I/usr/local/include/libdrm
-I/usr/local/include/nouveau   -I/usr/local/include -O3 -pipe
-fno-strict-aliasing -march=native -Wall -Wmissing-prototypes -std=c99
-fno-strict-aliasing -O3 -pipe -fno-strict-aliasing -march=native  -fPIC
 -DUSE_X86_64_ASM -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DPTHREADS
-DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS
-DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -fvisibility=hidden
nouveau_scratch.c -o nouveau_scratch.o
clang -c -I. -I../../../../../src/mesa/drivers/dri/common -Iserver
-I../../../../../include -I../../../../../src/mapi
-I../../../../../src/mesa -I../../../../../src/egl/main
-I../../../../../src/egl/drivers/dri -I/usr/local/include
-I/usr/local/include/libdrm    -DFEATURE_GL=1 -I/usr/local/include
-I/usr/local/include/libdrm -I/usr/local/include/nouveau
-I/usr/local/include -O3 -pipe -fno-strict-aliasing -march=native -Wall
-Wmissing-prototypes -std=c99 -fno-strict-aliasing -O3 -pipe
-fno-strict-aliasing -march=native  -fPIC  -DUSE_X86_64_ASM
-DHAVE_POSIX_MEMALIGN -DUSE_XCB -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1
-DIN_DRI_DRIVER -DHAVE_ALIAS -DGLX_INDIRECT_RENDERING
-DGLX_DIRECT_RENDERING -fvisibility=hidden  nouveau_array.c -o
nouveau_array.o
nouveau_array.c:49:16: error: illegal storage class on function
                *extract_u = EXTRACT(char, unsigned, 1);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
nouveau_array.c:49:16: error: expected ';' at end of declaration
                *extract_u = EXTRACT(char, unsigned, 1);
                             ^
nouveau_array.c:39:50: note: expanded from macro 'EXTRACT'
                out_t f(struct nouveau_array *a, int i, int j) {        \
                                                               ^
nouveau_array.c:50:16: error: illegal storage class on function
                *extract_f = EXTRACT(char, float, SCHAR_MAX);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
nouveau_array.c:50:16: error: expected ';' at end of declaration
                *extract_f = EXTRACT(char, float, SCHAR_MAX);
                             ^
nouveau_array.c:39:50: note: expanded from macro 'EXTRACT'
                out_t f(struct nouveau_array *a, int i, int j) {        \
                                                               ^
nouveau_array.c:53:16: error: illegal storage class on function
                *extract_u = EXTRACT(unsigned char, unsigned, 1);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
nouveau_array.c:53:16: error: expected ';' at end of declaration
                *extract_u = EXTRACT(unsigned char, unsigned, 1);
                             ^
nouveau_array.c:39:50: note: expanded from macro 'EXTRACT'
                out_t f(struct nouveau_array *a, int i, int j) {        \
                                                               ^
nouveau_array.c:54:16: error: illegal storage class on function
                *extract_f = EXTRACT(unsigned char, float, UCHAR_MAX);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
nouveau_array.c:54:16: error: expected ';' at end of declaration
                *extract_f = EXTRACT(unsigned char, float, UCHAR_MAX);
                             ^
nouveau_array.c:39:50: note: expanded from macro 'EXTRACT'
                out_t f(struct nouveau_array *a, int i, int j) {        \
                                                               ^
nouveau_array.c:57:16: error: illegal storage class on function
                *extract_u = EXTRACT(short, unsigned, 1);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
nouveau_array.c:57:16: error: expected ';' at end of declaration
                *extract_u = EXTRACT(short, unsigned, 1);
                             ^
nouveau_array.c:39:50: note: expanded from macro 'EXTRACT'
                out_t f(struct nouveau_array *a, int i, int j) {        \
                                                               ^
nouveau_array.c:58:16: error: illegal storage class on function
                *extract_f = EXTRACT(short, float, SHRT_MAX);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
nouveau_array.c:58:16: error: expected ';' at end of declaration
                *extract_f = EXTRACT(short, float, SHRT_MAX);
                             ^
nouveau_array.c:39:50: note: expanded from macro 'EXTRACT'
                out_t f(struct nouveau_array *a, int i, int j) {        \
                                                               ^
nouveau_array.c:61:16: error: illegal storage class on function
                *extract_u = EXTRACT(unsigned short, unsigned, 1);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
nouveau_array.c:61:16: error: expected ';' at end of declaration
                *extract_u = EXTRACT(unsigned short, unsigned, 1);
                             ^
nouveau_array.c:39:50: note: expanded from macro 'EXTRACT'
                out_t f(struct nouveau_array *a, int i, int j) {        \
                                                               ^
nouveau_array.c:62:16: error: illegal storage class on function
                *extract_f = EXTRACT(unsigned short, float, USHRT_MAX);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
nouveau_array.c:62:16: error: expected ';' at end of declaration
                *extract_f = EXTRACT(unsigned short, float, USHRT_MAX);
                             ^
nouveau_array.c:39:50: note: expanded from macro 'EXTRACT'
                out_t f(struct nouveau_array *a, int i, int j) {        \
                                                               ^
nouveau_array.c:65:16: error: illegal storage class on function
                *extract_u = EXTRACT(int, unsigned, 1);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
nouveau_array.c:65:16: error: expected ';' at end of declaration
                *extract_u = EXTRACT(int, unsigned, 1);
                             ^
nouveau_array.c:39:50: note: expanded from macro 'EXTRACT'
                out_t f(struct nouveau_array *a, int i, int j) {        \
                                                               ^
nouveau_array.c:clang -c -I.
-I../../../../../src/mesa/drivers/dri/common -Iserver
-I../../../../../include -I../../../../../src/mapi
-I../../../../../src/mesa -I../../../../../src/egl/main
-I../../../../../src/egl/drivers/dri -I/usr/local/include
-I/usr/local/include/libdrm    -DFEATURE_GL=1 -I/usr/local/include
-I/usr/local/include/libdrm -I/usr/local/include/nouveau
-I/usr/local/include -O3 -pipe -fno-strict-aliasing -march=native -Wall
-Wmissing-prototypes -std=c99 -fno-strict-aliasing -O3 -pipe
-fno-strict-aliasing -march=native  -fPIC  -DUSE_X86_64_ASM
-DHAVE_POSIX_MEMALIGN -DUSE_XCB -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1
-DIN_DRI_DRIVER -DHAVE_ALIAS -DGLX_INDIRECT_RENDERING
-DGLX_DIRECT_RENDERING -fvisibility=hidden  nv04_context.c -o nv04_context.o
66:16: error: illegal storage class on function
                *extract_f = EXTRACT(int, float, INT_MAX);
                             ^
nouveau_array.c:38:3: note: expanded from macro 'EXTRACT'
                auto out_t f(struct nouveau_array *, int, int);         \
                ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
gmake[6]: *** [nouveau_array.o] Error 1
gmake[6]: *** Waiting for unfinished jobs....
nouveau_context.c:281:2: warning: expression result unused [-Wunused-value]
        context_bctx(ctx, FRAMEBUFFER);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./nouveau_bo_state.h:103:2: note: expanded from macro 'context_bctx'
        __context_bctx(ctx, NOUVEAU_BO_CONTEXT_##s)
        ^
./nouveau_bo_state.h:100:3: note: expanded from macro '__context_bctx'
                bctx;                                                   \
                ^~~~
1 warning generated.
nv04_context.c:78:4: warning: expression result unused [-Wunused-value]
                        context_bctx_i(ctx, TEXTURE, 1);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./nouveau_bo_state.h:105:2: note: expanded from macro 'context_bctx_i'
        __context_bctx(ctx, NOUVEAU_BO_CONTEXT_##s##0 + (i))
        ^
./nouveau_bo_state.h:100:3: note: expanded from macro '__context_bctx'
                bctx;                                                   \
                ^~~~
1 warning generated.
gmake[6]: Leaving directory
`/usr/ports/graphics/dri/work/Mesa-7.11.2/src/mesa/drivers/dri/nouveau'
gmake[5]: *** [lib] Error 2
gmake[5]: Leaving directory
`/usr/ports/graphics/dri/work/Mesa-7.11.2/src/mesa/drivers/dri/nouveau'
gmake[4]: *** [subdirs] Error 1
gmake[4]: Leaving directory
`/usr/ports/graphics/dri/work/Mesa-7.11.2/src/mesa/drivers/dri'
gmake[3]: *** [default] Error 1
gmake[3]: Leaving directory
`/usr/ports/graphics/dri/work/Mesa-7.11.2/src/mesa/drivers'
gmake[2]: *** [driver_subdirs] Error 2
gmake[2]: Leaving directory
`/usr/ports/graphics/dri/work/Mesa-7.11.2/src/mesa'
gmake[1]: *** [subdirs] Error 1
gmake[1]: Leaving directory `/usr/ports/graphics/dri/work/Mesa-7.11.2/src'
gmake: *** [default] Error 1
*** [do-build] Error code 1

Stop in /usr/ports/graphics/dri.

===>>> make failed for graphics/dri
===>>> Aborting update

Terminated
===>>> There are messages from installed ports to display,
       but first take a moment to review the error messages
       above.  Then press Enter when ready to proceed.


Received on Sat Jun 09 2012 - 15:00:30 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:27 UTC