Skip to content
  • Jonathan Nieder's avatar
    x86: Fix kprobes build with non-gawk awk · 23637568
    Jonathan Nieder authored
    
    
    The instruction attribute table generator fails when run by mawk
    or original-awk:
    
     $ mawk -f arch/x86/tools/gen-insn-attr-x86.awk \
    	arch/x86/lib/x86-opcode-map.txt > /dev/null
     Semantic error at 240: Second IMM error
     $ echo $?
     1
    
    Line 240 contains "c8: ENTER Iw,Ib", which indicates that this
    instruction has two immediate operands, the second of which is
    one byte.  The script loops through the immediate operands using
    a for loop.
    
    Unfortunately, there is no guarantee in awk that a for (variable
    in array) loop will return the indices in increasing order.
    Internally, both original-awk and mawk iterate over a hash table
    for this purpose, and both implementations happen to produce the
    index 2 before 1.  The supposed second immediate operand is more
    than one byte wide, producing the error.
    
    So loop over the indices in increasing order instead.  As a
    side-effect, with mawk this means the silly two-entry hash table
    never has to be built.
    
    Signed-off-by: default avatarJonathan Nieder <jrnieder@gmail.com>
    Acked-by Masami Hiramatsu <mhiramat@redhat.com>
    Cc: Jim Keniston <jkenisto@us.ibm.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    LKML-Reference: <20091213220437.GA27718@progeny.tock>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    23637568