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

Cross compile fails because of compile of print_stdc.c which is being used to determine __STDC_VERSION__ #319

Closed
heitbaum opened this issue Feb 13, 2022 · 8 comments

Comments

@heitbaum
Copy link

Cross compile error with Version 3.0.1

$ s/build jasper
UNPACK      jasper
BUILD      jasper (target)
    TOOLCHAIN      cmake (auto-detect)
Executing (target): cmake -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE=/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/etc/cmake-x86_64-libreelec-linux-gnu.conf -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=MinSizeRel -DJAS_ENABLE_DOC=false -DJAS_ENABLE_PROGRAMS=false -DJAS_ENABLE_SHARED=false /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1
Software version: 3.0.1
Shared library ABI version: 6
Shared library build version: 6.0.0
CMAKE_VERSION: 3.22.2
-- The C compiler identification is GNU 10.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
CMAKE_C_COMPILER_ID: GNU
CMAKE_C_COMPILER_VERISON: 10.3.0
-- Performing Test JAS_HAVE_FSANITIZE_LEAK
-- Performing Test JAS_HAVE_FSANITIZE_LEAK - Success
-- Performing Test JAS_HAVE_FSANITIZE_UNDEFINED
-- Performing Test JAS_HAVE_FSANITIZE_UNDEFINED - Success
-- Performing Test JAS_HAVE_MSVC_FSANITIZE_ADDRESS
-- Performing Test JAS_HAVE_MSVC_FSANITIZE_ADDRESS - Failed
JAS_MULTICONFIGURATION_GENERATOR FALSE
CMAKE_BUILD_TYPE: MinSizeRel
CMAKE_C_COMPILER_ID: GNU
CMAKE_C_COMPILER: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc
CMAKE_LINKER: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_TRUNCATION
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_TRUNCATION - Success
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_OVERFLOW
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_OVERFLOW - Success
-- Performing Test JAS_CLANG_WARN_NO_OUT_OF_RANGE_COMPARE
-- Performing Test JAS_CLANG_WARN_NO_OUT_OF_RANGE_COMPARE - Success
-- Performing Test HAVE_FUNCTION_SECTIONS
-- Performing Test HAVE_FUNCTION_SECTIONS - Success
-- Performing Test HAVE_DATA_SECTIONS
-- Performing Test HAVE_DATA_SECTIONS - Success
-- Performing Test HAVE_GC_SECTIONS
-- Performing Test HAVE_GC_SECTIONS - Success
CMAKE_C_FLAGS: -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -fPIC -DPIC -pedantic
CMAKE_C_FLAGS_RELEASE: -O3
CMAKE_C_FLAGS_DEBUG: -g
CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately:
   print_stdc_run_status (advanced)
   print_stdc_run_status__TRYRUN_OUTPUT (advanced)
For details see /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/TryRunResults.cmake
CMake Error at CMakeLists.txt:397 (message):
  Cannot determine the value of __STDC_VERSION__.


