Skip to content

gnutls: bump version to 3.6.9

Tim-Philipp Müller requested to merge tpm/cerbero:gnutls-update into master

Should hopefully fix crash on Android Q.

https://gitlab.com/gnutls/gnutls/issues/653

Fixes #146 (closed)

Things to Fix

macOS

ld: weak import of symbol '_connectx' not supported because of option: -no_weak_imports for architecture x86_64

Leads:

  • Upstream bug was closed because the MR was based on a patch for curl, which is under a different license.
  • but unclear what changed between 3.5.18 and 3.6.9, maybe compiler/linker args? Code is the same in old version.

iOS

random.c:39:8: error: thread-local storage is not supported for the current target
static _Thread_local void *gnutls_rnd_ctx;
       ^
./gthreads.h:33:24: note: expanded from macro '_Thread_local'
# define _Thread_local __thread
                       ^
random.c:40:8: error: thread-local storage is not supported for the current target
static _Thread_local unsigned rnd_initialized = 0;
       ^
./gthreads.h:33:24: note: expanded from macro '_Thread_local'
# define _Thread_local __thread
                       ^

Leads:

windows-x86_64

/builds/tpm/cerbero/cerbero-build/mingw/multilib/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld: ./.libs/libcmd-srp.a(srptool-args.o): in function `aoGetsText':
/builds/tpm/cerbero/cerbero-build/sources/windows_x86_64/gnutls-3.6.9/src/srptool-args.h:199: undefined reference to `g_libintl_gettext'
/builds/tpm/cerbero/cerbero-build/mingw/multilib/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld: /builds/tpm/cerbero/cerbero-build/sources/windows_x86_64/gnutls-3.6.9/src/srptool-args.h:199: undefined reference to `g_libintl_gettext'
/builds/tpm/cerbero/cerbero-build/mingw/multilib/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld: libopts/.libs/libopts.a(libopts_la-libopts.o): in function `print_one_paragraph':
/builds/tpm/cerbero/cerbero-build/sources/windows_x86_64/gnutls-3.6.9/src/libopts/usage.c:427: undefined reference to `__imp_g_libintl_dgettext'
/builds/tpm/cerbero/cerbero-build/mingw/multilib/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld: /builds/tpm/cerbero/cerbero-build/sources/windows_x86_64/gnutls-3.6.9/src/libopts/usage.c:429: undefined reference to `__imp_g_libintl_gettext'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:2066: srptool.exe] Error 1
/builds/tpm/cerbero/cerbero-build/mingw/multilib/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld: ./.libs/libcmd-cli-debug.a(cli-debug-args.o): in function `aoGetsText':
/builds/tpm/cerbero/cerbero-build/sources/windows_x86_64/gnutls-3.6.9/src/cli-debug-args.h:191: undefined reference to `g_libintl_gettext'
/builds/tpm/cerbero/cerbero-build/mingw/multilib/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld: /builds/tpm/cerbero/cerbero-build/sources/windows_x86_64/gnutls-3.6.9/src/cli-debug-args.h:191: undefined reference to `g_libintl_gettext'
/builds/tpm/cerbero/cerbero-build/mingw/multilib/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld: libopts/.libs/libopts.a(libopts_la-libopts.o): in function `print_one_paragraph':
/builds/tpm/cerbero/cerbero-build/sources/windows_x86_64/gnutls-3.6.9/src/libopts/usage.c:427: undefined reference to `__imp_g_libintl_dgettext'
/builds/tpm/cerbero/cerbero-build/mingw/multilib/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld: /builds/tpm/cerbero/cerbero-build/sources/windows_x86_64/gnutls-3.6.9/src/libopts/usage.c:429: undefined reference to `__imp_g_libintl_gettext'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:2046: gnutls-cli-debug.exe] Error 1
In file included from ./gl/gettext.h:26,
                 from certtool-args.h:328,
                 from certtool.c:53:
certtool-args.h:341:21: warning: 'g_libintl_gettext' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
       extern char * gettext(char const *);
                     ^~~~~~~
  • lots of other warning: 'g_libintl_gettext' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]

android-universal (aarch64)

elf/ghash-aarch64.s: Assembler messages:
elf/ghash-aarch64.s: Error: .size expression for _gnutls_gcm_init_v8 does not evaluate to a constant
elf/ghash-aarch64.s: Error: .size expression for _gnutls_gcm_gmult_v8 does not evaluate to a constant
elf/ghash-aarch64.s: Error: .size expression for _gnutls_gcm_ghash_v8 does not evaluate to a constant
clang: error: assembler command failed with exit code 1 (use -v to see invocation)
make[5]: *** [Makefile:1565: elf/ghash-aarch64.lo] Error 1

elf/aes-aarch64.s: Assembler messages:
elf/aes-aarch64.s: Error: .size expression for _gnutls_aes_v8_set_encrypt_key does not evaluate to a constant
elf/aes-aarch64.s: Error: .size expression for _gnutls_aes_v8_set_decrypt_key does not evaluate to a constant
elf/aes-aarch64.s: Error: .size expression for _gnutls_aes_v8_encrypt does not evaluate to a constant
elf/aes-aarch64.s: Error: .size expression for _gnutls_aes_v8_decrypt does not evaluate to a constant
elf/aes-aarch64.s: Error: .size expression for _gnutls_aes_v8_cbc_encrypt does not evaluate to a constant
elf/aes-aarch64.s: Error: .size expression for _gnutls_aes_v8_ctr32_encrypt_blocks does not evaluate to a constant
clang: error: assembler command failed with exit code 1 (use -v to see invocation)
make[5]: *** [Makefile:1565: elf/aes-aarch64.lo] Error 1

Fixed by adding g to sed s/$f/gnutls_$f/g so that multiple substitutions are done per line if needed.

Related upgrades

  • libtasn1
  • nettle
  • libgpg-error (if that's still in use)
  • gmp (already latest)
Edited by Nirbheek Chauhan

Merge request reports