Nikos Mavrogiannopoulos nmav@redhat.com writes:
On Sun, Jul 8, 2018 at 8:36 AM Niels Möller nisse@lysator.liu.se wrote:
We have to decide if the name of this assembly function should be "nettle_sha1_compress_sha_ni" (and if so, update the macro DECLARE_FAT_FUNC_VAR in fat-setup.h and all uses), or "_nettle_sha1_compress_sha_ni" (and update definitions of m4 macro fat_transform in x86_64/fat/sha1-compress*.asm). The latter alternative seems best to me.
That would also mean the latter would be part of the ABI as we agreed on exporting symbols by wildcard. Seeing it further it seems that fat subsystem was not made for wildcard exporting of symbols, as it creates new symbols which can be exported.
I went for the latter alternative, which gives us _nettle_sha1_compress_sha_ni and _nettle_sha1_compress_x86_64 (with NETTLE_INTERNAL_* symbol version, by the wildcard rule)), and nettle_sha_compress is a public symbols which jumps via a function pointer (or uses ifunc indirection, if glibc is changed to resolve libc ifunc relocations before other libraries).
I think that should be right; the set of public symols is the same in a fat and non-fat build.
FYI, I also did a forced update of the master-updates branch, to fix a commit message typo.
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index abfb81a3..52f41c74 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ variables: BUILD_IMAGES_PROJECT: gnutls/build-images
- FEDORA_BUILD: buildenv-f26
- FEDORA_X86_BUILD: buildenv-f26-x86
- FEDORA_BUILD: buildenv-f28
- FEDORA_X86_BUILD: buildenv-f28-x86 GET_SOURCES_ATTEMPTS: "3"
# remove any pre-installed headers from nettle
Applied. Should hopefully make the gnutls build pass, leaving only the aarch64 ci failures.
Is it easy to add a (32-bit) arm build in .gitlab-ci? Any of real hardware, qemu virtual machine, or cross compile + qemu-user testing, would be good to have. Otherwise, I'll have to do some local testing to ensure that arm fat and non-fat builds still work.
Regards, /Niels