Re: GDB 8.1 build error

Paul Koning
2018-04-27T18:44:55Z

> On Apr 27, 2018, at 2:02 PM, Simon Marchi <simon.marchi@polymtl.ca> wrote:
>
> On 2018-04-26 19:48, Paul Koning wrote:
>> I can't build GDB on Mac. This shows up both in a native build, and a
>> cross-build (for example target=mips-netbsdelf). I see this error:
>> /Users/pkoning/Downloads/gdb-8.1/gdb/stap-probe.c:122:29: error: default
>> initialization of an object of const type 'const stap_static_probe_ops'
>> without a user-provided default constructor
>> const stap_static_probe_ops stap_static_probe_ops;
>> or
>> /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;
>> (same problem, different source file).
>> paul
>
> Hi Paul,
>
> What is the compiler, which version, and can you share the full command line used to compile probe.o, for example?
>
> Simon

I had deleted the build test directory, so I repeated the operation. Got a failure again but a completely different one:

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 completer.o -MT completer.o -MMD -MP -MF ./.deps/completer.Tpo /Users/pkoning/Downloads/gdb-8.1/gdb/completer.c

/Users/pkoning/Downloads/gdb-8.1/gdb/completer.c:2041:23: error:
non-constant-expression cannot be narrowed from type 'int' to 'char' in
initializer list [-Wc++11-narrowing]
char buf[2] = { quote_char () };
^~~~~~~~~~~~~
/Users/pkoning/Downloads/gdb-8.1/gdb/completer.c:2041:23: note: insert an
explicit cast to silence this issue
char buf[2] = { quote_char () };
^~~~~~~~~~~~~
static_cast<char>( )

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