This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Notes on a frame_unwind_address_in_block problem


>  Mark Kettenis <mark.kettenis@xs4all.nl> writes:
>
> > [...]
> > Looking at sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc
> > sources:
> >
> > asm                                             \
> >   (                                             \
> >    ".align 16\n"                                \
> >    CFI_STARTPROC "\n"                           \
> >    "__" #name ":\n"                             \
> >    "    movq $" #syscall ", %rax\n"             \
> >    "    syscall\n"                              \
> >    CFI_ENDPROC "\n"                             \
> >    );
> >
> > Someone should either add the proper unwind info or remove the unwind
> > info altogether.
>
>  What do you suggest to add here?

Something like what's done in the kernel (arch/x86_64/kernel/vsyscall.S).
Hmm, I wonder why Daniel's box uses the trampoline from libc instead of
the trampoline in the vsyscall page.  Looking a bit closer, it seems my
amd64 machine here at work has the same issue (SuSE 9.2 with a 2.6.8-24.20
kernel and glibc 2.3.3).  Is it just my glibc that's out of date, or is
something busted?

Anyway, if with the current libc, the trampoline provided by the kernel is
supposed to be used, then it's probably not worth bothering to add CFI
to libc, and I'd just remove the CFI_STARTPROC and CFI_ENDPROC statements.

Mark




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]