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

Martin Storsjö martin at martin.st
Mon Jun 25 13:41:30 CEST 2018


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.

// Martin


More information about the libav-devel mailing list