[FFmpeg-devel] [PATCH] checkasm: aacencdsp: Actually initialize ff_aac_pow34sf_tab
Martin Storsjö
martin at martin.st
Wed Feb 5 23:24:03 EET 2025
On Sun, 2 Feb 2025, Michael Niedermayer wrote:
> On Wed, Jan 29, 2025 at 11:58:54AM +0200, Martin Storsjö wrote:
>> This table is zero initialized by default, and has to be
>> explicitly initialized.
>>
>> Coincidentally, this fixes linking checkasm with Apple's older
>> linker. (In Xcode 15, Apple switched to a new linker. The one in
>> older toolchains seems to have a bug where it won't figure out to
>> load object files from a static library, if the only symbol
>> referenced in the object file is a "common" symbol, i.e. one for
>> a zero-initialized variable. This issue can also be reproduced with
>> newer Apple toolchains by passing -Wl,-ld_classic to the linker.)
>> ---
>> tests/checkasm/aacencdsp.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> this sometimes fails
>
> make -j32 fate-checkasm-aacencdsp
>
> TEST checkasm-aacencdsp
> make -j32 fate-checkasm-aacencdsp
>
> TEST checkasm-aacencdsp
> Test checkasm-aacencdsp failed. Look at tests/data/fate/checkasm-aacencdsp.err for details.
> make: *** [tests/Makefile:311: fate-checkasm-aacencdsp] Error 1
>
> checkasm: using random seed 3314560428
> SSE:
> - aacencdsp.abs_pow34 [OK]
> SSE2:
> quant_bands_signed_sse2 (aacencdsp.c:94)
> - aacencdsp.quant_bands [FAILED]
> AVX:
> - aacencdsp.quant_bands [OK]
> checkasm: 1 of 5 tests have failed
> threads=1
> make: *** [tests/Makefile:311: fate-checkasm-aacencdsp] Error 1
Indeed, it turns out that the existing x86 assembly is kinda buggy; I sent
a new patchset now, which runs correctly in checkasm with at least a
couple thousand different seeds, tested on x86, aarch64 and riscv (with
qemu).
// Martin
More information about the ffmpeg-devel
mailing list