On Wed, Feb 26, 2025 at 11:44 AM Pranav Kant via ffmpeg-devel
<ffmpeg-devel@ffmpeg.org> wrote:
>
> [...]
> --- a/libavutil/attributes_internal.h
> +++ b/libavutil/attributes_internal.h
> @@ -31,4 +31,19 @@
>  #    define FF_VISIBILITY_POP_HIDDEN
>  #endif
>
> +/**
> + * Some globals defined in C files are used from hardcoded asm that assumes 
> small
> + * code model (that is, accessing these globals without GOT). This is a 
> problem
> + * when FFMpeg is built with medium code model (-mcmodel=medium) which 
> allocates
> + * all globals in a data section that's unreachable with PC relative 
> instructions
> + * (small code model instruction sequence). We mark all such globals with 
> this
> + * attribute_mcmodel_small to ensure assembly accessible globals continue to 
> be
> + * allocated in sections reachable from PC relative instructions.
> + */
> +#if ARCH_X86_64 && defined(__ELF__) && __has_attribute(model)

You should check `defined(__has_attribute)` before using it [1], the
preprocessor won't short circuit. See also __has_feature in
libavutil/aarch64/asm.S.

> +#    define attribute_mcmodel_small __attribute__(model("small"))
> +#else
> +#    define attribute_mcmodel_small
> +#endif
> +
>  #endif /* AVUTIL_ATTRIBUTES_INTERNAL_H */
> --

[1]: https://clang.llvm.org/docs/LanguageExtensions.html#has-attribute
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to