Bug#836934: frobtads: FTBFS with GCC 6: error: exception cleanup for this placement new selects non-placement operator delete
Followup-For: Bug #836934 Control: found -1 1:1.2.4-1.1 Control: retitle -1 frobtads: FTBFS with C++14 on i386: error: exception cleanup for this placement new selects non-placement operator delete Hi, this is still reproducible on i386 (and armhf, too, so probably a 32-bit problem): g++ -DHAVE_CONFIG_H -I. -I/build/frobtads-1.2.4/. -DFROBTADS -DTC_TARGET_T3 -DTADSNET -DOS_DECLARATIVE_TLS -DVMGLOB_VARS -D_M_IX86_64 -DRUNFAST -I/build/frobtads-1.2.4/./src -I/build/frobtads-1.2.4/./tads2 -I/build/frobtads-1.2.4/./tads3 -I/build/frobtads-1.2.4/./tads3/unix -DT3_INC_DIR=\"/usr/share/frobtads/tads3/include\" -DT3_LIB_DIR=\"/usr/share/frobtads/tads3/lib\" -DT3_RES_DIR=\"/usr/share/frobtads/tads3/res\" -DT3_LOG_FILE=\"/tmp/frob.log\" -I/build/frobtads-1.2.4/./src -I/build/frobtads-1.2.4/./tads2 -I/build/frobtads-1.2.4/./src -I/build/frobtads-1.2.4/./tads3 -I/build/frobtads-1.2.4/./tads3/test -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/frobtads-1.2.4=. -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-aliasing -pthread -c -o tads3/tcprs.o /build/frobtads-1.2.4/./tads3/tcprs.cpp In file included from /build/frobtads-1.2.4/./tads3/tcprs.cpp:39: /build/frobtads-1.2.4/./tads3/vmbignum.h: In static member function 'static vm_obj_id_t CVmObjBigNum::create(int, const bignum_t*)': /build/frobtads-1.2.4/./tads3/vmbignum.h:585:45: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive] 585 | new (vmg_ id) CVmObjBigNum(vmg_ prec); | ^ : note: 'void operator delete(void*, unsigned int)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation) /build/frobtads-1.2.4/./tads3/vmbignum.h: In static member function 'static vm_obj_id_t CVmObjBigNum::create(int, const bignum_t&)': /build/frobtads-1.2.4/./tads3/vmbignum.h:596:45: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive] 596 | new (vmg_ id) CVmObjBigNum(vmg_ prec); | ^ : note: 'void operator delete(void*, unsigned int)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation) /build/frobtads-1.2.4/./tads3/vmbignum.h: In member function 'virtual void CVmMetaclassBigNum::create_for_image_load(vm_obj_id_t)': /build/frobtads-1.2.4/./tads3/vmbignum.h:1640:36: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive] 1640 | new (vmg_ id) CVmObjBigNum(); |^ : note: 'void operator delete(void*, unsigned int)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation) /build/frobtads-1.2.4/./tads3/vmbignum.h: In member function 'virtual void CVmMetaclassBigNum::create_for_restore(vm_obj_id_t)': /build/frobtads-1.2.4/./tads3/vmbignum.h:1647:36: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive] 1647 | new (vmg_ id) CVmObjBigNum(); |^ : note: 'void operator delete(void*, unsigned int)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation) make[2]: *** [Makefile:10276: tads3/tcprs.o] Error 1 make[2]: Leaving directory '/build/frobtads-1.2.4/obj-i686-linux-gnu' make[1]: *** [Makefile:3854: all] Error 2 make[1]: Leaving directory '/build/frobtads-1.2.4/obj-i686-linux-gnu' make: *** [/usr/share/cdbs/1/class/makefile.mk:77: debian/stamp-makefile-build] Error 2 Andreas
Bug#836934: frobtads: FTBFS with GCC 6: error: exception cleanup for this placement new selects non-placement operator delete
Juhani Numminen kirjoitti 10.12.2017 klo 14:42: Juhani Numminen kirjoitti 10.12.2017 klo 14:31: ... On Sat, 24 Sep 2016 22:05:34 +0200 Andreas Beckmann wrote: ... >> Nope. It builds fine on amd64, but fails on i386 (both in pbuilder on an amd64 host). ... In this patch that applies to frobtads, I add -std=gnu++98 because that was the default before GCC 6 changed it to -std=gnu++14. Actually I think going to C++11 or GNU++11 suffices since due to frobtads and qtads duplicating code, this (#836934) is pretty much the same as https://bugs.debian.org/857897 Juhani
Bug#836934: frobtads: FTBFS with GCC 6: error: exception cleanup for this placement new selects non-placement operator delete
Control: reopen -1 On 2016-09-24 20:46, Sebastian Ramacher wrote: > On 2016-09-07 13:09:40, Andreas Beckmann wrote: >> frobtads FTBFS since the default compiler was switched to GCC 6 (which >> defaults to -std=c++14): >> >> g++ -DHAVE_CONFIG_H -I. -I/build/frobtads-1.2.3/. -DFROBTADS -DTC_TARGET_T3 >> -DTADSNET -DOS_DECLARATIVE_TLS -DVMGLOB_VARS -D_M_IX86_64 -DRUNFAST >> -I/build/frobtads-1.2.3/./src -I/build/frobtads-1.2.3/./tads2 >> -I/build/frobtads-1.2.3/./tads3 -I/build/frobtads-1.2.3/./tads3/unix >> -DT3_INC_DIR=\"/usr/share/frobtads/tads3/include\" >> -DT3_LIB_DIR=\"/usr/share/frobtads/tads3/lib\" >> -DT3_RES_DIR=\"/usr/share/frobtads/tads3/res\" >> -DT3_LOG_FILE=\"/tmp/frob.log\" -I/build/frobtads-1.2.3/./src >> -I/build/frobtads-1.2.3/./tads2 -I/build/frobtads-1.2.3/./src >> -I/build/frobtads-1.2.3/./tads3 -I/build/frobtads-1.2.3/./tads3/test >> -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 >> -fdebug-prefix-map=/build/frobtads-1.2.3=. -fstack-protector-strong -Wformat >> -Werror=format-security -fno-strict-aliasing -pthread -c -o tads3/tcprs.o >> /build/frobtads-1.2.3/./tads3/tcprs.cpp >> In file included from /build/frobtads-1.2.3/./tads3/tcprs.cpp:39:0: >> /build/frobtads-1.2.3/./tads3/vmbignum.h: In static member function 'static >> vm_obj_id_t CVmObjBigNum::create(int, const bignum_t*)': >> /build/frobtads-1.2.3/./tads3/vmbignum.h:585:45: error: exception cleanup >> for this placement new selects non-placement operator delete [-fpermissive] >> new (vmg_ id) CVmObjBigNum(vmg_ prec); > frobtads builds fine in todays sid. Closing. Nope. It builds fine on amd64, but fails on i386 (both in pbuilder on an amd64 host). Andreas
Bug#836934: frobtads: FTBFS with GCC 6: error: exception cleanup for this placement new selects non-placement operator delete
Source: frobtads Version: 1:1.2.3-1 Severity: serious Tags: sid stretch Justification: fails to build from source Hi, frobtads FTBFS since the default compiler was switched to GCC 6 (which defaults to -std=c++14): g++ -DHAVE_CONFIG_H -I. -I/build/frobtads-1.2.3/. -DFROBTADS -DTC_TARGET_T3 -DTADSNET -DOS_DECLARATIVE_TLS -DVMGLOB_VARS -D_M_IX86_64 -DRUNFAST -I/build/frobtads-1.2.3/./src -I/build/frobtads-1.2.3/./tads2 -I/build/frobtads-1.2.3/./tads3 -I/build/frobtads-1.2.3/./tads3/unix -DT3_INC_DIR=\"/usr/share/frobtads/tads3/include\" -DT3_LIB_DIR=\"/usr/share/frobtads/tads3/lib\" -DT3_RES_DIR=\"/usr/share/frobtads/tads3/res\" -DT3_LOG_FILE=\"/tmp/frob.log\" -I/build/frobtads-1.2.3/./src -I/build/frobtads-1.2.3/./tads2 -I/build/frobtads-1.2.3/./src -I/build/frobtads-1.2.3/./tads3 -I/build/frobtads-1.2.3/./tads3/test -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/frobtads-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-aliasing -pthread -c -o tads3/tcprs.o /build/frobtads-1.2.3/./tads3/tcprs.cpp In file included from /build/frobtads-1.2.3/./tads3/tcprs.cpp:39:0: /build/frobtads-1.2.3/./tads3/vmbignum.h: In static member function 'static vm_obj_id_t CVmObjBigNum::create(int, const bignum_t*)': /build/frobtads-1.2.3/./tads3/vmbignum.h:585:45: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive] new (vmg_ id) CVmObjBigNum(vmg_ prec); ^ : note: 'void operator delete(void*, unsigned int)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation) /build/frobtads-1.2.3/./tads3/vmbignum.h: In static member function 'static vm_obj_id_t CVmObjBigNum::create(int, const bignum_t&)': /build/frobtads-1.2.3/./tads3/vmbignum.h:596:45: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive] new (vmg_ id) CVmObjBigNum(vmg_ prec); ^ : note: 'void operator delete(void*, unsigned int)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation) /build/frobtads-1.2.3/./tads3/vmbignum.h: In member function 'virtual void CVmMetaclassBigNum::create_for_image_load(vm_obj_id_t)': /build/frobtads-1.2.3/./tads3/vmbignum.h:1640:36: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive] new (vmg_ id) CVmObjBigNum(); ^ : note: 'void operator delete(void*, unsigned int)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation) /build/frobtads-1.2.3/./tads3/vmbignum.h: In member function 'virtual void CVmMetaclassBigNum::create_for_restore(vm_obj_id_t)': /build/frobtads-1.2.3/./tads3/vmbignum.h:1647:36: error: exception cleanup for this placement new selects non-placement operator delete [-fpermissive] new (vmg_ id) CVmObjBigNum(); ^ : note: 'void operator delete(void*, unsigned int)' is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation) Makefile:6604: recipe for target 'tads3/tcprs.o' failed make[2]: *** [tads3/tcprs.o] Error 1 Andreas