libheif icon indicating copy to clipboard operation
libheif copied to clipboard

1.12.0: build fails with latest glibc

Open kloczek opened this issue 3 years ago • 1 comments

MINSIGSTKSZ is no longer define.

make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/libheif-1.12.0/tests'
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..    -I.. -I../. -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Wall -Werror -Wsign-compare -Wconversion -Wno-sign-conversion -Wno-error=conversion -Wno-error=unused-parameter -Wno-error=deprecated-declarations -c -o heif_unit_tests-main.o `test -f 'main.cc' || echo './'`main.cc
In file included from /usr/include/signal.h:328,
                 from catch.hpp:7644,
                 from main.cc:28:
catch.hpp:10376:58: error: call to non-‘constexpr’ function ‘long int sysconf(int)’
10376 |     constexpr static std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ;
      |                                                          ^~~~~~~~~~~
In file included from /usr/include/bits/sigstksz.h:24,
                 from /usr/include/signal.h:328,
                 from catch.hpp:7644,
                 from main.cc:28:
/usr/include/unistd.h:641:17: note: ‘long int sysconf(int)’ declared here
  641 | extern long int sysconf (int __name) __THROW;
      |                 ^~~~~~~
In file included from main.cc:28:
catch.hpp:10435:45: error: size of array ‘altStackMem’ is not an integral constant-expression
10435 |     char FatalConditionHandler::altStackMem[sigStackSize] = {};
      |                                             ^~~~~~~~~~~~
make[2]: *** [Makefile:495: heif_unit_tests-main.o] Error 1

kloczek avatar Aug 22 '21 16:08 kloczek

Duplicate of #539?

thesamesam avatar Sep 07 '21 03:09 thesamesam

I am not seeing this, and that symbol does not appear in the current tree. Likely resolved by #669

bradh avatar Jun 03 '23 03:06 bradh

Cannot apply that PR on top of last release.

+ /usr/bin/cat /home/tkloczko/rpmbuild/SOURCES/libheif-Update-catch-to-the-latest-2.x-version.patch
+ /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f
267 out of 268 hunks FAILED -- saving rejects to file tests/catch.hpp.rej

kloczek avatar Jun 03 '23 13:06 kloczek

It's in that release, and several before it. Does the latest release work untouched?

bradh avatar Jun 03 '23 22:06 bradh

Yes. Here is what exactly I gave in spec file

VCS:            https://github.com/strukturag/libheif/
Source:         %{VCS}/archive/v%{version}/%{name}-%{version}.tar.gz
Patch:          %{VCS}/pull/669.patch#/%{name}-Update-catch-to-the-latest-2.x-version.patch

kloczek avatar Jun 04 '23 01:06 kloczek

"untouched" - without the Patch part, since that is already applied.

As a clarification: the change in #669 is not a proposed change to the released version. It should be present in any version from 1.14.0 onwards. So you don't need to patch anything. You just need to make sure the released version works for your test environment.

bradh avatar Jun 04 '23 01:06 bradh

@kloczek Can you take another look at this?

bradh avatar Dec 08 '23 09:12 bradh

1.17.5 still fails.

kloczek avatar Dec 08 '23 16:12 kloczek

1.17.5 still fails.

I'd like to help, but you need to provide information so I have a chance to understand and reproduce the problem.

What are you doing, what where you expecting, and what are the results you observed instead?

What environment can this be reproduced on? What are the steps to reproduce it?

bradh avatar Dec 08 '23 20:12 bradh

I'd like to help, but you need to provide information so I have a chance to understand and reproduce the problem.

cmake -L output
-- Cache values
BUILD_SHARED_LIBS:BOOL=ON
BUILD_TESTING:BOOL=ON
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr
ENABLE_MULTITHREADING_SUPPORT:BOOL=ON
ENABLE_PARALLEL_TILE_DECODING:BOOL=ON
ENABLE_PLUGIN_LOADING:BOOL=ON
FUZZING_COMPILE_OPTIONS:STRING=-fsanitize=fuzzer,address,shift,integer -fno-sanitize-recover=shift,integer
FUZZING_CXX_COMPILER:STRING=clang++
FUZZING_C_COMPILER:STRING=clang
FUZZING_LINKER_OPTIONS:STRING=
PLUGIN_DIRECTORY:STRING=/usr/lib64/libheif
WITH_AOM_DECODER:BOOL=ON
WITH_AOM_DECODER_PLUGIN:BOOL=ON
WITH_AOM_ENCODER:BOOL=ON
WITH_AOM_ENCODER_PLUGIN:BOOL=ON
WITH_DAV1D:BOOL=OFF
WITH_DAV1D_PLUGIN:BOOL=ON
WITH_DEFLATE_HEADER_COMPRESSION:BOOL=OFF
WITH_EXAMPLES:BOOL=ON
WITH_FFMPEG_DECODER:BOOL=OFF
WITH_FFMPEG_DECODER_PLUGIN:BOOL=ON
WITH_FUZZERS:BOOL=OFF
WITH_GDK_PIXBUF:BOOL=ON
WITH_JPEG_DECODER:BOOL=OFF
WITH_JPEG_DECODER_PLUGIN:BOOL=ON
WITH_JPEG_ENCODER:BOOL=OFF
WITH_JPEG_ENCODER_PLUGIN:BOOL=ON
WITH_KVAZAAR:BOOL=OFF
WITH_KVAZAAR_PLUGIN:BOOL=ON
WITH_LIBDE265:BOOL=ON
WITH_LIBDE265_PLUGIN:BOOL=ON
WITH_LIBSHARPYUV:BOOL=ON
WITH_OpenJPEG_DECODER:BOOL=OFF
WITH_OpenJPEG_DECODER_PLUGIN:BOOL=ON
WITH_OpenJPEG_ENCODER:BOOL=OFF
WITH_OpenJPEG_ENCODER_PLUGIN:BOOL=ON
WITH_RAV1E:BOOL=OFF
WITH_RAV1E_PLUGIN:BOOL=ON
WITH_REDUCED_VISIBILITY:BOOL=ON
WITH_SvtEnc:BOOL=OFF
WITH_SvtEnc_PLUGIN:BOOL=ON
WITH_UNCOMPRESSED_CODEC:BOOL=ON
WITH_X265:BOOL=ON
WITH_X265_PLUGIN:BOOL=ON
ctest output
+ cd libheif-1.17.5
+ /usr/bin/ctest --test-dir x86_64-redhat-linux-gnu --output-on-failure --force-new-ctest-process -j48 ' '
Internal ctest changing into directory: /home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/x86_64-redhat-linux-gnu
Test project /home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/x86_64-redhat-linux-gnu
    Start 1: encode
    Start 2: region
    Start 3: uncompressed_decode
    Start 4: uncompressed_encode
