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

Diego Biurrun diego at biurrun.de
Fri Jun 8 12:30:17 CEST 2018


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.

Diego


More information about the libav-devel mailing list