On Mon 08 Apr 2024 at 14:52:22 +0200, Rhialto wrote: > On the other hand, there is no -Wno-error=dangling-pointer option in one > of the command lines I did see: and adding one doesn't help, either. I tried with this patch: $NetBSD$ --- build/moz.configure/warnings.configure.orig 2024-04-08 13:55:52.245354057 +0000 +++ build/moz.configure/warnings.configure @@ -66,6 +66,8 @@ add_warning("-Wtype-limits") # This can be triggered by certain patterns used deliberately in portable code check_and_add_warning("-Wno-error=tautological-type-limit-compare") +check_and_add_warning("-Wno-error=dangling-pointer") + # catches some dead code add_warning("-Wunreachable-code") check_and_add_warning("-Wunreachable-code-return") It did check if the compiler supports -Wno-error=dangling-pointer (it does) and adds it more or less everywhere. But it didn't fix the build. But maybe it made the actual location more visible, because now these messages become more obvious: gmake[3]: *** [/tmp/pkgsrc/www/firefox/default/firefox-123.0.1/config/rules.mk:690: GemmologyEngineAVXVNNI.o] Error 1 ... gmake[3]: Leaving directory '/tmp/pkgsrc/www/firefox/default/build/js/src/intgemm' gmake[2]: *** [/tmp/pkgsrc/www/firefox/default/firefox-123.0.1/config/recurse.mk:72: js/src/intgemm/target-objects] Error 2 Looking in js/src/intgemm the readme file redirects us to third_party/gemmology, where gemmology.h contains #ifdef __AVXVNNI__ template <class Arch> inline xsimd::batch<int32_t, Arch> maddw(xsimd::batch<uint8_t, Arch> x, xsimd::batch<int8_t, Arch> y, xsimd::batch<int32_t, Arch> z, xsimd::kernel::requires_arch<xsimd::avxvnni>) { return _mm256_dpbusd_avx_epi32(z, x, y); } #endif I had searched for the vpdpbusd instruction, found https://www.felixcloutier.com/x86/vpdpbusd, and it lists PDPBUSD __m256i _mm256_dpbusd_avx_epi32(__m256i, __m256i, __m256i); as "Intel C/C++ Compiler Intrinsic Equivalent". So gcc 12 sets __AVXVNNI__ but the assembler doesn't know about the corresponding instruction? So I tried to disable this function: --- third_party/gemmology/gemmology.h.orig 2024-04-08 16:03:19.926245613 +0000 +++ third_party/gemmology/gemmology.h @@ -198,7 +198,7 @@ PermuteSummer(xsimd::batch<int32_t, Arch return _mm256_add_epi32(rev, blended); } -#ifdef __AVXVNNI__ +#ifdef __AVXVNNI__NOT template <class Arch> inline xsimd::batch<int32_t, Arch> I was kind of expecting some undefined symbol error to pop up later... but the build succeeded. Not a good solution of course. What is the actual bug? Is the wrong "as" being invoked? Is it the right one, but it was wrongly configured? -Olaf. -- ___ Olaf 'Rhialto' Seibert <rhialto/at/falu.nl> \X/ There is no AI. There is just someone else's work. --I. Rose
Attachment:
signature.asc
Description: PGP signature