Opened 5 years ago
Last modified 5 years ago
#19052 new defect
split of the soapC.cpp file triggers internal GCC 9+ bug
Reported by: | Frank Batschulat (Oracle) | Owned by: | |
---|---|---|---|
Component: | webservices | Version: | VirtualBox 6.0.14 |
Keywords: | soapC.cpp gcc | Cc: | |
Guest type: | other | Host type: | other |
Description (last modified by )
The split of the soapC.cpp file triggers an apparent internal bug in GCC 9+ Disabling the split makes the compilation succeed:
/home/ws/vbtrunk/trunk/out/linux.amd64/debug/obj/webservice/soapC-1.cpp: In function ‘int soap_putelement(soap*, const void*, const char*, int, int)’: /home/ws/vbtrunk/trunk/out/linux.amd64/debug/obj/webservice/soapC-1.cpp:19905: internal compiler error: in subspan, at input.h:68 19905 | SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap *soap, const void *ptr, const char *tag, int id, int type) | Please submit a full bug report, with preprocessed source if appropriate. See <http://bugzilla.redhat.com/bugzilla> for instructions. Preprocessed source stored into /tmp/cc6m3qIX.out file, please attach this to your bugreport. kmk: *** [/home/ws/vbtrunk/trunk/kBuild/footer-pass2-compiling-targets.kmk:277: /home/ws/vbtrunk/trunk/out/linux.amd64/debug/obj/vboxsoap/gen/webservice/soapC-1.o] Error 1
Build system details that saw this bug:
1) Fedora 32 (Workstation Edition) Rawhide
$ uname -a ; gcc -v Linux oradesk 5.4.0-0.rc4.git3.1.fc32.x86_64 #1 SMP Thu Oct 24 13:28:33 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-redhat-linux Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 9.2.1 20190827 (Red Hat 9.2.1-1) (GCC)
2) OpenSuse Tumbleweed:
Linux hpbox 5.2.8-1-default #1 SMP Fri Aug 9 17:51:51 UTC 2019 (bf37e83) x86_64 x86_64 x86_64 GNU/Linux CPE_NAME="cpe:/o:opensuse:tumbleweed:20190814" gcc -v Using built-in specs. COLLECT_GCC=cc COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/9/lto-wrapper OFFLOAD_TARGET_NAMES=hsa:nvptx-none Target: x86_64-suse-linux Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,ada,go,d --enable-offload-targets=hsa,nvptx-none=/usr/nvptx-none, --without-cuda-driver --disable-werror --with-gxx-include-dir=/usr/include/c++/9 --enable-ssp --disable-libssp --disable-libvtv --disable-cet --disable-libcc1 --enable-plugin --with-bugurl=https://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --with-slibdir=/lib64 --with-system-zlib --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-libphobos --enable-version-specific-runtime-libs --with-gcc-major-version-only --enable-linker-build-id --enable-linux-futex --enable-gnu-indirect-function --program-suffix=-9 --without-system-libunwind --enable-multilib --with-arch-32=x86-64 --with-tune=generic --with-build-config=bootstrap-lto-lean --enable-link-mutex --build=x86_64-suse-linux --host=x86_64-suse-linux Thread model: posix gcc version 9.1.1 20190723 [gcc-9-branch revision 273734] (SUSE Linux)
3) OpenSuse Tumbleweed:
Linux hpbox 5.3.7-1-default #1 SMP Mon Oct 21 06:03:17 UTC 2019 (3eea5a9) x86_64 x86_64 x86_64 GNU/Linux gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/9/lto-wrapper OFFLOAD_TARGET_NAMES=hsa:nvptx-none Target: x86_64-suse-linux Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,ada,go,d --enable-offload-targets=hsa,nvptx-none=/usr/nvptx-none, --without-cuda-driver --disable-werror --with-gxx-include-dir=/usr/include/c++/9 --enable-ssp --disable-libssp --disable-libvtv --disable-cet --disable-libcc1 --enable-plugin --with-bugurl=https://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --with-slibdir=/lib64 --with-system-zlib --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-libphobos --enable-version-specific-runtime-libs --with-gcc-major-version-only --enable-linker-build-id --enable-linux-futex --enable-gnu-indirect-function --program-suffix=-9 --without-system-libunwind --enable-multilib --with-arch-32=x86-64 --with-tune=generic --with-build-config=bootstrap-lto-lean --enable-link-mutex --build=x86_64-suse-linux --host=x86_64-suse-linux Thread model: posix gcc version 9.2.1 20190903 [gcc-9-branch revision 275330] (SUSE Linux)
### sledgehammer Workaround in LocalConfig.kmk
### disable webservices build with:
VBOX_WITH_WEBSERVICES :=
Text string: soapC-1.cpp
File Line 0 Makefile.kmk 245 $(VBOXWEB_OUT_DIR)/soapC-1.cpp \ 1 Makefile.kmk 812 $(VBOXWEB_OUT_DIR)/soapC-1.cpp \
from: trunk/src/VBox/Main/webservice/Makefile.kmk
236 ifdef VBOX_WITHOUT_SPLIT_SOAPC 237 vboxsoap_SOURCES = \ 238 $(VBOXWEB_OUT_DIR)/soapC.cpp 239 else 240 BLDPROGS += split-soapC 241 split-soapC_TEMPLATE = VBoxBldProg 242 split-soapC_SOURCES = split-soapC.cpp 243 244 vboxsoap_SOURCES = \ 245 $(VBOXWEB_OUT_DIR)/soapC-1.cpp \ 246 $(VBOXWEB_OUT_DIR)/soapC-2.cpp \ [..] 807 ifndef VBOX_WITHOUT_SPLIT_SOAPC 808 # 809 # Split up the soapC.cpp monster into manageable bits that can be 810 # built in parallel and without exhausting all available memory. 811 # 812 $(VBOXWEB_OUT_DIR)/soapC-1.cpp \ 813 + $(VBOXWEB_OUT_DIR)/soapC-2.cpp \ 814 + $(VBOXWEB_OUT_DIR)/soapC-3.cpp \ 815 + $(VBOXWEB_OUT_DIR)/soapC-4.cpp \ [...] 841 : $(VBOXWEB_OUT_DIR)/soapC.cpp $$(split-soapC_1_TARGET) | $$(dir $$@) 842 $(RM) -f -- $(wildcard $(VBOXWEB_OUT_DIR)/soapC-?.cpp $(VBOXWEB_OUT_DIR)/soapC-??.cpp) 843 $(split-soapC_1_TARGET) $(VBOXWEB_OUT_DIR)/soapC.cpp $(VBOXWEB_OUT_DIR) 29 844 endif # !VBOX_WITHOUT_SPLIT_SOAPC
### disabling the split works reasonably well and compiles
### successfully on a 16GB memory/12 cpu cores system and
### on a 16GB memory/2 CPUs system despite the comment.
$ cat LocalConfig.kmk
VBOX_WITHOUT_SPLIT_SOAPC := 1