GDB 8.1 build error

Simon Marchi simon.marchi@polymtl.ca
Fri Apr 27 19:08:00 GMT 2018


On 2018-04-27 14:44, Paul Koning wrote:
> I then asked specifically for probe.o ("cd gdb && make probe.o"):
> 
> g++ -x c++ -std=gnu++11 -g -O2   -I.
> -I/Users/pkoning/Downloads/gdb-8.1/gdb
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/common
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/config
> -DLOCALEDIR="\"/usr/local/trunk/share/locale\"" -DHAVE_CONFIG_H
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/../include/opcode
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/../opcodes/..
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/../readline/..
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/../zlib -I../bfd
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/../bfd
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/../include -I../libdecnumber
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/../libdecnumber
> -I/Users/pkoning/Downloads/gdb-8.1/gdb/gnulib/import
> -Ibuild-gnulib/import   -DTUI=1
> -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
> -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
> -w  -c -o probe.o -MT probe.o -MMD -MP -MF ./.deps/probe.Tpo
> /Users/pkoning/Downloads/gdb-8.1/gdb/probe.c
> /Users/pkoning/Downloads/gdb-8.1/gdb/probe.c:63:28: error: default
>       initialization of an object of const type 'const 
> any_static_probe_ops'
>       without a user-provided default constructor
> const any_static_probe_ops any_static_probe_ops;
>                            ^
>                                                {}
> 
> 
> 
> Paul-Konings-MacBook-Pro:buildgdb pkoning$ gcc --version
> Configured with:
> --prefix=/Applications/Xcode.app/Contents/Developer/usr
> --with-gxx-include-dir=/usr/include/c++/4.2.1
> Apple LLVM version 7.3.0 (clang-703.0.31)
> Target: x86_64-apple-darwin17.5.0
> Thread model: posix
> InstalledDir:
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
> Paul-Konings-MacBook-Pro:buildgdb pkoning$ head config.log
> This file contains any messages produced by compilers while
> running configure, to aid debugging if configure makes a mistake.
> 
> It was created by configure, which was
> generated by GNU Autoconf 2.64.  Invocation command line was
> 
>   $ /Users/pkoning/Downloads/gdb-8.1/configure
> --prefix=/usr/local/trunk --disable-build-warnings
> 
> 
> OS is Mac OS 10.13.4.
> 
> These appear to be LLVM incompatibilities; if I feed those command
> lines to (real) GCC 8.0, just built yesterday from current trunk, they
> compile cleanly.
> 
> 	paul

This seems to be a bogus error that was fixed in clang 3.9:

https://stackoverflow.com/questions/7411515/why-does-c-require-a-user-provided-default-constructor-to-default-construct-a?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

You Apple LLVM 7.3.0 seems to map to upstream clang 3.8.0:

https://en.wikipedia.org/wiki/Xcode#Latest_versions

I indeed get the same error if I try building the file with clang 3.8 on 
Linux:

$ clang++-3.8 -x c++ -std=gnu++11 -g3 -O0 <snip> 
/home/emaisin/src/binutils-gdb/gdb/probe.c
/home/emaisin/src/binutils-gdb/gdb/probe.c:63:28: error: default 
initialization of an object of
       const type 'const any_static_probe_ops' without a user-provided 
default constructor
const any_static_probe_ops any_static_probe_ops;
                            ^

If compatibility with clang 3.8 is really important to you, we could 
always add an empty constructor to that class.  Otherwise, if it's easy 
for you to update your Xcode, I'd say try that first.

Simon



More information about the Gdb mailing list