eglibc: [armel] make syscalls out-of-line to improve debugging

Bug #571647 reported by Dave Martin
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
eglibc (Ubuntu)
Fix Released
Undecided
Unassigned
Lucid
Won't Fix
Undecided
Unassigned

Bug Description

Hi,

If possible, we should merge this patch, which changes syscalls to be out-of-line. This should improve gdb debug visibility significantly when stepping syscalls or attaching to running processes:

http://sourceware.org/ml/glibc-cvs/2010-q2/msg00038.html

Additional discussion here:

http://sourceware.org/ml/libc-ports/2010-04/msg00001.html

Tags: armel

Related branches

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package eglibc - 2.11.1-0ubuntu8

---------------
eglibc (2.11.1-0ubuntu8) maverick; urgency=low

  * Apply from the 2.11-x86 branch:
    - x86-64 SSE4 optimized memcmp.
  * [armel] make syscalls out-of-line to improve debugging. LP: #571647 .
 -- Matthias Klose <email address hidden> Sat, 01 May 2010 14:30:23 +0200

Changed in eglibc (Ubuntu):
status: New → Fix Released
Revision history for this message
Matthias Klose (doko) wrote :

fails to build:

gcc-4.4 -fno-stack-protector -U_FORTIFY_SOURCE ../ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S -c -I../include -I/build/buildd/eglibc-2.11.1/build-tree/armel-libc/csu -I/build/buildd/eglibc-2.11.1/build-tree/armel-libc -I../ports/sysdeps/arm/elf -I../ports/sysdeps/unix/sysv/linux/arm/eabi/nptl -I../ports/sysdeps/unix/sysv/linux/arm/eabi -I../ports/sysdeps/unix/sysv/linux/arm/nptl -I../ports/sysdeps/unix/sysv/linux/arm -I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../ports/sysdeps/unix/arm -I../ports/sysdeps/unix -I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../ports/sysdeps/arm/eabi -I../ports/sysdeps/arm/fpu -I../ports/sysdeps/arm/nptl -I../ports/sysdeps/arm -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../ports -I../nptl -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabi/4.4.4/include -isystem /usr/lib/gcc/arm-linux-gnueabi/4.4.4/include-fixed -isystem /build/buildd/eglibc-2.11.1/debian/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DHAVE_INITFINI -DASSEMBLER -I/build/buildd/eglibc-2.11.1/build-tree/armel-libc/csu/. -pipe -O2 -fstrict-aliasing -g -Wa,--noexecstack -o /build/buildd/eglibc-2.11.1/build-tree/armel-libc/csu/libc-do-syscall.o -MD -MP -MF /build/buildd/eglibc-2.11.1/build-tree/armel-libc/csu/libc-do-syscall.o.dt -MT /build/buildd/eglibc-2.11.1/build-tree/armel-libc/csu/libc-do-syscall.o
../ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S: Assembler messages:
../ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S:36: Error: CFI instruction used without previous .cfi_startproc
../ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S:37: Error: CFI instruction used without previous .cfi_startproc
../ports/sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S:38: Error: CFI instruction used without previous .cfi_startproc
make[3]: *** [/build/buildd/eglibc-2.11.1/build-tree/armel-libc/csu/libc-do-syscall.o] Error 1

Changed in eglibc (Ubuntu):
status: Fix Released → Incomplete
Revision history for this message
Dave Martin (dave-martin-arm) wrote :

It looks like an additional fix is needed to allow this to build with the (stricter) current trunk binutils - see below.

I'll post more info when we have it available.

> -----Original Message-----
> From: Matthew Gretton-Dann
> Sent: 04 May 2010 11:17
> To: Dave P Martin
> Cc: 'Matthias Klose'
> Subject: RE: [Bug 571647] Re: eglibc: [armel] make syscalls
> out-of-line to improvedebugging
>
> Dave,
>
> This was trunk glibc, but I don't know what binutils Dan
> Jacobowitz used to develop against - and it is binutils that
> is producing the error.
>
> Looking at the patch - the required fix is to add
> cfi_startproc, and cfi_endproc directives in
> __libc_do_syscall
> (sysdeps/unix/sysv/linux/arm/eabi/libc-do-syscall.S):
>
> ENTRY (__libc_do_syscall)
> .fnstart
> cfi_startproc @@@@ Add this line
> push {r7, lr}
> .save {r7, lr}
> cfi_adjust_cfa_offset (8)
> cfi_rel_offset (r7, 0)
> cfi_rel_offset (lr, 4)
> mov r7, ip
> swi 0x0
> pop {r7, pc}
> cfi_endproc @@@@ Add this line
> .fnend
>
> Thanks,
>
> Matt

Revision history for this message
Matthias Klose (doko) wrote :

fixed in maverick and 2.12, leaving the lucid task open

Changed in eglibc (Ubuntu):
status: Incomplete → Fix Released
Revision history for this message
Rolf Leggewie (r0lf) wrote :

lucid has seen the end of its life and is no longer receiving any updates. Marking the lucid task for this ticket as "Won't Fix".

Changed in eglibc (Ubuntu Lucid):
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.