This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 0/1] Build GDB as a C++ program by default
- From: Pedro Alves <palves at redhat dot com>
- To: Walfred Tedeschi <walfred dot tedeschi at intel dot com>, "Simon Marchi; gdb-patches"@sourceware.org, gdb-patches <gdb-patches at sourceware dot org>
- Date: Wed, 20 Apr 2016 20:56:03 +0100
- Subject: Re: [PATCH 0/1] Build GDB as a C++ program by default
- Authentication-results: sourceware.org; auth=none
- References: <1461000466-31668-1-git-send-email-palves at redhat dot com> <571633C8 dot 4060803 at ericsson dot com> <57163E3B dot 50101 at redhat dot com> <AC542571535E904D8E8ADAE745D60B19445B1C11 at IRSMSX104 dot ger dot corp dot intel dot com> <5716425B dot 3050707 at intel dot com> <57164325 dot 8020408 at redhat dot com> <57164CA9 dot 6080401 at intel dot com>
On 04/19/2016 04:20 PM, Walfred Tedeschi wrote:
> Am 4/19/2016 um 4:39 PM schrieb Pedro Alves:
>> On 04/19/2016 03:36 PM, Walfred Tedeschi wrote:
>>
>>> Pedro,
>>>
>>> Do you have some data about building GDB on OsX with
>>> --enable-build-with-cxx?
>>>
>>> If not I could give it a try!
>>
>> Please do give it a try. Thanks!
>>
>
> There is some issues, i will investigating a bit further.
> By now i was compiling with Clang, will also try to compile with gcc.
I managed to build a linux x darwin cross compiler here, using the
osxcross tool.
Indeed, clang++ stumbles on a bunch of issues. But then again, so
does clang in C-mode.
With gcc/g++ (5.3.0), and I see a few warnings/errors. Configuring gdb with:
/home/pedro/gdb/mygit/cxx-convertion/src/configure --host=x86_64-apple-darwin15 CFLAGS="-g3 -O0" CXXFLAGS="-g3 -O0" --enable-build-with-cxx=no --enable-targets=all --disable-ld --disable-binutils --disable-gas
First off, I see a set of:
/home/pedro/gdb/mygit/cxx-convertion/src/gdb/main.c:486:27: warning: 'void* sbrk(int)' is deprecated [-Wdeprecated-declarations]
lim_at_start = (char *) sbrk (0);
^
but I get that in C-mode too, so I'll ignore.
So, compiling with:
$ make -k WERROR_CFLAGS="-Wno-deprecated-declarations" 2>diagnostics.txt 1>/dev/null
I see just a few warnings / errors, and they all look easily fixable:
/home/pedro/gdb/mygit/cxx-convertion/src/gdb/aarch64-tdep.c: In function 'unsigned int aarch64_record_load_store(insn_decode_record*)':
/home/pedro/gdb/mygit/cxx-convertion/src/gdb/aarch64-tdep.c:3479:78: error: invalid conversion from 'uint64_t* {aka long long unsigned int*}' to 'ULONGEST* {aka long unsigned int*}' [-fpermissive]
bits (aarch64_insn_r->aarch64_insn, 16, 20), ®_rm_val);
/home/pedro/gdb/mygit/cxx-convertion/src/gdb/darwin-nat.c: In function 'void darwin_resume_thread(inferior*, darwin_thread_t*, int, int)':
/home/pedro/gdb/mygit/cxx-convertion/src/gdb/darwin-nat.c:731:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(caddr_t)thread->gdb_port, nsignal);
^
/home/pedro/gdb/mygit/cxx-convertion/src/gdb/darwin-nat.c: In function 'ptid_t darwin_decode_message(mach_msg_header_t*, darwin_thread_t**, inferior**, target_waitstatus*)':
/home/pedro/gdb/mygit/cxx-convertion/src/gdb/darwin-nat.c:1016:25: error: invalid conversion from 'int' to 'gdb_signal' [-fpermissive]
status->value.sig = WTERMSIG (wstatus);
/home/pedro/gdb/mygit/cxx-convertion/src/gdb/darwin-nat.c: In function 'void darwin_resume_thread(inferior*, darwin_thread_t*, int, int)':
/home/pedro/gdb/mygit/cxx-convertion/src/gdb/darwin-nat.c:731:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
(caddr_t)thread->gdb_port, nsignal);
^
I'll send patches later.
Thanks,
Pedro Alves