1/4 Test #1: encode ...........................***Failed    0.01 sec

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encode is a Catch v2.13.9 host application.
Run with -? for options

-------------------------------------------------------------------------------
ispe odd size
-------------------------------------------------------------------------------
/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/encode.cc:165
...............................................................................

/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/encode.cc:140: FAILED:
  REQUIRE( err.code == heif_error_Ok )
with expansion:
  3 == 0

===============================================================================
test cases: 1 | 1 failed
assertions: 4 | 3 passed | 1 failed


2/4 Test #2: region ...........................***Failed    0.01 sec

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
region is a Catch v2.13.9 host application.
Run with -? for options

-------------------------------------------------------------------------------
create regions
-------------------------------------------------------------------------------
/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/region.cc:46
...............................................................................

/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/region.cc:60: FAILED:
  REQUIRE( err.code == heif_error_Ok )
with expansion:
  3 == 0

-------------------------------------------------------------------------------
create mask region
-------------------------------------------------------------------------------
/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/region.cc:228
...............................................................................

/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/region.cc:245: FAILED:
  REQUIRE( err.code == heif_error_Ok )
with expansion:
  3 == 0

-------------------------------------------------------------------------------
create inline mask region from data
-------------------------------------------------------------------------------
/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/region.cc:353
...............................................................................

/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/region.cc:370: FAILED:
  REQUIRE( err.code == heif_error_Ok )
with expansion:
  3 == 0

-------------------------------------------------------------------------------
create inline mask region from image
-------------------------------------------------------------------------------
/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/region.cc:448
...............................................................................

/home/tkloczko/rpmbuild/BUILD/libheif-1.17.5/tests/region.cc:465: FAILED:
  REQUIRE( err.code == heif_error_Ok )
with expansion:
  3 == 0

===============================================================================
test cases:  5 |  1 passed | 4 failed
assertions: 20 | 16 passed | 4 failed


3/4 Test #3: uncompressed_decode ..............   Passed    0.02 sec
4/4 Test #4: uncompressed_encode ..............   Passed    0.54 sec

50% tests passed, 2 tests failed out of 4

Total Test time (real) =   0.55 sec

The following tests FAILED:
          1 - encode (Failed)
          2 - region (Failed)
Errors while running CTest

If you need other details please let me know what exactly you need and I'll try to provide that ASP.

kloczek avatar Dec 08 '23 23:12 kloczek

That isn't the same problem you are reporting here. Can you double check the report, please?

It is possibly related to https://github.com/strukturag/libheif/issues/986 though (which is closed). I'd suggest posting those details over there, or creating a new ticket and linking back to the original report. You may also need to provide details of your environment, and other steps, because that failure isn't happening on my system.

bradh avatar Dec 08 '23 23:12 bradh

Sorry .. forgot to mention that library builds now but test suite fails.

kloczek avatar Dec 09 '23 01:12 kloczek

Sorry .. forgot to mention that library builds now but test suite fails.

So this ticket is resolved, and you need a replacement for #986. And you still need to provide the repro.

bradh avatar Dec 09 '23 02:12 bradh

So this ticket is resolved, and you need a replacement for #986. And you still need to provide the repro.

Yes and thank you 👍 😄 Closng. PS. Is it possible to keep opened #986 ? 🤔

kloczek avatar Dec 09 '23 18:12 kloczek

PS. Is it possible to keep opened #986 ? 🤔

It looks like it is closed to me. You can always add more comments, and you may be able to reopen it (since you created it). I don't have such permissions though.

bradh avatar Dec 10 '23 00:12 bradh

you may be able to reopen it

No I cannot do that.

kloczek avatar Dec 10 '23 01:12 kloczek