BIND 10 #3107: [kean] ./configure report versions of dependencies
BIND 10 Development
do-not-reply at isc.org
Wed Sep 11 11:40:56 UTC 2013
#3107: [kean] ./configure report versions of dependencies
-------------------------------------+-------------------------------------
Reporter: jreed | Owner: kean
Type: task | Status:
Priority: medium | reviewing
Component: build system | Milestone:
Keywords: | Sprint-20130917
Sensitive: 0 | Resolution:
Sub-Project: Core | CVSS Scoring:
Estimated Difficulty: 5 | Defect Severity: N/A
Total Hours: 0 | Feature Depending on Ticket:
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Changes (by muks):
* owner: muks => kean
Comment:
Hi Kean
Replying to [comment:11 kean]:
> Re your first point (C++ compiler version). That is very difficult
> because there is no standard. We can start building in a matrix of
> known C++ compilers and how to extract that information but at best it
> will be a half-baked effort because we simply don't know all of the
> compilers people use, or what the required flags are to even get the
> compiler version information (and some old compilers don't even have
> the option at all). So since we can't do it for every compiler do we
> really want to do it for only some? We can of course get 90% of the
> target audience by simply checking to see if the compiler is gcc and
> then using --version but that does seem a bit hokey.
We only have to print versions for the compilers we support: GCC,
clang++ and SunStudio. If we can detect that one of these is in use, we
should print its version if possible, or else we can print "Unknown".
The purpose of this bug is so we (developers) have all the information
required when debugging a problem, especially in our builders which are
the main source of problem reports. The compiler family and its version
are information we look for when solving C++ and Boost interop issues.
It seems that g++ version is already a part of `config.log`, so we're
almost there. Please check if the similar version info is included in
`config.log` for clang++ and SunStudio too.
> sed on many OSes, being a key OS utility, has no version. I cannot
> even begin to imagine why we would care about the version of sed or
> how it qualifies as a "dependency". sed is sed - its just part of UNIX
> :)
There are incompatibilities among implementations of sed. This team
fixed several issues in the last year due to such incompatibilities.
Mainly we'd want to know if GNU sed is in use on non-Linux platforms.
> Yes, the cpp mechanism will work for non-standard locations of
> log4cplus.
I'm sorry, I think I did not state it clearly. I asked that question
after noticing that it cannot work. Please test your code against
non-standard locations of dependencies where you run cpp.
> As for using angle brackets, the coding guidelines apply to actual
> source code, not to configure scripts, surely? There is good reason to
> use quotes in configure scripts, where the ordering of -I options is
> far more critical during feature detection.
Please state in unambiguous terms with an example what these reasons are
at the place where this test program is processed (after log4cplus
INCLUDES and LIBS are determined), and why you'd want one style of
`#include` in `configure.ac` and another in C++ source code in this case.
> Using compiled programs versus sed is very much against autoconf
> best-practices. It completely eliminates and alienates the
> cross-compiler world and there is absolutely no need for it.
There are already programs that we compile and run in `configure` to
check for features and bugs. But I'll not insist on this point as your
implementation prints the version numbers currently.
--
Ticket URL: <http://bind10.isc.org/ticket/3107#comment:13>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list