[gnutls-devel] GnuTLS | gnutls 3.7.5 libgnutls-symbols.expsym not in: lib/.libs/libgnutls.30.dylib (#1370)

Read-only notification of GnuTLS library development activities gnutls-devel at lists.gnutls.org
Wed Jun 1 14:44:54 CEST 2022




Clemens Lang commented:


What I've found out so far:

```
$ nm .libs/libgnutls.30.dylib | grep gnutls_x86_cpuid_s
0000000100024150 s __gnutls_x86_cpuid_s
```

This suggests the symbol is local (denoted by the lowercase s). `nmedit -s` then fails because it expects `__gnutls_x86_cpuid_s` to be global. The symbol comes from `accelerated/.libs/libaccelerated.a`, but it's correct there:

```
nm accelerated/.libs/libaccelerated.a | grep gnutls_x86_cpuid_s
accelerated/.libs/libaccelerated.a:cryptodev-gcm.o: no symbols
                 U __gnutls_x86_cpuid_s
                 U __gnutls_x86_cpuid_s
                 U __gnutls_x86_cpuid_s
                 U __gnutls_x86_cpuid_s
                 U __gnutls_x86_cpuid_s
0000000000002900 S __gnutls_x86_cpuid_s
```

As soon as this is linked into a dynamic library, however, the symbol becomes local, even if you don't link anything else:

```
$ /usr/bin/clang -undefined dynamic_lookup -o lib.dylib -Wl,-force_load,accelerated/.libs/libaccelerated.a
$ nm lib.dyblib | grep gnutls_x86_cpuid_s
0000000100024150 s __gnutls_x86_cpuid_s
```

I do not yet know why this happens. I cannot reproduce this with a minimal reproducer, either.

-- 
Reply to this email directly or view it on GitLab: https://gitlab.com/gnutls/gnutls/-/issues/1370#note_967730390
You're receiving this email because of your account on gitlab.com.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gnupg.org/pipermail/gnutls-devel/attachments/20220601/6eb34aa0/attachment.html>


More information about the Gnutls-devel mailing list