← All tasks
cppgoogle/bloaty #360Not a task: not reproduced

zlib build failure when using bundled version

envgap__google__bloaty-360

01 / FAILURE SIGNATURE

As reported upstream

/bloaty/third_party/zlib/test/example.c:8:10: fatal error: zlib.h: No such file or directory
Not a benchmark task.
  • In a clean container the reported failure did not reproduce, or the known fix did not make the project run.

02 / ENVIRONMENT RECIPE

Base commit
987d092d68078ac773f92e363fbc5a5435b7cf0d
Manifest
CMakeLists.txt
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

google/bloaty #360 · read the original issue
Builds fine when `libz-dev` is installed in Ubuntu 22.04, but without it, it tries to use the local submodule sources and fails to find `zlib.h`.





```

$ cmake -B build -G Ninja -S . && cmake --build build

-- The C compiler identification is GNU 11.4.0

-- The CXX compiler identification is GNU 11.4.0

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working C compiler: /usr/bin/cc - skipped

-- Detecting C compile features

-- Detecting C compile features - done

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Check for working CXX compiler: /usr/bin/c++ - skipped

-- Detecting CXX compile features

-- Detecting CXX compile features - done

-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

-- Checking for one of the modules 're2'

-- Checking for one of the modules 'capstone'

-- Checking for one of the modules 'protobuf'

-- System re2 not found, using bundled version

-- System capstone not found, using bundled version

-- System protobuf not found, using bundled version

-- System zlib not found, using bundled version

-- Setting build type to 'RelWithDebInfo' as none was specified.

-- Looking for pthread.h

-- Looking for pthread.h - found

-- Performing Test CMAKE_HAVE_LIBC_PTHREAD

-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success

-- Found Threads: TRUE

CMake Deprecation Warning at third_party/capstone/CMakeLists.txt:1 (cmake_minimum_required):

  Compatibility with CMake < 2.8.12 will be removed from a future version of

  CMake.



  Update the VERSION argument <min> value or use a ...<max> suffix to tell

  CMake that the project does not need compatibility with older versions.





CMake Warning (dev) at third_party/capstone/CMakeLists.txt:2 (project):

  Policy CMP0048 is not set: project() command manages VERSION variables.

  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy

  command to set the policy and suppress this warning.



  The following variable(s) would be set to empty:



    PROJECT_VERSION

    PROJECT_VERSION_MAJOR

    PROJECT_VERSION_MINOR

This warning is for project developers.  Use -Wno-dev to suppress it.



CMake Deprecation Warning at third_party/capstone/CMakeLists.txt:18 (cmake_policy):

  The OLD behavior for policy CMP0048 will be removed from a future version

  of CMake.



  The cmake-policies(7) manual explains that the OLD behaviors of all

  policies are deprecated and that a policy should be set to OLD only under

  specific short-term circumstances.  Projects should be ported to the NEW

  behavior and not rely on setting a policy to OLD.





Enabling CAPSTONE_ARM_SUPPORT

Enabling CAPSTONE_ARM64_SUPPORT

Enabling CAPSTONE_M68K_SUPPORT

Enabling CAPSTONE_MIPS_SUPPORT

Enabling CAPSTONE_PPC_SUPPORT

Enabling CAPSTONE_SPARC_SUPPORT

Enabling CAPSTONE_SYSZ_SUPPORT

Enabling CAPSTONE_XCORE_SUPPORT

Enabling CAPSTONE_X86_SUPPORT

Enabling CAPSTONE_TMS320C64X_SUPPORT

Enabling CAPSTONE_M680X_SUPPORT

Enabling CAPSTONE_EVM_SUPPORT

Enabling CAPSTONE_MOS65XX_SUPPORT

--

-- 3.9.1.0

-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

-- Performing Test protobuf_HAVE_BUILTIN_ATOMICS

-- Performing Test protobuf_HAVE_BUILTIN_ATOMICS - Success

CMake Deprecation Warning at third_party/zlib/CMakeLists.txt:1 (cmake_minimum_required):

  Compatibility with CMake < 2.8.12 will be removed from a future version of

  CMake.



  Update the VERSION argument <min> value or use a ...<max> suffix to tell

  CMake that the project does not need compatibility with older versions.





CMake Warning (dev) at third_party/zlib/CMakeLists.txt:4 (project):

  Policy CMP0048 is not set: project() command manages VERSION variables.

  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy

  command to set the policy and suppress this warning.



  The following variable(s) would be set to empty:



    PROJECT_VERSION

    PROJECT_VERSION_MAJOR

    PROJECT_VERSION_MINOR

This warning is for project developers.  Use -Wno-dev to suppress it.



-- Looking for sys/types.h

-- Looking for sys/types.h - found

-- Looking for stdint.h

-- Looking for stdint.h - found

-- Looking for stddef.h

-- Looking for stddef.h - found

-- Check size of off64_t

-- Check size of off64_t - done

-- Looking for fseeko

-- Looking for fseeko - found

-- Looking for unistd.h

-- Looking for unistd.h - found

-- Renaming

--     /bloaty/third_party/zlib/zconf.h

-- to 'zconf.h.included' because this file is included with zlib

-- but CMake generates it automatically in the build directory.

-- Performing Test SUPPORTS_COLOR_ALWAYS

-- Performing Test SUPPORTS_COLOR_ALWAYS - Success

-- Could NOT find Python (missing: Python_EXECUTABLE Interpreter)

-- Could NOT find Python (missing: Python_EXECUTABLE Interpreter)

-- Configuring done

-- Generating done

-- Build files have been written to: /bloaty/build

[96/375] Building CXX object third_party/protobuf/cmake/CMakeFiles/libprotobuf-lite.dir/__/src/google/protobuf/message_lite.cc.o

In file included from /usr/include/string.h:535,

                 from /bloaty/third_party/protobuf/src/google/protobuf/stubs/port.h:38,

                 from /bloaty/third_party/protobuf/src/google/protobuf/stubs/common.h:46,

                 from /bloaty/third_party/protobuf/src/google/protobuf/message_lite.h:45,

                 from /bloaty/third_party/protobuf/src/google/protobuf/message_lite.cc:36:

In function 'void* memcpy(void*, const void*, size_t)',

    inlined from 'google::protobuf::uint8* google::protobuf::io::EpsCopyOutputStream::WriteRaw(const void*, int, google::protobuf::uint8*)' at /bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:697:16,

    inlined from 'virtual google::protobuf::uint8* google::protobuf::internal::ImplicitWeakMessage::InternalSerializeWithCachedSizesToArray(google::protobuf::uint8*, google::protobuf::io::EpsCopyOutputStream*) const' at /bloaty/third_party/protobuf/src/google/protobuf/implicit_weak_message.h:87:28,

    inlined from 'bool google::protobuf::MessageLite::SerializePartialToZeroCopyStream(google::protobuf::io::ZeroCopyOutputStream*) const' at /bloaty/third_party/protobuf/src/google/protobuf/message_lite.cc:387:51:

/usr/include/x86_64-linux-gnu/bits/string_fortified.h:29:33: warning: 'void* __builtin___memcpy_chk(void*, const void*, long unsigned int, long unsigned int)' specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]

   29 |   return __builtin___memcpy_chk (__dest, __src, __len,

      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~

   30 |                                  __glibc_objsize0 (__dest));

      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~

[126/375] Building CXX object third_party/protobuf/cmake/CMakeFiles/libprotobuf.dir/__/src/google/protobuf/message_lite.cc.o

In file included from /usr/include/string.h:535,

                 from /bloaty/third_party/protobuf/src/google/protobuf/stubs/port.h:38,

                 from /bloaty/third_party/protobuf/src/google/protobuf/stubs/common.h:46,

                 from /bloaty/third_party/protobuf/src/google/protobuf/message_lite.h:45,

                 from /bloaty/third_party/protobuf/src/google/protobuf/message_lite.cc:36:

In function 'void* memcpy(void*, const void*, size_t)',

    inlined from 'google::protobuf::uint8* google::protobuf::io::EpsCopyOutputStream::WriteRaw(const void*, int, google::protobuf::uint8*)' at /bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:697:16,

    inlined from 'virtual google::protobuf::uint8* google::protobuf::internal::ImplicitWeakMessage::InternalSerializeWithCachedSizesToArray(google::protobuf::uint8*, google::protobuf::io::EpsCopyOutputStream*) const' at /bloaty/third_party/protobuf/src/google/protobuf/implicit_weak_message.h:87:28,

    inlined from 'bool google::protobuf::MessageLite::SerializePartialToZeroCopyStream(google::protobuf::io::ZeroCopyOutputStream*) const' at /bloaty/third_party/protobuf/src/google/protobuf/message_lite.cc:387:51:

/usr/include/x86_64-linux-gnu/bits/string_fortified.h:29:33: warning: 'void* __builtin___memcpy_chk(void*, const void*, long unsigned int, long unsigned int)' specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]

   29 |   return __builtin___memcpy_chk (__dest, __src, __len,

      |          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~

   30 |                                  __glibc_objsize0 (__dest));

      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~

[304/375] Building C object third_party/zlib/CMakeFiles/example.dir/test/example.o

FAILED: third_party/zlib/CMakeFiles/example.dir/test/example.o

/usr/bin/cc -DUSE_RE2 -D_LARGEFILE64_SOURCE=1 -D_LIBCXXABI_FUNC_VIS="" -I/bloaty/third_party/re2 -I/bloaty/third_party/capstone/include -I/bloaty/build/third_party/zlib -I/bloaty -isystem /bloaty/third_party/protobuf/src -O2 -g -DNDEBUG -MD -MT third_party/zlib/CMakeFiles/example.dir/test/example.o -MF third_party/zlib/CMakeFiles/example.dir/test/example.o.d -o third_party/zlib/CMakeFiles/example.dir/test/example.o -c /bloaty/third_party/zlib/test/example.c

/bloaty/third_party/zlib/test/example.c:8:10: fatal error: zlib.h: No such file or directory

    8 | #include "zlib.h"

      |          ^~~~~~~~

compilation terminated.

[305/375] Building C object third_party/zlib/CMakeFiles/minigzip.dir/test/minigzip.o

FAILED: third_party/zlib/CMakeFiles/minigzip.dir/test/minigzip.o

/usr/bin/cc -DUSE_RE2 -D_LARGEFILE64_SOURCE=1 -D_LIBCXXABI_FUNC_VIS="" -I/bloaty/third_party/re2 -I/bloaty/third_party/capstone/include -I/bloaty/build/third_party/zlib -I/bloaty -isystem /bloaty/third_party/protobuf/src -O2 -g -DNDEBUG -MD -MT third_party/zlib/CMakeFiles/minigzip.dir/test/minigzip.o -MF third_party/zlib/CMakeFiles/minigzip.dir/test/minigzip.o.d -o third_party/zlib/CMakeFiles/minigzip.dir/test/minigzip.o -c /bloaty/third_party/zlib/test/minigzip.c

/bloaty/third_party/zlib/test/minigzip.c:18:10: fatal error: zlib.h: No such file or directory

   18 | #include "zlib.h"

      |          ^~~~~~~~

compilation terminated.

[308/375] Linking CXX static library third_party/protobuf/cmake/libprotoc.a

ninja: build stopped: subcommand failed.

```



To replicate, the simplest method might be to use docker:

```bash

docker run --rm ubuntu:22.04 bash -c "apt-get update -qq && \

    apt-get install -y git build-essential cmake ninja-build && \

    git clone https://github.com/google/bloaty.git && \

    cd bloaty && \

    git submodule update --init --recursive && \

    cmake -B build -G Ninja -S . && \

    cmake --build build"

```



If `libz-dev` is added to the `apt-get install` line, it builds correctly using the system zlib.
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]