Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

commit f2e991a3419ee4078e8915e840b1a0d9003b349e breaks cross-compilation with mingw #604

Closed
hydra3333 opened this issue May 12, 2020 · 3 comments

Comments

@hydra3333
Copy link

Hello.

Commit f2e991a breaks cross-compilation.

The prior commit 2327b23 builds fine.

Advice on how to proceed would be most welcome.

Build System: an Ubuntu 18.04.3 VM, mingw64 7, gcc10.1
Target system: Win10x64
Log:

[19:20:27][INFO] C-Making 'json-c' with: . -DCMAKE_TOOLCHAIN_FILE="/home/u/Desktop/_working/workdir/mingw_toolchain.cmake" -G"Ninja" -DCMAKE_INSTALL_PREFIX=/home/u/Desktop/_working/workdir/toolchain/x86_64-w64-mingw32/x86_64-w64-mingw32 -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DENABLE_RDRAND=ON -DENABLE_THREADING=ON -DDISABLE_WERROR=ON
[19:20:27][DEBUG] cmake . -DCMAKE_TOOLCHAIN_FILE="/home/u/Desktop/_working/workdir/mingw_toolchain.cmake" -G"Ninja" -DCMAKE_INSTALL_PREFIX=/home/u/Desktop/_working/workdir/toolchain/x86_64-w64-mingw32/x86_64-w64-mingw32 -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DENABLE_RDRAND=ON -DENABLE_THREADING=ON -DDISABLE_WERROR=ON
[19:20:27][DEBUG] Running 'cmake . -DCMAKE_TOOLCHAIN_FILE="/home/u/Desktop/_working/workdir/mingw_toolchain.cmake" -G"Ninja" -DCMAKE_INSTALL_PREFIX=/home/u/Desktop/_working/workdir/toolchain/x86_64-w64-mingw32/x86_64-w64-mingw32 -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DENABLE_RDRAND=ON -DENABLE_THREADING=ON -DDISABLE_WERROR=ON' in '/home/u/Desktop/_working/workdir/x86_64/json-c_git'
-- The C compiler identification is GNU 10.1.0
-- Check for working C compiler: /home/u/Desktop/_working/workdir/toolchain/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-gcc
-- Check for working C compiler: /home/u/Desktop/_working/workdir/toolchain/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for stdarg.h
-- Looking for stdarg.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for syslog.h
-- Looking for syslog.h - not found
-- Looking for 4 include files stdlib.h, ..., float.h
-- Looking for 4 include files stdlib.h, ..., float.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for endian.h
-- Looking for endian.h - not found
-- Looking for limits.h
-- Looking for limits.h - found
-- Looking for locale.h
-- Looking for locale.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for sys/cdefs.h
-- Looking for sys/cdefs.h - found
-- Looking for sys/param.h
-- Looking for sys/param.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for xlocale.h
-- Looking for xlocale.h - not found
-- Looking for _isnan
-- Looking for _isnan - found
-- Looking for _finite
-- Looking for _finite - found
-- Looking for INFINITY
-- Looking for INFINITY - found
-- Looking for isinf
-- Looking for isinf - found
-- Looking for isnan
-- Looking for isnan - found
-- Looking for nan
-- Looking for nan - found
-- Looking for _doprnt
-- Looking for _doprnt - not found
-- Looking for snprintf
-- Looking for snprintf - not found
-- Looking for vasprintf
-- Looking for vasprintf - found
-- Looking for vsnprintf
-- Looking for vsnprintf - found
-- Looking for vprintf
-- Looking for vprintf - found
-- Looking for open
-- Looking for open - found
-- Looking for realloc
-- Looking for realloc - found
-- Looking for setlocale
-- Looking for setlocale - found
-- Looking for uselocale
-- Looking for uselocale - not found
-- Looking for strcasecmp
-- Looking for strcasecmp - found
-- Looking for strncasecmp
-- Looking for strncasecmp - found
-- Looking for strdup
-- Looking for strdup - found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of int
-- Check size of int - done
-- Check size of int64_t
-- Check size of int64_t - done
-- Check size of long
-- Check size of long - done
-- Check size of long long
-- Check size of long long - done
-- Check size of size_t
-- Check size of size_t - done
-- Performing Test HAVE_ATOMIC_BUILTINS
-- Performing Test HAVE_ATOMIC_BUILTINS - Success
-- Performing Test HAVE___THREAD
-- Performing Test HAVE___THREAD - Success
-- Written /home/u/Desktop/_working/workdir/x86_64/json-c_git/config.h
-- Written /home/u/Desktop/_working/workdir/x86_64/json-c_git/json_config.h
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_TESTING
    DISABLE_WERROR


-- Build files have been written to: /home/u/Desktop/_working/workdir/x86_64/json-c_git
[19:20:31][DEBUG] make clean
[19:20:31][DEBUG] Running 'make clean' in '/home/u/Desktop/_working/workdir/x86_64/json-c_git'
make: *** No rule to make target 'clean'.  Stop.
[19:20:31][INFO][NINJA] Building 'json-c' with 'build_options':  in /home/u/Desktop/_working/workdir/x86_64/json-c_git
[19:20:31][DEBUG] ninja -j 2 
[19:20:31][DEBUG] Running 'ninja -j 2 ' in '/home/u/Desktop/_working/workdir/x86_64/json-c_git'
[1/14] Building C object CMakeFiles/json-c.dir/arraylist.c.obj
[2/14] Building C object CMakeFiles/json-c.dir/json_c_version.c.obj
[3/14] Building C object CMakeFiles/json-c.dir/debug.c.obj
[4/14] Building C object CMakeFiles/json-c.dir/json_object.c.obj
FAILED: CMakeFiles/json-c.dir/json_object.c.obj 
/home/u/Desktop/_working/workdir/toolchain/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-gcc --sysroot=/home/u/Desktop/_working/workdir/toolchain/x86_64-w64-mingw32 -D_GNU_SOURCE -I. -Werror -O3 -DNDEBUG -MD -MT CMakeFiles/json-c.dir/json_object.c.obj -MF CMakeFiles/json-c.dir/json_object.c.obj.d -o CMakeFiles/json-c.dir/json_object.c.obj   -c json_object.c
In file included from json_object.c:35:
snprintf_compat.h:38:3: error: #error Need vsnprintf!
   38 | # error Need vsnprintf!
      |   ^~~~~
[5/14] Building C object CMakeFiles/json-c.dir/json_object_iterator.c.obj
ninja: build stopped: subcommand failed.

@hawicz
Copy link
Member

hawicz commented May 13, 2020

I'm not all that familiar with the mingw build environment, but perhaps try changing the the #if near the start of snprintf_compat.h to be something like:

#if !defined(HAVE_SNPRINTF) && (defined(_MSC_VER) || defined(__MINGW32__))

@hydra3333
Copy link
Author

Ah, if I removed -D_FORTIFY_SOURCE=2, release json-c-0.14-20200419 builds.

@hydra3333
Copy link
Author

hydra3333 commented May 13, 2020

And thanks for the suggestion
#if !defined(HAVE_SNPRINTF) && (defined(_MSC_VER) || defined(__MINGW32__))

edit: yes, that did the trick !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants