[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#949024: g++: internal compiler error on beignet + llvm10



Package: g++-9
Version: 9.2.1-23
Control: affects -1 src:beignet

Trying to build beignet with llvm 10 and the default -std fails with this internal compiler error. (See attached for exact changes; it previously used -std=c++0x, but that fails with LLVM 10 because it can't find std::index_sequence.)

_Possibly_ this upstream bug: https://gcc.gnu.org/ml/gcc-bugs/2019-11/msg02364.html

(The error says to attach the full preprocessed source, but it's ~2M which I suspect is too big to be allowed here.)

// Target: x86_64-linux-gnu
// Configured with: ../src/configure -v --with-pkgversion='Debian 9.2.1-23' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
// Thread model: posix
// Supported LTO compression algorithms: zlib zstd
// gcc version 9.2.1 20200110 (Debian 9.2.1-23)
//
// In file included from /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/./ir/instruction.hpp:28, // from /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/ir/instruction.cpp:24: // /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/./ir/immediate.hpp: In constructor 'gbe::ir::Immediate::Immediate(gbe::ir::half*, uint32_t)': // /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/./ir/immediate.hpp:159:62: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of non-trivially copyable type 'class gbe::ir::half'; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
//   159 |       memcpy(this->data.FIELD, FIELD, ELEMNUM * getTypeSize()); \
//       |                                                              ^
// /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/./ir/immediate.hpp:172:5: note: in expansion of macro 'DECL_CONSTRUCTOR'
//   172 |     DECL_CONSTRUCTOR(half, f16, TYPE_HALF, elemNum)
//       |     ^~~~~~~~~~~~~~~~
// In file included from /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/./ir/immediate.hpp:30, // from /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/./ir/instruction.hpp:28, // from /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/ir/instruction.cpp:24: // /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/./ir/half.hpp:34:9: note: 'class gbe::ir::half' declared here
//    34 |   class half
//       |         ^~~~
// /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/ir/instruction.cpp: In instantiation of 'class gbe::ir::internal::NaryInstruction<0>': // /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/ir/instruction.cpp:135:59: required from here // /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/ir/instruction.cpp:120:31: internal compiler error: in tsubst_copy, at cp/pt.c:15779
//   120 |     class ALIGNED_INSTRUCTION NaryInstruction :
//       |                               ^~~~~~~~~~~~~~~
// Please submit a full bug report,
// with preprocessed source if appropriate.
// See <file:///usr/share/doc/gcc-9/README.Bugs> for instructions.

// /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -I /home/rnpalmer/Debian/builds/stackbuild/beignet/obj-x86_64-linux-gnu -I /home/rnpalmer/Debian/builds/stackbuild/beignet -I /home/rnpalmer/Debian/builds/stackbuild/beignet/include -I /usr/include/libdrm -I /home/rnpalmer/Debian/builds/stackbuild/beignet/obj-x86_64-linux-gnu/backend -I /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/. -I /usr/lib/llvm-10/include -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D ENABLE_OPENCL_20 -D GEN7_SAMPLER_CLAMP_BORDER_WORKAROUND -D LLVM_100 -D gbe_EXPORTS -D _FORTIFY_SOURCE=2 -D GBE_DEBUG=1 -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D GBE_DEBUG_MEMORY=0 -D GBE_COMPILER_AVAILABLE=1 /home/rnpalmer/Debian/builds/stackbuild/beignet/backend/src/ir/instruction.cpp -quiet -dumpbase instruction.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/gbe.dir/ir/instruction.cpp.o -g -O2 -Wformat=1 -Werror=format-security -Wdate-time -Wall -Wcast-align -Wno-invalid-offsetof -fdebug-prefix-map=/home/rnpalmer/Debian/builds/stackbuild/beignet=. -fstack-protector-strong -funroll-loops -fstrict-aliasing -fno-rtti -fvisibility=hidden -fPIC -fasynchronous-unwind-tables -o - -frandom-seed=0 -fdump-noaddr
diff --git a/debian/control b/debian/control
index 320f19e..af6c9cd 100644
--- a/debian/control
+++ b/debian/control
@@ -12,9 +12,9 @@ Build-Depends: debhelper-compat (= 12),
 #but as this package cannot run its tests in a standard build,
 #specifying an explicit version prevents it from changing
 #(due to llvm-defaults changes) without testing
- clang-9,
- libclang-9-dev,
- llvm-9-dev,
+ clang-10,
+ libclang-10-dev,
+ llvm-10-dev,
  ocl-icd-dev,
  ocl-icd-opencl-dev,
  opencl-headers (>= 2.0~),
diff --git a/debian/patches/Debian-compliant-compiler-flags-handling.patch b/debian/patches/Debian-compliant-compiler-flags-handling.patch
index 99e7325..87229a7 100644
--- a/debian/patches/Debian-compliant-compiler-flags-handling.patch
+++ b/debian/patches/Debian-compliant-compiler-flags-handling.patch
@@ -28,6 +28,15 @@ Author: Simon Richter <sjr@debian.org>,Rebecca Palmer <rebecca_palmer@zoho.com>
  elseif (COMPILER STREQUAL "ICC")
    set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS}  -wd2928 -Wall -fPIC -fstrict-aliasing -fp-model fast -msse4.1 -Wl,-E")
  endif ()
+@@ -79,7 +78,7 @@ elseif (COMPILER STREQUAL "CLANG")
+ elseif (COMPILER STREQUAL "ICC")
+   set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS}  -wd2928 -Wall -fPIC -fstrict-aliasing -fp-model fast -msse4.1 -Wl,-E")
+ endif ()
+-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof")
++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_CXX_FLAGS} -Wno-invalid-offsetof")
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_CXX_FLAGS}")
+ set (CMAKE_CXX_FLAGS_DEBUG          "-O0 -g -DGBE_DEBUG=1")
+ set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1")
 --- a/backend/src/sys/platform.hpp
 +++ b/backend/src/sys/platform.hpp
 @@ -41,15 +41,6 @@
@@ -54,7 +63,7 @@ Author: Simon Richter <sjr@debian.org>,Rebecca Palmer <rebecca_palmer@zoho.com>
  
 -  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof")
 -  set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_CXX_FLAGS}")
-+  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof -ffloat-store")
++  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_CXX_FLAGS} -Wno-invalid-offsetof -ffloat-store")
 +  set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_CXX_FLAGS} -ffloat-store") #compiler_{degrees,radians,function_argument2} use equality comparison of floats
    set (CMAKE_CXX_FLAGS_DEBUG          "-O0 -g -DGBE_DEBUG=1")
    set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1")
diff --git a/debian/rules b/debian/rules
index 2bca087..2f82669 100755
--- a/debian/rules
+++ b/debian/rules
@@ -13,7 +13,7 @@ export DEB_CPPFLAGS_MAINT_APPEND = -DGBE_DEBUG=1
 # We build with the headers from opencl-headers.
 SUPERFLUOUS=cl.h cl_d3d10.h cl_dx9_media_sharing.h cl_ext.h cl_gl_ext.h cl_platform.h cl.hpp cl_d3d11.h cl_egl.h cl_gl.h opencl.h
 
-LLVM_VERSION		:= 9
+LLVM_VERSION		:= 10
 
 override_dh_auto_configure:
 	$(RM) $(patsubst %,include/CL/%,$(SUPERFLUOUS))

Reply to: