--- Begin Message ---
On Aug 8, 2021, at 2:26 AM, Denis Ovsienko <de...@ovsienko.info> wrote:

> GCC+CMake fails early now (see attached).

Good!  That reveals the *underlying* problem:

1) CMake, by default, checks for both a C *and* a C++ compiler;

2) if it's checking for both compilers, the way CMake determines 
CMAKE_SIZEOF_VOID_P is to:

        check for a C compiler;

        set CMAKE_C_SIZEOF_DATA_PTR to the size of data pointers in that C 
compiler with whatever C flags are being used;

        set CMAKE_SIZEOF_VOID_P to CMAKE_C_SIZEOF_DATA_PTR;

        check for a C++ compiler;

        set CMAKE_CXX_SIZEOF_DATA_PTR to the size of data pointers in that C++ 
compiler with whatever C++ flags are being used;

        set CMAKE_SIZEOF_VOID_P to CMAKE_CXX_SIZEOF_DATA_PTR;

3) Sun/Oracle's C and C++ compilers default to building *32-bit* code;

4) the version of GCC installed on the Solaris 11 builder appears to default to 
building 64-bit code;

5) there does not appear to be a version of G++ installed, so CMake finds 
"/usr/bin/CC", which is the Sun/Oracle C++ compiler;

6) as a result of the above, CMake ends up setting CMAKE_SIZEOF_VOID_P to 4, 
which can affect the process of finding libraries;

7) nevertheless, the C code (which is *all* the code - ain't no C++ in tcpdump) 
is compiled 64-bit;

8) hilarity ensues.

I've checked in a change to explicitly tell CMake "this is a C-only project, 
don't check for a C++ compiler", so it should now think it's building 64-bit 
when building with GCC.

See whether that fixes things.

--- End Message ---
_______________________________________________
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Reply via email to