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

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Sun Nov 20 20:48:59 EET 2016


On 20.11.2016 13:38, Carl Eugen Hoyos wrote:
> 2016-11-20 1:07 GMT+01:00 Andreas Cadhalpun <andreas.cadhalpun at googlemail.com>:
>> 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
> 
> Not reproducible with vanilla gcc 4.9.1 and gcc 4.4.6 so the patch is
> not ok as-is afaict.

That's interesting. I just tried with gcc 4.8.4-1 and it works fine, too.
So this is probably a bug in gcc 4.9.2-10, which means we can't do anything
about it.

Consider this patch dropped.

> The tested (32bit) configure line here was:
>  --enable-gpl --toolchain=hardened --disable-stripping --enable-shared
> 
>> 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
> 
> Please consider to remove the following options from the configure line,
> they do lead to more user questions and make support more difficult:

Can you elaborate on how this makes support more difficult?

> --disable-libtesseract
> --disable-libebur128

These could be dropped. They were just added to the jessie-backports version,
as those libraries are too old/unavailable there.

> --enable-sdl2

I'd rather not remove this. The thing is that sdl2 is autodetected, like sdl
used to be, but ffplay depends on it. When 3.2 switched to sdl2 the build
silently worked, but didn't produce ffplay, which I found annoying.

> Is --disable-stripping really useful?

Yes.

> Doesn't it only add symbols to yasm-generated files that cannot be read by gdb?
> (Sorry if I misremember)

It prevents the removal of all symbols when installing.

On 20.11.2016 14:25, Carl Eugen Hoyos wrote:
> Does Debian use "make install"?

Yes, like this:
dh_auto_install --sourcedirectory=debian/standard
	make -j4 install DESTDIR=/«PKGBUILDDIR»/debian/tmp AM_UPDATE_INFO_DIR=no

The files from debian/tmp are then put into the different packages.

Best regards,
Andreas


More information about the ffmpeg-devel mailing list