Re: GDB on Mac OS

Paul_Koning
2015-08-12T14:06:29Z

> On Aug 12, 2015, at 9:59 AM, Joel Brobecker <brobecker@adacore.com> wrote:
>
>>> The fact that it has build warnings is not too surprising. Outside
>>> of GNU/Linux, I'm not sure it's building warning-free on any
>>> other host. Building with --disable-werror is how we do it.
>>
>> Ok, but it would make sense for the default configure to select the
>> correct compile options that the build will run to completion.
>
> This is really a separate discussion, but my take on it is that
> the goal is to have warning-free builds on all platforms. Turning
> this feature off for some targets would hide those warnings away,
> and reduce our chances of anyone working on them. Building
> a snapshot of the day is considered to be building GDB in developer
> mode, so the warnings are fatal by default. If you were to build
> from a release or from a release branch, on the other hand, the
> configure settings have been changed to make the warnings non-fatal.
>
> Note that having a warning-free build is not entirely within GDB's
> control. For instance, you'll need a certain version of bison for
> it to generate files that compile warning-free. I don't believe
> it is worth spending time trying to come up with a list of tests
> that will tell us whether warnings should be fatal or not.

Ok, thanks. So that tells me that warnings should be considered issues to be fixed, rather than noise to be shut off or worked around.

Does that apply to LLVM warnings, too? There are a whole lot of those. Some are caused by sending GCC options to the compiler that LLVM doesn’t understand, in spite of the fact that it proclaims itself as GCC. It seems that configure will need to be able to tell the difference and avoid triggering those LLVM incompatibilities.

>
>> So is that the reason why so many tests fail? I know of the
>> codesigning requirement from actually using the debugger (or rather,
>> answering the prompt for my password, which is the alternative).
>> Where would I look for information on how to do this? It would seem
>> logical for “make check” either to do it, or to report that it needs
>> to be done.
>
> I'm not a specialist, but I don't think codesigning can happen
> automagically. Codesigning requires for instance the name of
> a certificate, which is yours to choose. Creating that certificate
> involves the use of graphical tools. That's why we left the codesigning
> to the user - especially since the binaries are transportable but
> the codesigning needs to be redone on every machine to match the
> certificates provided by each machine.
>
> https://sourceware.org/gdb/wiki/BuildingOnDarwin

Yes, I see that now, and your reasoning looks correct. The biggest trouble is that this information is buried in various places and has to be excavated. It would help if there were an entry in the README file, or a BUILDING file, that either gives the information or points to it.

paul