Re: Clang patch stacks for LTS kernels (v4.4 and v4.9) and status update
From: Sedat Dilek
Date: Tue May 22 2018 - 07:23:41 EST
For the sake of completeness...
[ CLANG VERSION ]
# dpkg -l | grep clang-7
ii clang-7
1:7~svn332830-1~exp1+0~20180521091322.1776~1.gbp198359 amd64 C,
C++ and Objective-C compiler
[ OBJDUMP native_save_fl() ]
$ objdump -d -S --start-address=0x$(grep native_save_fl System.map |
sed -e "s/ \+.*//") vmlinux | less
vmlinux: file format elf64-x86-64
Disassembly of section .text:
ffffffff810633a0 <native_save_fl>:
/*
* Interrupt control:
*/
static inline __nostackprotector unsigned long native_save_fl(void)
{
ffffffff810633a0: 55 push %rbp
ffffffff810633a1: 48 89 e5 mov %rsp,%rbp
ffffffff810633a4: 50 push %rax
/*
* "=rm" is safe here, because "pop" adjusts the stack before
* it evaluates its effective address -- this is part of the
* documented behavior of the "pop" instruction.
*/
asm volatile("# __raw_save_flags\n\t"
ffffffff810633a5: 9c pushfq
ffffffff810633a6: 8f 45 f8 popq -0x8(%rbp)
"pushf ; pop %0"
: "=rm" (flags)
: /* no input */
: "memory");
return flags;
ffffffff810633a9: 48 8b 45 f8 mov -0x8(%rbp),%rax
ffffffff810633ad: 48 83 c4 08 add $0x8,%rsp
ffffffff810633b1: 5d pop %rbp
ffffffff810633b2: c3 retq
ffffffff810633b3: 0f 1f 00 nopl (%rax)
ffffffff810633b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
ffffffff810633bd: 00 00 00
ffffffff810633c0 <native_restore_fl>:
}
static inline void native_restore_fl(unsigned long flags)
{
...
- Sedat -