Hi Martin,

On Wed, 2022-12-21 at 15:20 +0100, Martin Liška wrote:
> On 12/21/22 12:15, buil...@sourceware.org wrote:
> > A failed build has been detected on builder elfutils-try-debian-
> > armhf while building elfutils.
> > 
> > Full details are available at:
> >     https://builder.sourceware.org/buildbot/#builders/201/builds/47
> > 
> > Build state: failed compile (failure)
> > Revision: 1b845fdf4ca4d5367969cc5b33cbfa60338cf51b
> > Worker: debian-armhf
> > Build Reason: (unknown)
> > Blamelist: Martin Liska <mli...@suse.cz>
> > 
> > Steps:
> > 
> > - 0: worker_preparation ( success )
> > 
> > - 1: set package name ( success )
> > 
> > - 2: git checkout ( success )
> >     Logs:
> >         - stdio: 
> > https://builder.sourceware.org/buildbot/#builders/201/builds/47/steps/2/logs/stdio
> > 
> > - 3: autoreconf ( success )
> >     Logs:
> >         - stdio: 
> > https://builder.sourceware.org/buildbot/#builders/201/builds/47/steps/3/logs/stdio
> > 
> > - 4: configure ( success )
> >     Logs:
> >         - stdio: 
> > https://builder.sourceware.org/buildbot/#builders/201/builds/47/steps/4/logs/stdio
> > 
> > - 5: get version ( success )
> >     Logs:
> >         - stdio: 
> > https://builder.sourceware.org/buildbot/#builders/201/builds/47/steps/5/logs/stdio
> >         - property changes: 
> > https://builder.sourceware.org/buildbot/#builders/201/builds/47/steps/5/logs/property_changes
> > 
> > - 6: make ( failure )
> >     Logs:
> >         - stdio: 
> > https://builder.sourceware.org/buildbot/#builders/201/builds/47/steps/6/logs/stdio
> > 
> 
> Mark, do you know what can be wrong about the configure test:
> 
> elf_compress.c: In function ‘__libelf_compress_zstd’:
> elf_compress.c:205:3: error: unknown type name ‘ZSTD_EndDirective’;
> did you mean ‘ZSTD_DDict’?
>    ZSTD_EndDirective mode = ZSTD_e_continue;
>    ^~~~~~~~~~~~~~~~~
>    ZSTD_DDict
> elf_compress.c:205:28: error: ‘ZSTD_e_continue’ undeclared (first use
> in this function)
>    ZSTD_EndDirective mode = ZSTD_e_continue;
>                             ^~~~~~~~~~~~~~~
> elf_compress.c:205:28: note: each undeclared identifier is reported
> only once for each function it appears in
> elf_compress.c:237:9: error: ‘ZSTD_e_end’ undeclared (first use in
> this function); did you mean ‘ZSTD_DDict’?
>   mode = ZSTD_e_end;
>          ^~~~~~~~~~
>          ZSTD_DDict
> elf_compress.c:243:17: error: implicit declaration of function
> ‘ZSTD_compressStream2’; did you mean ‘ZSTD_compressStream’? [-
> Werror=implicit-function-declaration]
>     size_t ret = ZSTD_compressStream2 (cctx, &ob, &ib, mode);
>                  ^~~~~~~~~~~~~~~~~~~~
>                  ZSTD_compressStream

Heay cool, the try buildbot worked.

The configure test seems to succeed (from the configure log):
checking for library containing ZSTD_compressStream2... -lzstd

Unfortunately buildbot itself doesn't show the config.log.
Trying to get that...

configure:6961: checking for library containing ZSTD_compressStream2
configure:6992: gcc -o conftest -D_FORTIFY_SOURCE=3 -g -O2
-fsanitize=undefined 
-fno-sanitize-recover -fsanitize=address -fno-sanitize-
recover   conftest.c -llz
ma -lbz2  >&5
/usr/bin/ld: /tmp/ccKZnuYA.o: in function `main':
/var/lib/buildbot/workers/wildebeest/elfutils-try-debian-
armhf/build/conftest.c:
30: undefined reference to `ZSTD_compressStream2'
collect2: error: ld returned 1 exit status
configure:6992: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "elfutils"
| #define PACKAGE_TARNAME "elfutils"
| #define PACKAGE_VERSION "0.188"
| #define PACKAGE_STRING "elfutils 0.188"
| #define PACKAGE_BUGREPORT "https://sourceware.org/bugzilla";
| #define PACKAGE_URL "http://elfutils.org/";
| #define PACKAGE "elfutils"
| #define VERSION "0.188"
| #define DEFAULT_AR_DETERMINISTIC false
| #define HAVE_VISIBILITY 1
| #define HAVE_STDATOMIC_H 1
| #define _FILE_OFFSET_BITS 64
| #define CHECK_UNDEFINED 1
| #define USE_ZLIB 1
| #define USE_BZLIB 1
| #define USE_LZMA 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char ZSTD_compressStream2 ();
| int
| main ()
| {
| return ZSTD_compressStream2 ();
|   ;
|   return 0;
| }
configure:6992: gcc -o conftest -D_FORTIFY_SOURCE=3 -g -O2
-fsanitize=undefined 
-fno-sanitize-recover -fsanitize=address -fno-sanitize-
recover   conftest.c -lzs
td  -llzma -lbz2  >&5
configure:6992: $? = 0
configure:7009: result: -lzstd

ehe? So it fails and then succeeds anyway?

Strangely the same happens for the other compression library checks...
lzma_auto_decoder and BZ2_bzdopen

I don't fully understand this. Oddly the same seems to happen locally
on my x86_64 box. So maybe the configure macros we have been using have
always been bad/broken?

Cheers,

Mark

Reply via email to