https://bugs.freedesktop.org/show_bug.cgi?id=76789
Priority: medium Bug ID: 76789 Assignee: dri-devel@lists.freedesktop.org Summary: [radeonsi] si_descriptors.c requires -std=gnu99 or -fms-extensions Severity: normal Classification: Unclassified OS: OpenBSD Reporter: jsg@openbsd.org Hardware: Other Status: NEW Version: git Component: Drivers/Gallium/radeonsi Product: Mesa
Mesa is compiled with -std=c99 but this does not allow anonymous structs within a union unless using a recent version of gcc.
When compiling with gcc 4.2.1 the following error is thrown when compiling the gallium radeonsi driver unless configure.ac is changed to have either -std=gnu99 or -std=c99 -fms-extensions.
libtool: compile: gcc -DPACKAGE_NAME="Mesa" -DPACKAGE_TARNAME="mesa" -DPACKAGE_VERSION="10.2.0-devel" "-DPACKAGE_STRING="Mesa 10.2.0-devel""
"-DPACKAGE_BUGREPORT="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa%5C"" -DPACKAGE_URL="" -DPACKAGE="mesa" -DVERSION="10.2.0-devel" - DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=".libs/" -DYYTEXT_POINTER=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 -DHAVE_PTHREAD=1 -I. -I/usr/local/include -I/usr/local/include/libelf -I../../../../src/gallium/drivers/radeon -I./include -I../../../../include -I.. /../../../src/gallium/include -I../../../../src/gallium/auxiliary -I../../../../src/gallium/drivers -DDEBUG -DUSE_X86_64_ASM -DHAVE_DLOPEN -DHAVE_POS IX_MEMALIGN -DHAVE_LIBDRM -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DHAVE_PTHREAD -DUSE_EXTERNAL_DXTN_LIB=1 -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE _LLVM=0x0303 -fvisibility=hidden -I/usr/X11R6/include -I/usr/include/dev/pci/drm -I/usr/local/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g -O2 -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcm p -g -O0 -MT si_descriptors.lo -MD -MP -MF .deps/si_descriptors.Tpo -c si_descriptors.c -fPIC -DPIC -o .libs/si_descriptors.o In file included from si_descriptors.c:27: si_pipe.h:113: warning: declaration does not declare anything si_descriptors.c: In function 'si_init_all_descriptors': si_descriptors.c:990: error: 'union <anonymous>' has no member named 'const_buffers' si_descriptors.c:991: error: 'union <anonymous>' has no member named 'rw_buffers' si_descriptors.c:992: error: 'union <anonymous>' has no member named 'sampler_views'
https://bugs.freedesktop.org/show_bug.cgi?id=76789
Jonathan Gray jsg@openbsd.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #1 from Jonathan Gray jsg@openbsd.org --- This appears to have been fixed a while ago, though I note the fix is not currently on the 10.2 branch.
commit 74388dd24bc7fdb9e62ec18096163f5426e03fbf Author: Adam Jackson ajax@redhat.com Date: Tue Apr 22 12:46:08 2014 -0400
radeonsi: Don't use anonymous struct trick in atom tracking
I'm somewhat impressed that current gccs will let you do this, but sufficiently old ones (including 4.4.7 in RHEL6) won't.
Reviewed-by: Marek Olšák marek.olsak@amd.com Signed-off-by: Adam Jackson ajax@redhat.com
src/gallium/drivers/radeonsi/si_descriptors.c | 6 +++--- src/gallium/drivers/radeonsi/si_hw_context.c | 2 +- src/gallium/drivers/radeonsi/si_pipe.c | 6 +++--- src/gallium/drivers/radeonsi/si_pipe.h | 2 +- src/gallium/drivers/radeonsi/si_state.c | 2 +- src/gallium/drivers/radeonsi/si_state_draw.c | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-)
dri-devel@lists.freedesktop.org