[FFmpeg-devel] [PATCH] configure: reserve a register for gcc before 5 on x86_32 with PIE

Ronald S. Bultje rsbultje at gmail.com
Sun Nov 20 05:19:03 EET 2016


Hi,

On Sat, Nov 19, 2016 at 7:07 PM, Andreas Cadhalpun <
andreas.cadhalpun at googlemail.com> wrote:

> gcc before gcc-5 reserves a register on x86_32 for the GOT, when PIE is
> enabled.
>
> This fixes build failures due to:
> error: 'asm' operand has impossible constraints
>
> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> ---
>
> A build log of a failed build with gcc 4.9 is available at:
> https://buildd.debian.org/status/fetch.php?pkg=ffmpeg&
> arch=i386&ver=7%3A3.2-2~bpo8%2B1&stamp=1478791165
>
> ---
>  configure | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/configure b/configure
> index b5bfad6..8794580 100755
> --- a/configure
> +++ b/configure
> @@ -5364,6 +5364,19 @@ EOF
>      enabled ssse3  && check_inline_asm ssse3_inline  '"pabsw %xmm0,
> %xmm0"'
>      enabled mmxext && check_inline_asm mmxext_inline '"pmaxub %mm0, %mm1"'
>
> +    case "$toolchain" in
> +        hardened)
> +            if enabled x86_32; then
> +                # When PIE is enabled on x86_32, gcc before gcc-5
> reserves a register for the GOT.
> +                case $gcc_basever in
> +                    2*|3*|4*)
> +                        disable ebp_available
> +                    ;;
> +                esac
> +            fi
> +        ;;
> +    esac


This doesn't test whether PIE is enabled, it does it unconditionally. I'm
almost 100% sure that's not necessary.

Ronald


More information about the ffmpeg-devel mailing list