-- Configuring incomplete, errors occurred!
See also "/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/CMakeFiles/CMakeOutput.log".
See also "/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/CMakeFiles/CMakeError.log".
FAILURE: s/build jasper during configure_target (default)
*********** FAILED COMMAND ***********
cmake ${CMAKE_GENERATOR_NINJA} ${TARGET_CMAKE_OPTS} ${PKG_CMAKE_OPTS_TARGET} ${PKG_CMAKE_SCRIPT%/*}
**************************************
$ more /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/TryRunResults.cmake
# This file was generated by CMake because it detected TRY_RUN() commands
# in crosscompiling mode. It will be overwritten by the next CMake run.
# Copy it to a safe location, set the variables to appropriate values
# and use it then to preset the CMake cache (using -C).


# print_stdc_run_status
#    indicates whether the executable would have been able to run on its
#    target platform. If so, set print_stdc_run_status to
#    the exit code (in many cases 0 for success), otherwise enter "FAILED_TO_RUN".
# print_stdc_run_status__TRYRUN_OUTPUT
#    contains the text the executable would have printed on stdout and stderr.
#    If the executable would not have been able to run, set print_stdc_run_status__TRYRUN_OUTPUT empty.
#    Otherwise check if the output is evaluated by the calling CMake code. If so,
#    check what the source file would have printed when called with the given arguments.
# The print_stdc_compile_status variable holds the build result for this TRY_RUN().
#
# Source file   : /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/build/cmake/src/print_stdc.c
# Executable    : /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/CMakeFiles/cmTC_c032d-print_std
c_run_status
# Run arguments :
#    Called from: [2]   /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/build/cmake/modules/JasGetStdcVersion.cmake
#                 [1]   /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/CMakeLists.txt

set( print_stdc_run_status
     "PLEASE_FILL_OUT-FAILED_TO_RUN"
     CACHE STRING "Result from TRY_RUN" FORCE)

set( print_stdc_run_status__TRYRUN_OUTPUT
     "PLEASE_FILL_OUT-NOTFOUND"
     CACHE STRING "Output from TRY_RUN" FORCE)

build host output

$ /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/CMakeFiles/cmTC_c032d-print_stdc_run_status
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/CMakeFiles/cmTC_c032d-print_stdc_run_status: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.34' not found (required by /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/CMakeFiles/cmTC_c032d-print_stdc_run_status)

target host output

/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/CMakeFiles/cmTC_c032d-print_stdc_run_status
201112L

@heitbaum
Copy link
Author

Using the following temporary patch to compile and test.

--- a/build/cmake/modules/JasGetStdcVersion.cmake       2022-02-13 08:59:58.895057840 +0000
+++ b/build/cmake/modules/JasGetStdcVersion.cmake       2022-02-13 09:00:12.631702711 +0000
@@ -1,21 +1,15 @@
 function(jas_get_stdc_version status_out stdc_version_out)

        #set(verbose TRUE)
-       set(verbose FALSE)
+       #set(verbose FALSE)
+       set(verbose TRUE)

        set(source_dir ${CMAKE_SOURCE_DIR}/build/cmake/src)
        set(bin_dir ${CMAKE_BINARY_DIR}/build/cmake/src)

-       try_run(print_stdc_run_status print_stdc_compile_status
-           ${bin_dir}
-           ${source_dir}/print_stdc.c
-           COMPILE_OUTPUT_VARIABLE print_stdc_compile_output
-           RUN_OUTPUT_VARIABLE stdc_version
-       )
-
        # For testing.
        #set(stdc_version "199901L") # C99
-       #set(stdc_version "201112L") # C11
+       set(stdc_version "201112L") # C11
        #set(stdc_version "201710L") # C17

        if(verbose)
@@ -24,12 +18,7 @@
                message("stdc_version ${stdc_version}")
        endif()

-       if(print_stdc_compile_status AND NOT print_stdc_run_status)
-               set(status TRUE)
-       else()
-               set(status FALSE)
-               set(stdc_version "")
-       endif()
+       set(status TRUE)

        if(verbose)
                message("status ${status}")

@jubalh
Copy link
Member

jubalh commented Feb 13, 2022

Which build directory do you pass to cmake?
By default many use build but the new tarball already contains a directory with this name.

Does it work if you use another, empty dir?

@heitbaum
Copy link
Author

For host builds we use
.x86_64-linux-gnu

For cross compiled target builds we use the following:
.x86_64-libreelec-linux-gnu
.aarch64-libreelec-linux-gnueabi

for our build directories.

As in the build host output - .x86_64-libreelec-linux-gnu - is where the build is done.

@mdadams
Copy link
Collaborator

mdadams commented Feb 13, 2022

The problem is that the try_run command of CMake cannot do its job when a cross compiler is used because CMake cannot run programs on the target platform. The try_run command is used to set the value of JAS_STDC_VERSION. I have modified the CMakeLists.txt file so that a mechanism is provided that allows the value of JAS_STDC_VERSION to be set from the cmake command line when cross compiling (via -DJAS_STDC_VERSION=...). Can you try it out and let me know if it works for you? I do not have a cross-compiling environment on any of my machines so I cannot fully test this change. The relevant commit is b8ecbfb.

@heitbaum
Copy link
Author

Looks good - I'll test on the other cross compile targets.

# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)

PKG_NAME="jasper"
PKG_VERSION="3.0.1"
PKG_SHA256="dccd8be8bbe4de036a3bc69840475ae1e80d7c28a94cb7eb029961d50539e37a"
PKG_LICENSE="OpenSource"
PKG_SITE="http://www.ece.uvic.ca/~mdadams/jasper/"
PKG_URL="https://github.com/jasper-software/jasper/archive/refs/tags/version-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain libjpeg-turbo"
PKG_LONGDESC="A implementation of the ISO/IEC 15444-1 also known as JPEG-2000 standard for image compression."
PKG_BUILD_FLAGS="+pic"

PKG_CMAKE_OPTS_TARGET="-DJAS_ENABLE_DOC=false \
                       -DJAS_ENABLE_PROGRAMS=false \
                       -DJAS_ENABLE_SHARED=false \
                       -DJAS_STDC_VERSION=201112L"

Output

$ s/build jasper
CLEAN      jasper
    *      Removing /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1 ...
    *      Removing /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1 ...
UNPACK      jasper
    APPLY PATCH (common)      packages/addons/addon-depends/jasper/patches/b8ecbfbf293ee6086e4d40108ad730229388cd8d.patch
patching file CMakeLists.txt
BUILD      jasper (target)
    TOOLCHAIN      cmake (auto-detect)
Executing (target): cmake -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE=/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/etc/cmake-x86_64-libreelec-linux-gnu.conf -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=MinSizeRel -DJAS_ENABLE_DOC=false -DJAS_ENABLE_PROGRAMS=false -DJAS_ENABLE_SHARED=false -DJAS_STDC_VERSION=201112L /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1
Software version: 3.0.1
Shared library ABI version: 6
Shared library build version: 6.0.0
CMAKE_VERSION: 3.22.2
-- The C compiler identification is GNU 10.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
CMAKE_C_COMPILER_ID: GNU
CMAKE_C_COMPILER_VERISON: 10.3.0
-- Performing Test JAS_HAVE_FSANITIZE_LEAK
-- Performing Test JAS_HAVE_FSANITIZE_LEAK - Success
-- Performing Test JAS_HAVE_FSANITIZE_UNDEFINED
-- Performing Test JAS_HAVE_FSANITIZE_UNDEFINED - Success
-- Performing Test JAS_HAVE_MSVC_FSANITIZE_ADDRESS
-- Performing Test JAS_HAVE_MSVC_FSANITIZE_ADDRESS - Failed
JAS_MULTICONFIGURATION_GENERATOR FALSE
CMAKE_BUILD_TYPE: MinSizeRel
CMAKE_C_COMPILER_ID: GNU
CMAKE_C_COMPILER: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc
CMAKE_LINKER: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_TRUNCATION
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_TRUNCATION - Success
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_OVERFLOW
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_OVERFLOW - Success
-- Performing Test JAS_CLANG_WARN_NO_OUT_OF_RANGE_COMPARE
-- Performing Test JAS_CLANG_WARN_NO_OUT_OF_RANGE_COMPARE - Success
-- Performing Test HAVE_FUNCTION_SECTIONS
-- Performing Test HAVE_FUNCTION_SECTIONS - Success
-- Performing Test HAVE_DATA_SECTIONS
-- Performing Test HAVE_DATA_SECTIONS - Success
-- Performing Test HAVE_GC_SECTIONS
-- Performing Test HAVE_GC_SECTIONS - Success
CMAKE_C_FLAGS: -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -fPIC -DPIC -pedantic
CMAKE_C_FLAGS_RELEASE: -O3
CMAKE_C_FLAGS_DEBUG: -g
A cross-compiling environment has been detected.
__STDC_VERSION__: 201112L
-- Looking for include file fcntl.h
-- Looking for include file fcntl.h - found
-- Looking for include file io.h
-- Looking for include file io.h - not found
-- Looking for include file unistd.h
-- Looking for include file unistd.h - found
-- Looking for include file sys/time.h
-- Looking for include file sys/time.h - found
-- Looking for include file sys/types.h
-- Looking for include file sys/types.h - found
-- 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 max_align_t
-- Check size of max_align_t - done
JAS_HAVE_MAX_ALIGN_T: 1
-- Check size of char
-- Check size of char - done
JAS_SIZEOF_CHAR: 1
-- Check size of int
-- Check size of int - done
JAS_SIZEOF_INT: 4
-- Check size of long
-- Check size of long - done
JAS_SIZEOF_LONG: 8
-- Check size of long long
-- Check size of long long - done
JAS_SIZEOF_LLONG: 8
-- Check size of size_t
-- Check size of size_t - done
JAS_SIZEOF_SIZE_T: 8
-- Check size of ssize_t
-- Check size of ssize_t - done
JAS_HAVE_SSIZE_T:
-- Looking for nanosleep
-- Looking for nanosleep - found
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for getrusage
-- Looking for getrusage - found
-- Looking for mkostemp
-- Looking for mkostemp - found
-- Looking for snprintf
-- Looking for snprintf - found
JAS_ENABLE_MIF_CODEC: OFF
Support for all native codecs has been included.
-- Performing Test JAS_TRY_COMPILE_C11_THREADS
-- Performing Test JAS_TRY_COMPILE_C11_THREADS - Success
-- Performing Test JAS_TRY_COMPILE_THREAD_LOCAL
-- Performing Test JAS_TRY_COMPILE_THREAD_LOCAL - Success
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- 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
Threading support enabled.
Prefer POSIX threading support: ON
Threading support found: TRUE
C11 threading support detected: TRUE
POSIX threading support detected: TRUE
WIN32 threading support detected:
C11 threading support selected: FALSE
POSIX threading support selected: TRUE
Win32 threading support selected: FALSE
Threading library:
_Thread_local: TRUE
-- Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY OPENGL_glx_LIBRARY)
-- Found PkgConfig: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/pkg-config (found version "0.29.2")
-- Checking for module 'glut'
--   No package 'glut' found
-- Could NOT find GLUT (missing: GLUT_glut_LIBRARY GLUT_INCLUDE_DIR)
-- Found JPEG: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/lib/libjpeg.a (found version "80")
target: JPEG::JPEG
JPEG::JPEG: adding include directory /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include
-- Performing Test JAS_HAVE_JPEGLIB_H
-- Performing Test JAS_HAVE_JPEGLIB_H - Success
JAS_INCLUDE_JPG_CODEC: ON
-- Looking for include file libheif/heif.h
-- Looking for include file libheif/heif.h - not found
JAS_INCLUDE_HEIC_CODEC: 0
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Failed
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu
Executing (target): ninja
[31/54] Building C object src/libjasper/CMakeFiles/libjasper.dir/jpc/jpc_qmfb.c.o
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c: In function 'jpc_qmfb_split_row':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:308:15: warning: unused variable 'bufsize' [-Wunused-variable]
  308 |  const size_t bufsize = JPC_CEILDIVPOW2(numcols, 1);
      |               ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:302:31: warning: unused parameter 'buffersize' [-Wunused-parameter]
  302 |   jpc_fix_t *buffer, unsigned buffersize)
      |                      ~~~~~~~~~^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c: In function 'jpc_qmfb_split_colgrp':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:353:15: warning: unused variable 'bufsize' [-Wunused-variable]
  353 |  const size_t bufsize = JPC_QMFB_COLGRPSIZE * JPC_CEILDIVPOW2(numrows, 1);
      |               ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:345:31: warning: unused parameter 'buffersize' [-Wunused-parameter]
  345 |   jpc_fix_t *buffer, unsigned buffersize)
      |                      ~~~~~~~~~^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c: In function 'jpc_qmfb_split_colres':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:416:15: warning: unused variable 'bufsize' [-Wunused-variable]
  416 |  const size_t bufsize = numcols * JPC_CEILDIVPOW2(numrows, 1);
      |               ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:408:31: warning: unused parameter 'buffersize' [-Wunused-parameter]
  408 |   jpc_fix_t *buffer, unsigned buffersize)
      |                      ~~~~~~~~~^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c: In function 'jpc_qmfb_join_row':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:477:15: warning: unused variable 'bufsize' [-Wunused-variable]
  477 |  const size_t bufsize = JPC_CEILDIVPOW2(numcols, 1);
      |               ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:470:31: warning: unused parameter 'buffersize' [-Wunused-parameter]
  470 |   jpc_fix_t *buffer, unsigned buffersize)
      |                      ~~~~~~~~~^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c: In function 'jpc_qmfb_join_colgrp':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:518:15: warning: unused variable 'bufsize' [-Wunused-variable]
  518 |  const size_t bufsize = JPC_QMFB_COLGRPSIZE * JPC_CEILDIVPOW2(numrows, 1);
      |               ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:510:31: warning: unused parameter 'buffersize' [-Wunused-parameter]
  510 |   jpc_fix_t *buffer, unsigned buffersize)
      |                      ~~~~~~~~~^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c: In function 'jpc_qmfb_join_colres':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:578:15: warning: unused variable 'bufsize' [-Wunused-variable]
  578 |  const size_t bufsize = numcols * JPC_CEILDIVPOW2(numrows, 1);
      |               ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c:569:31: warning: unused parameter 'buffersize' [-Wunused-parameter]
  569 |   jpc_fix_t *buffer, unsigned buffersize)
      |                      ~~~~~~~~~^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/src/libjasper/jpc/jpc_qmfb.c: At top level:
cc1: note: unrecognized command-line option '-Wno-tautological-constant-out-of-range-compare' may have been intended to silence earlier diagnostics
[54/54] Linking C static library src/libjasper/libjasper.a
[0/1] Install the project...
-- Install configuration: "MinSizeRel"
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/lib/pkgconfig/jasper.pc
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/share/doc/JasPer/README.md
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/lib/libjasper.a
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_cm.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_compiler.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_config.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_debug.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_dll.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_fix.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_getopt.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_icc.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_image.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_init.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_log.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_malloc.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_math.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jasper.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_seq.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_stream.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_string.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_thread.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_tmr.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_tvp.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_types.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_version.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/.sysroot/jasper.target/usr/include/jasper/jas_export_cmake.h
[0/1] Install the project...
-- Install configuration: "MinSizeRel"
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/lib/pkgconfig/jasper.pc
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/share/doc/JasPer/README.md
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/lib/libjasper.a
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_cm.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_compiler.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_config.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_debug.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_dll.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_fix.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_getopt.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_icc.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_image.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_init.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_log.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_malloc.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_math.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jasper.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_seq.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_stream.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_string.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_thread.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_tmr.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_tvp.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_types.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_version.h
-- Installing: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1/usr/include/jasper/jas_export_cmake.h

@heitbaum
Copy link
Author

And a "negative test":- Also looks good

$ s/build jasper
CLEAN      jasper
    *      Removing /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1 ...
    *      Removing /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/install_pkg/jasper-3.0.1 ...
UNPACK      jasper
    APPLY PATCH (common)      packages/addons/addon-depends/jasper/patches/jasper-0001-added-a-mechanism-for-JAS_STDC_VERSION-to-be-set-cleanly-when-a-cross-compiler-is-used.patch
patching file CMakeLists.txt
BUILD      jasper (target)
    TOOLCHAIN      cmake (auto-detect)
Executing (target): cmake -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE=/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/etc/cmake-x86_64-libreelec-linux-gnu.conf -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=MinSizeRel -DJAS_ENABLE_DOC=false -DJAS_ENABLE_PROGRAMS=false -DJAS_ENABLE_SHARED=false /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1
Software version: 3.0.1
Shared library ABI version: 6
Shared library build version: 6.0.0
CMAKE_VERSION: 3.22.2
-- The C compiler identification is GNU 10.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
CMAKE_C_COMPILER_ID: GNU
CMAKE_C_COMPILER_VERISON: 10.3.0
-- Performing Test JAS_HAVE_FSANITIZE_LEAK
-- Performing Test JAS_HAVE_FSANITIZE_LEAK - Success
-- Performing Test JAS_HAVE_FSANITIZE_UNDEFINED
-- Performing Test JAS_HAVE_FSANITIZE_UNDEFINED - Success
-- Performing Test JAS_HAVE_MSVC_FSANITIZE_ADDRESS
-- Performing Test JAS_HAVE_MSVC_FSANITIZE_ADDRESS - Failed
JAS_MULTICONFIGURATION_GENERATOR FALSE
CMAKE_BUILD_TYPE: MinSizeRel
CMAKE_C_COMPILER_ID: GNU
CMAKE_C_COMPILER: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc
CMAKE_LINKER: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_TRUNCATION
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_TRUNCATION - Success
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_OVERFLOW
-- Performing Test JAS_GCC_WARN_NO_STRINGOP_OVERFLOW - Success
-- Performing Test JAS_CLANG_WARN_NO_OUT_OF_RANGE_COMPARE
-- Performing Test JAS_CLANG_WARN_NO_OUT_OF_RANGE_COMPARE - Success
-- Performing Test HAVE_FUNCTION_SECTIONS
-- Performing Test HAVE_FUNCTION_SECTIONS - Success
-- Performing Test HAVE_DATA_SECTIONS
-- Performing Test HAVE_DATA_SECTIONS - Success
-- Performing Test HAVE_GC_SECTIONS
-- Performing Test HAVE_GC_SECTIONS - Success
CMAKE_C_FLAGS: -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -fPIC -DPIC -pedantic
CMAKE_C_FLAGS_RELEASE: -O3
CMAKE_C_FLAGS_DEBUG: -g
A cross-compiling environment has been detected.
CMake Error at CMakeLists.txt:410 (message):
  The value of __STDC_VERSION__ cannot be automatically determined when
  cross-compiling.  Please set JAS_STDC_VERSION to the value of
  __STDC_VERSION__ when invoking CMake (e.g., by using the option
  -DJAS_STDC_VERSION=...) or modify the CMakeLists.txt appropriately.


-- Configuring incomplete, errors occurred!
See also "/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/CMakeFiles/CMakeOutput.log".
See also "/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/jasper-3.0.1/.x86_64-libreelec-linux-gnu/CMakeFiles/CMakeError.log".
FAILURE: s/build jasper during configure_target (default)
*********** FAILED COMMAND ***********
cmake ${CMAKE_GENERATOR_NINJA} ${TARGET_CMAKE_OPTS} ${PKG_CMAKE_OPTS_TARGET} ${PKG_CMAKE_SCRIPT%/*}
**************************************

@mdadams
Copy link
Collaborator

mdadams commented Feb 14, 2022

Thanks for confirming that my fix works for your environment. I have made a new patch release (i.e., version-3.0.2) that includes this fix.

@mdadams mdadams closed this as completed Feb 14, 2022
@heitbaum
Copy link
Author

Thanks for confirming that my fix works for your environment. I have made a new patch release (i.e., version-3.0.2) that includes this fix.

Confirmed all looks good with 3.0.2 👍

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

3 participants