[FFmpeg-devel] [PATCH v2 3/4] tests/checkasm: Fix build error when enable linux perf on Android

Zhao Zhili quinkblack at foxmail.com
Fri Jun 7 11:36:40 EEST 2024



> On Jun 7, 2024, at 16:21, Martin Storsjö <martin at martin.st> wrote:
> 
> On Fri, 7 Jun 2024, Zhao Zhili wrote:
> 
>> From: Zhao Zhili <zhilizhao at tencent.com>
>> 
>> B0 is defined by system header.
> 
> Can you add more details about which header defines this? (I did a quick grep in a copy of the android NDK, and found it in asm-generic/termbits-common.h.)

The include path is:

timer.h => 
<sys/ioctl.h> => 
<linux/termios.h> => 
<asm/termios.h> => 
<asm-generic/termios.h> => 
<asm/termbits.h> => 
<asm-generic/termbits.h> => 
<asm-generic/termbits-common.h>

#define B0 0x00000000
#define B50 0x00000001
#define B75 0x00000002

The issue has occurred multiple times, e.g.,

commit f0f596dbc6b45b544d2d2d4fb78c0a2bdc3e6eb1

    avutil/internal: remove timer.h again

    timer.h has been removed from internal.h, and then added back with
    3e6088f for convenience. This patch removed it again for the
    following reasons:

    1. Only includes what's necessary is a common and safe strategy.

    2. It fixed some build errors on Android:
      a. libavutil/timer.h includes sys/ioctl.h, and ioctl.h includes
         termios.h on Android.
      b. termios.h reserves names prefixed with ‘c_’, ‘V’, ‘I’, ‘O’, and
         ‘TC’; and names prefixed with ‘B’ followed by a digit.
      c. libavcodec uses B0 B1 and so on as variable names a lot. So
         the code failed to build with --enable-linux-perf, or
         --target-os=Linux.

> 
> // Martin
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".



More information about the ffmpeg-devel mailing list