Package: src:eglibc
Followup-For: Bug #709992

Hi!

I have browsed the code a bit and looked at the differences
between eglibc 2.13 (which builds on m68k) and 2.17 and it
turns out that m68k-helpers.S had two separate versions
for Coldfire and real m68k CPUs in 2.13 while the code was
merged in 2.17.

2.13:

glaubitz@z6:..linux/m68k> pwd
/home/glaubitz/tmp/eglibc-2.13/ports/sysdeps/unix/sysv/linux/m68k
glaubitz@z6:..linux/m68k> ls -l */m68k-helpers.S
-rw-r--r-- 1 glaubitz glaubitz 3474 Mar 13  2010 coldfire/m68k-helpers.S
-rw-r--r-- 1 glaubitz glaubitz 3433 Mar 13  2010 m680x0/m68k-helpers.S
glaubitz@z6:..linux/m68k>

2.17:

glaubitz@z6:..linux/m68k> pwd
/home/glaubitz/tmp/eglibc-2.17/ports/sysdeps/unix/sysv/linux/m68k
glaubitz@z6:..linux/m68k> ls -l m68k-helpers.S
-rw-r--r-- 1 glaubitz glaubitz 3251 Mar 10  2012 m68k-helpers.S
glaubitz@z6:..linux/m68k>

So it might be worth looking into what has been changed for the
original m68k CPUs in m68k-helper.S:

glaubitz@z6:~> diff -u 
/home/glaubitz/tmp/eglibc-2.13/ports/sysdeps/unix/sysv/linux/m68k/m680x0/m68k-helpers.S
 
/home/glaubitz/tmp/eglibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
--- 
/home/glaubitz/tmp/eglibc-2.13/ports/sysdeps/unix/sysv/linux/m68k/m680x0/m68k-helpers.S
                    2010-03-13 19:20:12.000000000 +0100
+++ 
/home/glaubitz/tmp/eglibc-2.17/ports/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
                           2012-03-10 02:14:00.000000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2010, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Maxim Kuvyrkov <ma...@codesourcery.com>, 2010.
 
@@ -30,9 +30,8 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
 #include <bits/m68k-vdso.h>
@@ -41,12 +40,10 @@
 
        .hidden __vdso_read_tp_stub
 ENTRY (__vdso_read_tp_stub)
-      cfi_startproc
       move.l   #__NR_get_thread_area, %d0
       trap     #0
       move.l   %d0, %a0
       rts
-      cfi_endproc
 END (__vdso_read_tp_stub)
 
 # ifdef SHARED
@@ -59,11 +56,10 @@
   .hidden __m68k_read_tp
 # endif
 ENTRY (__m68k_read_tp)
-      cfi_startproc
-      lea      _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a0
+      LOAD_GOT (%a0)
       move.l   M68K_VDSO_SYMBOL (__vdso_read_tp)@GOT(%a0), %a0
-      jmp      ([%a0])
-      cfi_endproc
+      move.l   (%a0), %a0
+      jmp      (%a0)
 END (__m68k_read_tp)
 
 /* The following two stubs are for macros in atomic.h, they can't
@@ -71,7 +67,6 @@
 
        .hidden __vdso_atomic_cmpxchg_32_stub
 ENTRY (__vdso_atomic_cmpxchg_32_stub)
-      cfi_startproc
       move.l   %d2, -(%sp)
       cfi_adjust_cfa_offset (4)
       cfi_rel_offset (%d2, 0)
@@ -82,12 +77,10 @@
   cfi_adjust_cfa_offset (-4)
   cfi_restore (%d2)
   rts
-  cfi_endproc
 END (__vdso_atomic_cmpxchg_32_stub)
 
        .hidden __vdso_atomic_barrier_stub
 ENTRY (__vdso_atomic_barrier_stub)
-      cfi_startproc
       move.l   %d0, -(%sp)
       cfi_adjust_cfa_offset (4)
       move.l                #SYS_ify (atomic_barrier), %d0
@@ -95,7 +88,6 @@
   move.l      (%sp)+, %d0
   cfi_adjust_cfa_offset (-4)
   rts
-  cfi_endproc
 END (__vdso_atomic_barrier_stub)
 # else /* !SHARED */
 /* If the vDSO is not available, use a syscall to get TP.  */
glaubitz@z6:~>

So, 2.17 had the cfi_startproc and cfi_endproc macros removed.

Any comment on that?

Cheers,

Adrian


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to