From 24226419eda6b7eb0ae635f9e69fcdbf662016c7 Mon Sep 17 00:00:00 2001 From: Alex James Date: Fri, 21 Sep 2018 22:36:43 -0500 Subject: [PATCH] zlib/CMakeLists: Fix check for unistd.h The CMakeLists file for the static zlib checks for presence of unistd.h, but it doesn't properly define HAVE_UNISTD_H if it's found. This change adds the necessary preprocessor definition if unistd.h is found. Upstream zlib handles this with by configuring zconf.h with CMake: https://github.com/madler/zlib/blob/cacf7f1d4e3d44d871b605da3b647f07d718623f/zconf.h.cmakein#L11 Dolphin's static version of zlib doesn't do this, which is why setting Z_HAVE_UNISTD_H in zlib's CMakeLists.txt isn't enough. This probably wasn't noticed since because most *nix systems will use the shared zlib. Force use of the static zlib (comment out find_package(ZLIB) in the root CMakeLists.txt) and you'll see implicit function declaration warnings during its compilation. --- Externals/zlib/CMakeLists.txt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Externals/zlib/CMakeLists.txt b/Externals/zlib/CMakeLists.txt index a76e97b06a..6f865141a5 100644 --- a/Externals/zlib/CMakeLists.txt +++ b/Externals/zlib/CMakeLists.txt @@ -8,11 +8,12 @@ include(CheckCSourceCompiles) check_include_file(sys/types.h HAVE_SYS_TYPES_H) check_include_file(stdint.h HAVE_STDINT_H) check_include_file(stddef.h HAVE_STDDEF_H) -check_include_file(unistd.h Z_HAVE_UNISTD_H) # Check to see if we have large file support set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1) - +# We add these other definitions here because CheckTypeSize.cmake +# in CMake 2.4.x does not automatically do so and we want +# compatibility with CMake 2.4.x. if(HAVE_SYS_TYPES_H) list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H) endif() @@ -34,6 +35,14 @@ if(NOT HAVE_FSEEKO) add_definitions(-DNO_FSEEKO) endif() +# +# Check for unistd.h +# +check_include_file(unistd.h HAVE_UNISTD_H) +if(HAVE_UNISTD_H) + add_definitions(-DHAVE_UNISTD_H) +endif() + if(MSVC) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)