[libav-devel] [PATCH] configure: fix inline asm checks

Luca Barbato lu_zero at gentoo.org
Mon Jun 25 16:14:39 CEST 2018


On 25/06/2018 13:41, Martin Storsjö wrote:
> On Fri, 8 Jun 2018, Diego Biurrun wrote:
> 
>> On Thu, Jun 07, 2018 at 11:05:26PM -0300, James Almer wrote:
>>> On 6/7/2018 6:01 PM, Diego Biurrun wrote:
>>> > On Thu, Jun 07, 2018 at 03:03:21PM +0300, Martin Storsjö wrote:
>>> >> Commit 8c893aa3cd5 removed quotes that were required to detect
>>> >> inline asm:
>>> >>
>>> >> check_insn armv5te qadd r0, r0, r0
>>> >> .../test.c:1:34: error: expected string literal in 'asm'
>>> >> void foo(void){ __asm__ volatile(qadd r0, r0, r0); }
>>> >>
>>> >> The correct code is:
>>> >>
>>> >> void foo(void){ __asm__ volatile("qadd r0, r0, r0"); }
>>> >> --- a/configure
>>> >> +++ b/configure
>>> >> @@ -866,7 +866,7 @@ EOF
>>> >>  check_insn(){
>>> >>      log check_insn "$@"
>>> >> -    check_inline_asm ${1}_inline "$2"
>>> >> +    check_inline_asm ${1}_inline "\"$2\""
>>> >>      check_as ${1}_external "$2"
>>> >>  }
>>> > > This does not look like the correct fix to me. The required quotes
>>> > should be part of the convenience function instead. Notice how calls
>>> > to check_insn and check_inline_asm differ in the way they quote their
>>> > arguments. There should be no need for this inconsistency.
>>> > > I'll look into it.
>>>
>>> Changing all the calls from check_insn name 'insn' to check_insn name
>>> '"insn"' would probably fix the check_inline_asm tests, but may break
>>> the check_as tests.
>>
>> Complicating the function calls is not the right way to go. The helper
>> function should take care of the required quoting and not rely on the
>> callers to pass arguments in nested quotes.
> 
> Ping; whoever is waiting for the other, please pick the thread up again.
> 

I'd wait another day and merge the proposed fix if nothing better
materializes.

lu



More information about the libav-devel mailing list