Skip to content
Snippets Groups Projects
Closed static build: multiple definition of 'nettle_ecc_scalar_random'
  • View options
  • static build: multiple definition of 'nettle_ecc_scalar_random'

  • View options
  • Closed Issue created by Adrien Béraud

    When building a static library of GnuTLS 3.6.14 for Android (with Nettle 3.5.1), nettle_ecc_scalar_random is included in the resulting static library:

    nm -C x86_64-linux-android/lib/libgnutls.a  | grep nettle_ecc_scalar_random
    00000000000001f0 T nettle_ecc_scalar_random

    However this symbol is really part of libhogweed (Nettle):

    nm -C x86_64-linux-android/lib/libhogweed.a  | grep nettle_ecc_scalar_random
    00000000000001f0 T nettle_ecc_scalar_random

    So when building a library with -lgnutls -lhogweed -lnettle:

    ld: error: x86_64-linux-android/lib/libhogweed.a(ecc-random.o): multiple definition of 'nettle_ecc_scalar_random'
    ld: x86_64-linux-android/lib/libgnutls.a(ecc-random.o): previous definition here
    clang90++: error: linker command failed with exit code 1 (use -v to see invocation)

    Or if trying to build without libhogweed (just -lgnutls -lnettle), the linker fails at runtime:

    dlopen failed: cannot locate symbol "nettle_rsa_pss_sha256_sign_digest_tr" referenced by "/data/app/blah.so"...

    Expected behavior:

    No definition from libhogweed or nettle should be included in the static library

    Edited by Adrien Béraud

    Linked items 0

  • Link items together to show that they're related or that one is blocking others.

    Activity

    • All activity
    • Comments only
    • History only
    • Newest first
    • Oldest first
    Loading Loading Loading Loading Loading Loading Loading Loading Loading Loading