Here is the build log file for gwenview.
It builds correctly with gcc, buts fails with clang.
OpenMandriva 18.1.5-1 clang version 18.1.5 (/builddir/build/BUILD/llvm-18.1.5-x86_64/llvm-project-18.1.5.src/clang bce1a7458abcaba7efee8306802245abfe928979)
gcc version 13.2.1 20240330 (OpenMandriva) (GCC)
Here is the build log file for gwenview.
It builds correctly with gcc, buts fails with clang.
OpenMandriva 18.1.5-1 clang version 18.1.5 (/builddir/build/BUILD/llvm-18.1.5-x86_64/llvm-project-18.1.5.src/clang bce1a7458abcaba7efee8306802245abfe928979)
gcc version 13.2.1 20240330 (OpenMandriva) (GCC)
Clang is less forgiving about some errors/warnings.
transupp.c:114:7: error: call to undeclared function 'jcopy_block_row'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
The problem is that jcopy_block_row isn't declared anywhere, which is always a problem (because the compiler has to guess how to pass the parameters, given it doesn't know for sure what size they are).
These days jcopy_block_row is declared in jpegint.h, so #include <jpegint.h> should fix it. (Of course it may be even better to avoid using jcopy_block_row given it may go away in future libjpeg versions - the int in jpegint.h is for internal).
Clang is less forgiving about some errors/warnings.
```
transupp.c:114:7: error: call to undeclared function 'jcopy_block_row'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
```
The problem is that jcopy_block_row isn't declared anywhere, which is always a problem (because the compiler has to guess how to pass the parameters, given it doesn't know for sure what size they are).
These days `jcopy_block_row` is declared in `jpegint.h`, so `#include <jpegint.h>` should fix it. (Of course it may be even better to avoid using jcopy_block_row given it may go away in future libjpeg versions - the int in jpegint.h is for internal).
These days jcopy_block_row is declared in jpegint.h, so #include <jpegint.h> should fix it. (Of course it may be even better to avoid using jcopy_block_row given it may go away in future libjpeg versions - the int in jpegint.h is for internal).
Could it be a result of this?
>These days jcopy_block_row is declared in jpegint.h, so #include <jpegint.h> should fix it. (Of course it may be even better to avoid using jcopy_block_row given it may go away in future libjpeg versions - the int in jpegint.h is for internal).
@Francois I have updated the patch, replacing INT32 with int32_t type, which is available from c++11. TQ_INT32 is defined in a TQt header file that was not included in jpegint.h or before it.
@Francois I have updated the patch, replacing `INT32` with `int32_t` type, which is available from c++11. `TQ_INT32` is defined in a TQt header file that was not included in `jpegint.h` or before it.
Basic information
Description
FTBFS
OpenMandriva 18.1.5-1 clang version 18.1.5 (/builddir/build/BUILD/llvm-18.1.5-x86_64/llvm-project-18.1.5.src/clang bce1a7458abcaba7efee8306802245abfe928979)
Steps to reproduce
Build
Screenshots
Backtrace
The undeclared seems to be part of
lib64turbo-jpeg0
.Here is the build log file for gwenview.
It builds correctly with gcc, buts fails with clang.
OpenMandriva 18.1.5-1 clang version 18.1.5 (/builddir/build/BUILD/llvm-18.1.5-x86_64/llvm-project-18.1.5.src/clang bce1a7458abcaba7efee8306802245abfe928979)
gcc version 13.2.1 20240330 (OpenMandriva) (GCC)
Clang is less forgiving about some errors/warnings.
The problem is that jcopy_block_row isn't declared anywhere, which is always a problem (because the compiler has to guess how to pass the parameters, given it doesn't know for sure what size they are).
These days
jcopy_block_row
is declared injpegint.h
, so#include <jpegint.h>
should fix it. (Of course it may be even better to avoid using jcopy_block_row given it may go away in future libjpeg versions - the int in jpegint.h is for internal).Hello, thanks for the advice.
You are correct, adding #include <jpegint.h> solves the issue.
Ok, another patch to prepare. Will do tomorrow :-)
MicheleC referenced this issue from TDE/tde 4 weeks ago@Francois could you test building with PR #41?
Hello @MicheleC , thanks for the patch.
New FTBFS below:
Backtrace
Could it be a result of this?
@Francois I have updated the patch, replacing
INT32
withint32_t
type, which is available from c++11.TQ_INT32
is defined in a TQt header file that was not included injpegint.h
or before it.Thanks @MicheleC , now I can build gwenvien on openmandriva.
PR merged and backported.