Home page logo

wireshark logo Wireshark mailing list archives

Re: [Wireshark-commits] rev 50204: /trunk/ /trunk/: configure.ac
From: Guy Harris <guy () alum mit edu>
Date: Fri, 28 Jun 2013 10:56:38 -0700

On Jun 28, 2013, at 5:20 AM, Jeff Morriss <jeff.morriss.ws () gmail com> wrote:

On 06/28/13 04:36, guy () wireshark org wrote:

User: guy
Date: 2013/06/28 01:36 AM

 AC_PROG_CXX doesn't actually check whether what it finds is a real live
 C++ compiler (it might not be one on, for example, OS X, due to "cc"
 being a C compiler, "CC" referring to "cc" due to the case-insensitivity
 of the default OS X file system, and "CC" being one of the names checked
 for in AC_PROG_CXX), so if we really need a C++ compiler, test it with a
 program that a C compiler won't compile.

Presumably this change can/should be pushed upstream to the autoconf folks?

Or, at least, suggested.  I suspect if you have, on your system, no C compiler, but have a shell script

        #! /bin/sh
        echo "Hello, world!"

named "cc", AC_PROG_CC will cheerfully choose it as your C compiler.

I've filed a bug on it, but I suggested that this might be a somewhat artificial problem; if you have a UN*X with a 
case-insensitive file system, you're probably on OS X, and you probably have c++/g++, which will be checked before CC.

This came up when I had a glitch when I did

        CC=clang ./configure --with-gtk2 --with-qt

The underlying problem is that

        1) in Xcode 4.6.3, llvm-gcc (including g++) doesn't support -Wvla, but clang (including clang++) does;

        2) that configuration causes clang to be picked as the C compiler and g++ to be picked as the C++ compiler, and 
causes the C++ compiler to be used;

        3) our "add this option if the compiler supports it" autoconf macro, if not told to add it only to CFLAGS or 
CXXFLAGS, will check whether the C compiler supports it and, if so, add it both to CFLAGS and CXXFLAGS (i.e., it 
assumes the C and C++ compilers are siblings).

I forget what I was doing, when debugging that problem, that got me to think we needed to make sure we didn't end up 
with cc as the C++ compiler.

I'm not sure what we should do about

        CC=clang ./configure --with-gtk2 --with-qt

We could make the "add this option if the compiler supports it" test it separately with the C and C++ compilers, and 
add it to CFLAGS and/or CXXFLAGS based on the results of both tests; that'd fix the -Wvla problem (and other problems 
of that sort), and might let us simplify the "add this option if the compiler supports it" code (by having a "add this 
option to CFLAGS if the C compiler supports it" macro, an "add this option to CXXFLAGS if the C++ compiler supports 
it", and an "add this option to CFLAGS if the C compiler supports it and CXXFLAGS if the C++ compiler supports it" 
macro that just runs the previous two; the former two can be used for the C-specific and C++-specific options).

It still doesn't warn you that you've only specified one alternative compiler, and probably really wanted to override 
the default for both, however.
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

  By Date           By Thread  

Current thread:
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]