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

Diego Biurrun diego at biurrun.de
Fri Jun 29 12:38:52 CEST 2018


On Mon, Jun 25, 2018 at 02:41:30PM +0300, 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.

Feel free to push this, I'll come up with a better fix later.

Diego


More information about the libav-devel mailing list