Re: gdb/head build, with GCC10, FAILs @ "error : expected constructor, destructor, or type conversion befo re ‘(’ token" ?

Tom de Vries <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On 26-03-2020 00:25, PGNet Dev via Gdb wrote:
> building
> 
> 	cd src/binutils-gdb
> 	git log | head -n 5
> 		commit 33aa3c10f663b834c9573ede439b2df3c92f0cfe
> 		Author: Tom Tromey <[email protected]>
> 		Date:   Wed Mar 25 10:26:38 2020 -0600
> 		...
> 
> with
> 
> 	gcc --version
> 		gcc (SUSE Linux) 10.0.1 20200324 (experimental) [revision 75c24a08d697d6442fe6c26142f0559f803af977]
> 
> config's
> 
> 	export LDFLAGS="-L/usr/local/pyenv/versions/3.8-dev/lib -Wl,-rpath,/usr/local/pyenv/versions/3.8-dev/lib"
> 	export LIBS="-lpython3.8"
> 	./configure \
> 	 --prefix=/usr/local/gdb-test \
> 	 --with-python=/usr/local/pyenv/versions/3.8-dev
> 
> no errors.
> 
> make FAILs @ gdbsupport/gdb_proc_service.h
> 
> 	make V=1
> 		...
> 		/usr/bin/g++-10  -O3 -Wall -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -std=c++17    -I. -I. -I./../gdb/regformats -I./.. -I./../include -I./../gdb -I./../gnulib/import -I../gnulib/import -I./.. -I..  -O3 -Wall -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -D_FORTIFY_SOURCE=2 -pthread -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-variable -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-error=maybe-uninitialized -Wno-mismatched-tags -Wsuggest-override -Wimplicit-fallthrough=3 -Wduplicated-cond -Wshadow=local -Wdeprecated-copy -Wdeprecated-copy-dtor -Wredundant-move -Wmissing-declarations -Wstrict-null-sentinel -Wformat -Wformat-nonliteral -Werror -DGDBSERVER -c -o linux-low.o -MT linux-low.o -MMD -MP -MF ./.deps/linux-low.Tpo linux-low.cc

I can reproduce this by using CXXFLAGS=-std=c++17 (which for some reason
I don't see mentioned in the build settings description above).

> 		In file included from gdb_proc_service.h:22,
> 		                 from linux-low.h:27,
> 		                 from linux-low.cc:20:
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:179:1: note: in expansion of macro ‘PS_EXPORT’
> 		  179 | PS_EXPORT (ps_get_thread_area);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:180:1: note: in expansion of macro ‘PS_EXPORT’
> 		  180 | PS_EXPORT (ps_getpid);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:181:1: note: in expansion of macro ‘PS_EXPORT’
> 		  181 | PS_EXPORT (ps_lcontinue);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:182:1: note: in expansion of macro ‘PS_EXPORT’
> 		  182 | PS_EXPORT (ps_lgetfpregs);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:183:1: note: in expansion of macro ‘PS_EXPORT’
> 		  183 | PS_EXPORT (ps_lgetregs);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:184:1: note: in expansion of macro ‘PS_EXPORT’
> 		  184 | PS_EXPORT (ps_lsetfpregs);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:185:1: note: in expansion of macro ‘PS_EXPORT’
> 		  185 | PS_EXPORT (ps_lsetregs);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:186:1: note: in expansion of macro ‘PS_EXPORT’
> 		  186 | PS_EXPORT (ps_lstop);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:187:1: note: in expansion of macro ‘PS_EXPORT’
> 		  187 | PS_EXPORT (ps_pcontinue);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:188:1: note: in expansion of macro ‘PS_EXPORT’
> 		  188 | PS_EXPORT (ps_pdread);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:189:1: note: in expansion of macro ‘PS_EXPORT’
> 		  189 | PS_EXPORT (ps_pdwrite);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:190:1: note: in expansion of macro ‘PS_EXPORT’
> 		  190 | PS_EXPORT (ps_pglobal_lookup);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:191:1: note: in expansion of macro ‘PS_EXPORT’
> 		  191 | PS_EXPORT (ps_pstop);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:192:1: note: in expansion of macro ‘PS_EXPORT’
> 		  192 | PS_EXPORT (ps_ptread);
> 		      | ^~~~~~~~~
> 		./../gdbsupport/gdb_proc_service.h:177:50: error: expected constructor, destructor, or type conversion before ‘(’ token
> 		  177 |   __attribute__((visibility ("default"))) typeof (SYM) SYM
> 		      |                                                  ^
> 		./../gdbsupport/gdb_proc_service.h:193:1: note: in expansion of macro ‘PS_EXPORT’
> 		  193 | PS_EXPORT (ps_ptwrite);
> 		      | ^~~~~~~~~
> 		make[2]: *** [Makefile:545: linux-low.o] Error 1
> 		make[2]: Leaving directory '/usr/local/src/binutils-gdb/gdbserver'
> 		make[1]: *** [Makefile:11295: all-gdbserver] Error 2
> 		make[1]: Leaving directory '/usr/local/src/binutils-gdb'
> 		make: *** [Makefile:854: all] Error 2
> 
> 
> not yet clear if that's a bug in gdb source, or an issue with (as yet, still unreleased) GCC10 

I reproduced this using the exact same gcc, as well as with gcc-7, gcc-8
and gcc-9.

Thanks,
- Tom
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.