public inbox for libc-ports@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Get rid of ASM_SIZE_DIRECTIVE
@ 2012-09-17 14:20 Marek Polacek
  2012-09-17 15:04 ` Carlos O'Donell
  2012-09-17 15:25 ` Andreas Schwab
  0 siblings, 2 replies; 22+ messages in thread
From: Marek Polacek @ 2012-09-17 14:20 UTC (permalink / raw)
  To: libc-alpha, libc-ports; +Cc: Kaz Kojima, Andreas Krebbel, David Miller

Removal of ASM_SIZE_DIRECTIVE macro.  I did not touch the ports/
directory.  Tested x86_64 and i?86, tested also {libc,ld}.so with 
objdump -dr.  Could you please also test sh, ppc, and s390
as well?  Thanks.  Ok for trunk?

2012-09-17  Marek Polacek  <polacek@redhat.com>

	[BZ #14414]
	* sysdeps/s390/s390-32/sysdep.h (ASM_SIZE_DIRECTIVE): Remove macro.
	Replace ASM_SIZE_DIRECTIVE with .size directive.
	* sysdeps/s390/s390-64/sysdep.h: Likewise.
	* sysdeps/i386/sysdep.h: Likewise.
	* sysdeps/x86_64/sysdep.h: Likewise.
	* sysdeps/sh/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
	(ASM_SIZE_DIRECTIVE): Remove macro.
	* sysdeps/powerpc/sysdep.h: Likewise.
	* sysdeps/s390/s390-32/s390-mcount.S: Replace ASM_SIZE_DIRECTIVE with
	.size directive.
	* sysdeps/s390/s390-64/s390x-mcount.S: Likewise.
	* sysdeps/mach/hurd/powerpc/static-start.S: Likewise.
	* sysdeps/i386/fpu/e_powf.S: Likewise.
	* sysdeps/i386/fpu/e_expl.S: Likewise.
	* sysdeps/i386/fpu/e_atanhf.S: Likewise.
	* sysdeps/i386/fpu/e_acosh.S: Likewise.
	* sysdeps/i386/fpu/e_pow.S: Likewise.
	* sysdeps/i386/fpu/s_asinhl.S: Likewise.
	* sysdeps/i386/fpu/e_acoshl.S: Likewise.
	* sysdeps/i386/fpu/s_expm1.S: Likewise.
	* sysdeps/i386/fpu/s_frexpf.S: Likewise.
	* sysdeps/i386/fpu/e_log2.S: Likewise.
	* sysdeps/i386/fpu/e_log2l.S: Likewise.
	* sysdeps/i386/fpu/e_scalb.S: Likewise.
	* sysdeps/i386/fpu/e_powl.S: Likewise.
	* sysdeps/i386/fpu/e_log10f.S: Likewise.
	* sysdeps/i386/fpu/s_cbrtf.S: Likewise.
	* sysdeps/i386/fpu/e_logl.S: Likewise.
	* sysdeps/i386/fpu/s_cbrt.S: Likewise.
	* sysdeps/i386/fpu/s_frexpl.S: Likewise.
	* sysdeps/i386/fpu/s_expm1f.S: Likewise.
	* sysdeps/i386/fpu/e_log2f.S: Likewise.
	* sysdeps/i386/fpu/e_acoshf.S: Likewise.
	* sysdeps/i386/fpu/e_log.S: Likewise.
	* sysdeps/i386/fpu/e_scalbf.S: Likewise.
	* sysdeps/i386/fpu/e_logf.S: Likewise.
	* sysdeps/i386/fpu/e_log10l.S: Likewise.
	* sysdeps/i386/fpu/e_atanh.S: Likewise.
	* sysdeps/i386/fpu/s_asinhf.S: Likewise.
	* sysdeps/i386/fpu/e_log10.S: Likewise.
	* sysdeps/i386/fpu/s_frexp.S: Likewise.
	* sysdeps/i386/fpu/e_atanhl.S: Likewise.
	* sysdeps/i386/fpu/s_asinh.S: Likewise.
	* sysdeps/i386/fpu/s_cbrtl.S: Likewise.
	* sysdeps/i386/fpu/e_scalbl.S: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Likewise.
	* sysdeps/i386/i686/fpu/e_logl.S: Likewise.
	* sysdeps/i386/i386-mcount.S: Likewise.
	* sysdeps/x86_64/fpu/e_expl.S: Likewise.
	* sysdeps/x86_64/fpu/e_log2l.S: Likewise.
	* sysdeps/x86_64/fpu/s_cosf.S: Likewise.
	* sysdeps/x86_64/fpu/e_powl.S: Likewise.
	* sysdeps/x86_64/fpu/s_sinf.S: Likewise.
	* sysdeps/x86_64/fpu/e_logl.S: Likewise.
	* sysdeps/x86_64/fpu/e_expf.S: Likewise.
	* sysdeps/x86_64/fpu/e_log10l.S: Likewise.
	* sysdeps/x86_64/fpu/s_copysignf.S: Likewise.
	* sysdeps/x86_64/fpu/s_copysign.S: Likewise.
	* sysdeps/x86_64/fpu/e_scalbl.S: Likewise.
	* sysdeps/x86_64/_mcount.S: Likewise.
	* sysdeps/sh/_mcount.S: Likewise.
	* sysdeps/powerpc/powerpc64/start.S: Likewise.
	* sysdeps/powerpc/powerpc32/start.S: Likewise.
	* sysdeps/powerpc/powerpc32/sysdep.h: Likewise.

--- libc/sysdeps/s390/s390-32/sysdep.h.mp	2012-09-17 11:15:52.880386711 +0200
+++ libc/sysdeps/s390/s390-32/sysdep.h	2012-09-17 15:38:46.763311722 +0200
@@ -1,5 +1,5 @@
 /* Assembler macros for s390.
-   Copyright (C) 2000, 2001, 2003, 2012 Free Software Foundation, Inc.
+   Copyright (C) 2000-2012 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
@@ -25,7 +25,6 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C. */
@@ -40,7 +39,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)						      \
+  .size name,.-name							      \
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #ifdef	PROF
--- libc/sysdeps/s390/s390-32/s390-mcount.S.mp	2012-09-17 11:15:52.881386714 +0200
+++ libc/sysdeps/s390/s390-32/s390-mcount.S	2012-09-17 15:38:46.763311722 +0200
@@ -83,7 +83,7 @@ C_LABEL(_mcount)
 	cfi_adjust_cfa_offset (-128)
 	br    %r14
 	cfi_endproc
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+	.size C_SYMBOL_NAME(_mcount),.-C_SYMBOL_NAME(_mcount)
 
 #undef mcount
 weak_alias (_mcount, mcount)
--- libc/sysdeps/s390/s390-64/sysdep.h.mp	2012-09-17 11:15:52.884386723 +0200
+++ libc/sysdeps/s390/s390-64/sysdep.h	2012-09-17 15:38:46.771311746 +0200
@@ -1,5 +1,5 @@
 /* Assembler macros for 64 bit S/390.
-   Copyright (C) 2001, 2003, 2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2012 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
@@ -25,7 +25,6 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C. */
@@ -40,7 +39,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)						      \
+  .size name,.-name							      \
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #ifdef	PROF
--- libc/sysdeps/s390/s390-64/s390x-mcount.S.mp	2012-09-17 11:15:52.882386717 +0200
+++ libc/sysdeps/s390/s390-64/s390x-mcount.S	2012-09-17 15:38:46.772311749 +0200
@@ -71,7 +71,7 @@ C_LABEL(_mcount)
 	cfi_adjust_cfa_offset (-224)
         br    %r14
 	cfi_endproc
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+	.size C_SYMBOL_NAME(_mcount),.-C_SYMBOL_NAME(_mcount)
 
 #undef mcount
 weak_alias (_mcount, mcount)
--- libc/sysdeps/mach/hurd/powerpc/static-start.S.mp	2012-09-17 11:15:52.885386727 +0200
+++ libc/sysdeps/mach/hurd/powerpc/static-start.S	2012-09-17 15:38:46.773311752 +0200
@@ -1,5 +1,5 @@
 /* Startup code for statically linked Hurd/PowerPC binaries.
-   Copyright (C) 1998,2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,7 +28,7 @@ L(start_addresses):
 	.long	JUMPTARGET(main)
 	.long	JUMPTARGET(__libc_csu_init)
 	.long	JUMPTARGET(__libc_csu_fini)
-	ASM_SIZE_DIRECTIVE(L(start_addresses))
+	.size L(start_addresses),.-L(start_addresses)
 
 	.section ".text"
 ENTRY(_start)
--- libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h.mp	2012-09-17 11:15:52.886386731 +0200
+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h	2012-09-17 15:38:46.774311755 +0200
@@ -1,5 +1,4 @@
-/* Copyright (C) 1992,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2012
-	Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -58,7 +57,6 @@
 
 /* This seems to always be the case on PPC.  */
 # define ALIGNARG(log2) log2
-# define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 #endif /* __ASSEMBLER__ */
 
--- libc/sysdeps/i386/fpu/e_powf.S.mp	2012-09-17 11:15:52.956386949 +0200
+++ libc/sysdeps/i386/fpu/e_powf.S	2012-09-17 15:38:46.774311755 +0200
@@ -1,6 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996-1997, 1999, 2001, 2004, 2005, 2007, 2011-2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -25,13 +24,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 	.type p31,@object
 p31:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x41
-	ASM_SIZE_DIRECTIVE(p31)
+	.size p31,.-p31
 
 	.section .rodata.cst16,"aM",@progbits,16
 
@@ -40,17 +39,17 @@ p31:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x41
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
-	ASM_SIZE_DIRECTIVE(infinity)
+	.size infinity,.-infinity
 	.type zero,@object
 zero:	.double 0.0
-	ASM_SIZE_DIRECTIVE(zero)
+	.size zero,.-zero
 	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
 mzero:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
-	ASM_SIZE_DIRECTIVE(minf_mzero)
+	.size minf_mzero,.-minf_mzero
 
 #ifdef PIC
 # define MO(op) op##@GOTOFF(%ecx)
--- libc/sysdeps/i386/fpu/e_expl.S.mp	2012-09-17 11:15:52.891386746 +0200
+++ libc/sysdeps/i386/fpu/e_expl.S	2012-09-17 15:38:46.775311758 +0200
@@ -45,26 +45,26 @@
 	.type c0,@object
 c0:	.byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c0)
+	.size c0,.-c0
 	.type c1,@object
 c1:	.byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c1)
+	.size c1,.-c1
 #else
 	.type c0,@object
 c0:	.byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c0)
+	.size c0,.-c0
 	.type c1,@object
 c1:	.byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c1)
+	.size c1,.-c1
 #endif
 #ifndef USE_AS_EXPM1L
 	.type csat,@object
 csat:	.byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(csat)
+	.size csat,.-csat
 #endif
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_atanhf.S.mp	2012-09-17 11:15:52.889386740 +0200
+++ libc/sysdeps/i386/fpu/e_atanhf.S	2012-09-17 15:38:46.776311761 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arctanh function.
-   Copyright (C) 1996, 1999, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,17 +24,17 @@
 	.align ALIGNARG(4)
 	.type half,@object
 half:	.double 0.5
-	ASM_SIZE_DIRECTIVE(half)
+	.size half,.-half
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 	.align ALIGNARG(4)
 	.type ln2_2,@object
 ln2_2:	.tfloat 0.3465735902799726547086160
-	ASM_SIZE_DIRECTIVE(ln2_2)
+	.size ln2_2,.-ln2_2
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_acosh.S.mp	2012-09-17 11:15:52.888386737 +0200
+++ libc/sysdeps/i386/fpu/e_acosh.S	2012-09-17 15:38:46.776311761 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,10 +24,10 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_pow.S.mp	2012-09-17 11:15:52.892386749 +0200
+++ libc/sysdeps/i386/fpu/e_pow.S	2012-09-17 15:38:46.777311764 +0200
@@ -1,6 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996-1999, 2001, 2004-2005, 2007, 2011-2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -25,16 +24,16 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 	.type p63,@object
 p63:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
-	ASM_SIZE_DIRECTIVE(p63)
+	.size p63,.-p63
 	.type p10,@object
 p10:	.byte 0, 0, 0, 0, 0, 0, 0x90, 0x40
-	ASM_SIZE_DIRECTIVE(p10)
+	.size p10,.-p10
 
 	.section .rodata.cst16,"aM",@progbits,16
 
@@ -43,17 +42,17 @@ p10:	.byte 0, 0, 0, 0, 0, 0, 0x90, 0x40
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
-	ASM_SIZE_DIRECTIVE(infinity)
+	.size infinity,.-infinity
 	.type zero,@object
 zero:	.double 0.0
-	ASM_SIZE_DIRECTIVE(zero)
+	.size zero,.-zero
 	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
 mzero:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
-	ASM_SIZE_DIRECTIVE(minf_mzero)
+	.size minf_mzero,.-minf_mzero
 
 #ifdef PIC
 # define MO(op) op##@GOTOFF(%ecx)
--- libc/sysdeps/i386/fpu/s_asinhl.S.mp	2012-09-17 11:15:52.890386743 +0200
+++ libc/sysdeps/i386/fpu/s_asinhl.S	2012-09-17 15:38:46.778311767 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,20 +24,20 @@
 	.align ALIGNARG(4)
 	.type huge,@object
 huge:	.tfloat 1e+4930
-	ASM_SIZE_DIRECTIVE(huge)
+	.size huge,.-huge
 	.align ALIGNARG(4)
 	/* Please note that we use double value for 1.0.  This number
 	   has an exact representation and so we don't get accuracy
 	   problems.  The advantage is that the code is simpler.  */
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_acoshl.S.mp	2012-09-17 11:15:52.959386958 +0200
+++ libc/sysdeps/i386/fpu/e_acoshl.S	2012-09-17 15:38:46.778311767 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -27,13 +27,13 @@
 	   problems.  The advantage is that the code is simpler.  */
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_expm1.S.mp	2012-09-17 11:15:52.898386767 +0200
+++ libc/sysdeps/i386/fpu/s_expm1.S	2012-09-17 15:38:46.779311770 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of exp(x)-1.
-   Copyright (C) 1996-1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
    Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
@@ -29,13 +29,13 @@
 	.align ALIGNARG(4)
 	.type minus1,@object
 minus1:	.double -1.0
-	ASM_SIZE_DIRECTIVE(minus1)
+	.size minus1,.-minus1
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type l2e,@object
 l2e:	.tfloat 1.442695040888963407359924681002
-	ASM_SIZE_DIRECTIVE(l2e)
+	.size l2e,.-l2e
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_frexpf.S.mp	2012-09-17 11:15:52.964386975 +0200
+++ libc/sysdeps/i386/fpu/s_frexpf.S	2012-09-17 15:38:46.779311770 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific frexp implementation for float.
-   Copyright (C) 1997, 2000, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -26,7 +26,7 @@
 	.align ALIGNARG(4)
 	.type two25,@object
 two25:	.byte 0, 0, 0, 0x4c
-	ASM_SIZE_DIRECTIVE(two25)
+	.size two25,.-two25
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_log2.S.mp	2012-09-17 11:15:52.902386782 +0200
+++ libc/sysdeps/i386/fpu/e_log2.S	2012-09-17 15:38:46.780311773 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_log2l.S.mp	2012-09-17 11:15:52.957386952 +0200
+++ libc/sysdeps/i386/fpu/e_log2l.S	2012-09-17 15:38:46.781311776 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_scalb.S.mp	2012-09-17 11:15:52.907386797 +0200
+++ libc/sysdeps/i386/fpu/e_scalb.S	2012-09-17 15:38:46.782311779 +0200
@@ -16,7 +16,7 @@ zero_nan:
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(zero_nan)
+	.size zero_nan,.-zero_nan
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_powl.S.mp	2012-09-17 11:15:52.903386785 +0200
+++ libc/sysdeps/i386/fpu/e_powl.S	2012-09-17 15:38:46.782311779 +0200
@@ -1,6 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996-1999, 2001, 2004-2005, 2007, 2011-2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -25,19 +24,19 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 	.type p63,@object
 p63:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
-	ASM_SIZE_DIRECTIVE(p63)
+	.size p63,.-p63
 	.type p64,@object
 p64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
-	ASM_SIZE_DIRECTIVE(p64)
+	.size p64,.-p64
 	.type p78,@object
 p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
-	ASM_SIZE_DIRECTIVE(p78)
+	.size p78,.-p78
 
 	.section .rodata.cst16,"aM",@progbits,16
 
@@ -46,17 +45,17 @@ p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
-	ASM_SIZE_DIRECTIVE(infinity)
+	.size infinity,.-infinity
 	.type zero,@object
 zero:	.double 0.0
-	ASM_SIZE_DIRECTIVE(zero)
+	.size zero,.-zero
 	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
 mzero:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
-	ASM_SIZE_DIRECTIVE(minf_mzero)
+	.size minf_mzero,.-minf_mzero
 
 #ifdef PIC
 # define MO(op) op##@GOTOFF(%ecx)
--- libc/sysdeps/i386/fpu/e_log10f.S.mp	2012-09-17 11:15:52.913386815 +0200
+++ libc/sysdeps/i386/fpu/e_log10f.S	2012-09-17 15:38:46.783311782 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/s_cbrtf.S.mp	2012-09-17 11:15:52.906386794 +0200
+++ libc/sysdeps/i386/fpu/s_cbrtf.S	2012-09-17 15:38:46.784311785 +0200
@@ -1,5 +1,5 @@
 /* Compute cubic root of float value.
-   Copyright (C) 1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
    Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -25,13 +25,13 @@
         .align ALIGNARG(4)
         .type f3,@object
 f3:	.double 0.191502161678719066
-        ASM_SIZE_DIRECTIVE(f3)
+        .size f3,.-f3
         .type f2,@object
 f2:	.double 0.697570460207922770
-        ASM_SIZE_DIRECTIVE(f2)
+        .size f2,.-f2
         .type f1,@object
 f1:	.double 0.492659620528969547
-        ASM_SIZE_DIRECTIVE(f1)
+        .size f1,.-f1
 
 #define CBRT2		1.2599210498948731648
 #define ONE_CBRT2	0.793700525984099737355196796584
@@ -45,11 +45,11 @@ factor:	.double ONE_SQR_CBRT2
 	.double 1.0
 	.double CBRT2
 	.double SQR_CBRT2
-	ASM_SIZE_DIRECTIVE(factor)
+	.size factor,.-factor
 
         .type two25,@object
 two25:	.byte 0, 0, 0, 0x4c
-        ASM_SIZE_DIRECTIVE(two25)
+        .size two25,.-two25
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%ebx)
--- libc/sysdeps/i386/fpu/e_logl.S.mp	2012-09-17 11:15:52.887386734 +0200
+++ libc/sysdeps/i386/fpu/e_logl.S	2012-09-17 15:38:46.786311791 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/s_cbrt.S.mp	2012-09-17 11:15:52.954386943 +0200
+++ libc/sysdeps/i386/fpu/s_cbrt.S	2012-09-17 15:38:46.786311791 +0200
@@ -1,5 +1,5 @@
 /* Compute cubic root of double value.
-   Copyright (C) 1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
    Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -25,25 +25,25 @@
         .align ALIGNARG(4)
         .type f7,@object
 f7:	.double -0.145263899385486377
-	ASM_SIZE_DIRECTIVE(f7)
+	.size f7,.-f7
         .type f6,@object
 f6:	.double 0.784932344976639262
-	ASM_SIZE_DIRECTIVE(f6)
+	.size f6,.-f6
         .type f5,@object
 f5:	.double -1.83469277483613086
-	ASM_SIZE_DIRECTIVE(f5)
+	.size f5,.-f5
         .type f4,@object
 f4:	.double 2.44693122563534430
-	ASM_SIZE_DIRECTIVE(f4)
+	.size f4,.-f4
         .type f3,@object
 f3:	.double -2.11499494167371287
-	ASM_SIZE_DIRECTIVE(f3)
+	.size f3,.-f3
         .type f2,@object
 f2:	.double 1.50819193781584896
-	ASM_SIZE_DIRECTIVE(f2)
+	.size f2,.-f2
         .type f1,@object
 f1:	.double 0.354895765043919860
-	ASM_SIZE_DIRECTIVE(f1)
+	.size f1,.-f1
 
 #define CBRT2		1.2599210498948731648
 #define ONE_CBRT2	0.793700525984099737355196796584
@@ -56,11 +56,11 @@ factor:	.double ONE_SQR_CBRT2
 	.double 1.0
 	.double CBRT2
 	.double SQR_CBRT2
-	ASM_SIZE_DIRECTIVE(factor)
+	.size factor,.-factor
 
         .type two54,@object
 two54:  .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
-        ASM_SIZE_DIRECTIVE(two54)
+        .size two54,.-two54
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%ebx)
--- libc/sysdeps/i386/fpu/s_frexpl.S.mp	2012-09-17 11:15:52.896386761 +0200
+++ libc/sysdeps/i386/fpu/s_frexpl.S	2012-09-17 15:38:46.787311794 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific frexp implementation for long double.
-   Copyright (C) 1997, 2000-2001, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -26,7 +26,7 @@
 	.align ALIGNARG(4)
 	.type two64,@object
 two64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
-	ASM_SIZE_DIRECTIVE(two64)
+	.size two64,.-two64
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_expm1f.S.mp	2012-09-17 11:15:52.916386824 +0200
+++ libc/sysdeps/i386/fpu/s_expm1f.S	2012-09-17 15:38:46.787311794 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of exp(x)-1.
-   Copyright (C) 1996-1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
    Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
@@ -29,13 +29,13 @@
 	.align ALIGNARG(4)
 	.type minus1,@object
 minus1:	.double -1.0
-	ASM_SIZE_DIRECTIVE(minus1)
+	.size minus1,.-minus1
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type l2e,@object
 l2e:	.tfloat 1.442695040888963407359924681002
-	ASM_SIZE_DIRECTIVE(l2e)
+	.size l2e,.-l2e
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_log2f.S.mp	2012-09-17 11:15:52.897386764 +0200
+++ libc/sysdeps/i386/fpu/e_log2f.S	2012-09-17 15:38:46.788311797 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_acoshf.S.mp	2012-09-17 11:15:52.893386752 +0200
+++ libc/sysdeps/i386/fpu/e_acoshf.S	2012-09-17 15:38:46.789311800 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,10 +24,10 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_log.S.mp	2012-09-17 11:15:52.908386800 +0200
+++ libc/sysdeps/i386/fpu/e_log.S	2012-09-17 15:38:46.790311803 +0200
@@ -12,13 +12,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_scalbf.S.mp	2012-09-17 11:15:52.911386809 +0200
+++ libc/sysdeps/i386/fpu/e_scalbf.S	2012-09-17 15:38:46.790311803 +0200
@@ -17,7 +17,7 @@ zero_nan:
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(zero_nan)
+	.size zero_nan,.-zero_nan
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_logf.S.mp	2012-09-17 11:15:52.961386964 +0200
+++ libc/sysdeps/i386/fpu/e_logf.S	2012-09-17 15:38:46.791311806 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_log10l.S.mp	2012-09-17 11:15:52.901386778 +0200
+++ libc/sysdeps/i386/fpu/e_log10l.S	2012-09-17 15:38:46.791311806 +0200
@@ -14,13 +14,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_atanh.S.mp	2012-09-17 11:15:52.915386821 +0200
+++ libc/sysdeps/i386/fpu/e_atanh.S	2012-09-17 15:38:46.792311809 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arctanh function.
-   Copyright (C) 1996, 1999, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,16 +24,16 @@
 	.align ALIGNARG(4)
 	.type half,@object
 half:	.double 0.5
-	ASM_SIZE_DIRECTIVE(half)
+	.size half,.-half
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 	.type ln2_2,@object
 ln2_2:	.tfloat 0.3465735902799726547086160
-	ASM_SIZE_DIRECTIVE(ln2_2)
+	.size ln2_2,.-ln2_2
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_asinhf.S.mp	2012-09-17 11:15:52.899386770 +0200
+++ libc/sysdeps/i386/fpu/s_asinhf.S	2012-09-17 15:38:46.792311809 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 1999, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,13 +24,13 @@
 	.align ALIGNARG(4)
 	.type huge,@object
 huge:	.double 1e+36
-	ASM_SIZE_DIRECTIVE(huge)
+	.size huge,.-huge
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_log10.S.mp	2012-09-17 11:15:52.904386788 +0200
+++ libc/sysdeps/i386/fpu/e_log10.S	2012-09-17 15:38:46.793311812 +0200
@@ -12,13 +12,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/s_frexp.S.mp	2012-09-17 11:15:52.894386755 +0200
+++ libc/sysdeps/i386/fpu/s_frexp.S	2012-09-17 15:38:46.793311812 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific frexp implementation for double.
-   Copyright (C) 1997, 2000, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -26,7 +26,7 @@
 	.align ALIGNARG(4)
 	.type two54,@object
 two54:	.byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
-	ASM_SIZE_DIRECTIVE(two54)
+	.size two54,.-two54
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_atanhl.S.mp	2012-09-17 11:15:52.960386961 +0200
+++ libc/sysdeps/i386/fpu/e_atanhl.S	2012-09-17 15:38:46.794311815 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arctanh function.
-   Copyright (C) 1996, 1999, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -27,20 +27,20 @@
 	   problems.  The advantage is that the code is simpler.  */
 	.type half,@object
 half:	.double 0.5
-	ASM_SIZE_DIRECTIVE(half)
+	.size half,.-half
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 	.align ALIGNARG(4)
 	.type ln2_2,@object
 ln2_2:	.tfloat 0.3465735902799726547086160
-	ASM_SIZE_DIRECTIVE(ln2_2)
+	.size ln2_2,.-ln2_2
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_asinh.S.mp	2012-09-17 11:15:52.958386955 +0200
+++ libc/sysdeps/i386/fpu/s_asinh.S	2012-09-17 15:38:46.794311815 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,13 +24,13 @@
 	.align ALIGNARG(4)
 	.type huge,@object
 huge:	.double 1e+300
-	ASM_SIZE_DIRECTIVE(huge)
+	.size huge,.-huge
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_cbrtl.S.mp	2012-09-17 11:15:52.900386774 +0200
+++ libc/sysdeps/i386/fpu/s_cbrtl.S	2012-09-17 15:38:46.795311818 +0200
@@ -1,5 +1,5 @@
 /* Compute cubic root of long double value.
-   Copyright (C) 1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
    Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -25,35 +25,35 @@
         .align ALIGNARG(4)
         .type f8,@object
 f8:	.tfloat 0.161617097923756032
-	ASM_SIZE_DIRECTIVE(f8)
+	.size f8,.-f8
         .align ALIGNARG(4)
         .type f7,@object
 f7:	.tfloat -0.988553671195413709
-	ASM_SIZE_DIRECTIVE(f7)
+	.size f7,.-f7
         .align ALIGNARG(4)
         .type f6,@object
 f6:	.tfloat 2.65298938441952296
-	ASM_SIZE_DIRECTIVE(f6)
+	.size f6,.-f6
         .align ALIGNARG(4)
         .type f5,@object
 f5:	.tfloat -4.11151425200350531
-	ASM_SIZE_DIRECTIVE(f5)
+	.size f5,.-f5
         .align ALIGNARG(4)
         .type f4,@object
 f4:	.tfloat 4.09559907378707839
-	ASM_SIZE_DIRECTIVE(f4)
+	.size f4,.-f4
         .align ALIGNARG(4)
         .type f3,@object
 f3:	.tfloat -2.82414939754975962
-	ASM_SIZE_DIRECTIVE(f3)
+	.size f3,.-f3
         .align ALIGNARG(4)
         .type f2,@object
 f2:	.tfloat 1.67595307700780102
-	ASM_SIZE_DIRECTIVE(f2)
+	.size f2,.-f2
         .align ALIGNARG(4)
         .type f1,@object
 f1:	.tfloat 0.338058687610520237
-	ASM_SIZE_DIRECTIVE(f1)
+	.size f1,.-f1
 
 #define CBRT2		1.2599210498948731648
 #define ONE_CBRT2	0.793700525984099737355196796584
@@ -73,12 +73,12 @@ factor:	.tfloat ONE_SQR_CBRT2
 	.tfloat CBRT2
 	.byte 0, 0, 0, 0, 0, 0
 	.tfloat SQR_CBRT2
-	ASM_SIZE_DIRECTIVE(factor)
+	.size factor,.-factor
 
         .type two64,@object
         .align ALIGNARG(4)
 two64:  .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
-        ASM_SIZE_DIRECTIVE(two64)
+        .size two64,.-two64
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%ebx)
--- libc/sysdeps/i386/fpu/e_scalbl.S.mp	2012-09-17 11:15:52.962386967 +0200
+++ libc/sysdeps/i386/fpu/e_scalbl.S	2012-09-17 15:38:46.796311821 +0200
@@ -18,7 +18,7 @@ zero_nan:
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(zero_nan)
+	.size zero_nan,.-zero_nan
 
 
 #ifdef PIC
--- libc/sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S.mp	2012-09-17 11:15:53.022387156 +0200
+++ libc/sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S	2012-09-17 15:38:46.796311821 +0200
@@ -363,7 +363,7 @@ L(PIO4J): /* Table of j*Pi/4, for j=0,1,
 	.long	0xbeccb2bb,0x401c463a
 	.long	0x2955385e,0x401f6a7a
 	.type L(PIO4J), @object
-	ASM_SIZE_DIRECTIVE(L(PIO4J))
+	.size L(PIO4J),.-L(PIO4J)
 
 	.p2align 3
 L(_FPI): /* 4/Pi broken into sum of positive DP values */
@@ -393,7 +393,7 @@ L(_FPI): /* 4/Pi broken into sum of posi
 	.long	0x24000000,0x1964ce7d
 	.long	0x16000000,0x17b908bf
 	.type L(_FPI), @object
-	ASM_SIZE_DIRECTIVE(L(_FPI))
+	.size L(_FPI),.-L(_FPI)
 
 /* Coefficients of polynomial
  for cos(x)~=1.0+x^2*DP_COS2_0+x^4*DP_COS2_1, |x|<2^-5.  */
@@ -401,27 +401,27 @@ L(_FPI): /* 4/Pi broken into sum of posi
 L(DP_COS2_0):
 	.long	0xff5cc6fd,0xbfdfffff
 	.type L(DP_COS2_0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_COS2_0))
+	.size L(DP_COS2_0),.-L(DP_COS2_0)
 
 	.p2align 3
 L(DP_COS2_1):
 	.long	0xb178dac5,0x3fa55514
 	.type L(DP_COS2_1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_COS2_1))
+	.size L(DP_COS2_1),.-L(DP_COS2_1)
 
 	.p2align 3
 L(DP_ZERONE):
 	.long	0x00000000,0x00000000	/* 0.0 */
 	.long	0x00000000,0xbff00000	/* 1.0 */
 	.type L(DP_ZERONE),@object
-	ASM_SIZE_DIRECTIVE(L(DP_ZERONE))
+	.size L(DP_ZERONE),.-L(DP_ZERONE)
 
 	.p2align 3
 L(DP_ONES):
 	.long	0x00000000,0x3ff00000	/* +1.0 */
 	.long	0x00000000,0xbff00000	/* -1.0 */
 	.type L(DP_ONES), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ONES))
+	.size L(DP_ONES),.-L(DP_ONES)
 
 /* Coefficients of polynomial
  for sin(t)~=t+t^3*(S0+t^2*(S1+t^2*(S2+t^2*(S3+t^2*S4)))), |t|<Pi/4.  */
@@ -429,31 +429,31 @@ L(DP_ONES):
 L(DP_S3):
 	.long	0x64e6b5b4,0x3ec71d72
 	.type L(DP_S3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S3))
+	.size L(DP_S3),.-L(DP_S3)
 
 	.p2align 3
 L(DP_S1):
 	.long	0x10c2688b,0x3f811111
 	.type L(DP_S1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S1))
+	.size L(DP_S1),.-L(DP_S1)
 
 	.p2align 3
 L(DP_S4):
 	.long	0x1674b58a,0xbe5a947e
 	.type L(DP_S4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S4))
+	.size L(DP_S4),.-L(DP_S4)
 
 	.p2align 3
 L(DP_S2):
 	.long	0x8b4bd1f9,0xbf2a019f
 	.type L(DP_S2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S2))
+	.size L(DP_S2),.-L(DP_S2)
 
 	.p2align 3
 L(DP_S0):
 	.long	0x55551cd9,0xbfc55555
 	.type L(DP_S0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S0))
+	.size L(DP_S0),.-L(DP_S0)
 
 /* Coefficients of polynomial
  for cos(t)~=1.0+t^2*(C0+t^2*(C1+t^2*(C2+t^2*(C3+t^2*C4)))), |t|<Pi/4.  */
@@ -461,93 +461,93 @@ L(DP_S0):
 L(DP_C3):
 	.long	0x9ac43cc0,0x3efa00eb
 	.type L(DP_C3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C3))
+	.size L(DP_C3),.-L(DP_C3)
 
 	.p2align 3
 L(DP_C1):
 	.long	0x545c50c7,0x3fa55555
 	.type L(DP_C1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C1))
+	.size L(DP_C1),.-L(DP_C1)
 
 	.p2align 3
 L(DP_C4):
 	.long	0xdd8844d7,0xbe923c97
 	.type L(DP_C4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C4))
+	.size L(DP_C4),.-L(DP_C4)
 
 	.p2align 3
 L(DP_C2):
 	.long	0x348b6874,0xbf56c16b
 	.type L(DP_C2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C2))
+	.size L(DP_C2),.-L(DP_C2)
 
 	.p2align 3
 L(DP_C0):
 	.long	0xfffe98ae,0xbfdfffff
 	.type L(DP_C0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C0))
+	.size L(DP_C0),.-L(DP_C0)
 
 	.p2align 3
 L(DP_PIO4):
 	.long	0x54442d18,0x3fe921fb	/* Pi/4 */
 	.type L(DP_PIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4))
+	.size L(DP_PIO4),.-L(DP_PIO4)
 
 	.p2align 3
 L(DP_2POW52):
 	.long	0x00000000,0x43300000	/* +2^52 */
 	.long	0x00000000,0xc3300000	/* -2^52 */
 	.type L(DP_2POW52), @object
-	ASM_SIZE_DIRECTIVE(L(DP_2POW52))
+	.size L(DP_2POW52),.-L(DP_2POW52)
 
 	.p2align 3
 L(DP_INVPIO4):
 	.long	0x6dc9c883,0x3ff45f30	/* 4/Pi */
 	.type L(DP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_INVPIO4))
+	.size L(DP_INVPIO4),.-L(DP_INVPIO4)
 
 	.p2align 3
 L(DP_PIO4HI):
 	.long	0x54000000,0xbfe921fb	/* High part of Pi/4 */
 	.type L(DP_PIO4HI), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4HI))
+	.size L(DP_PIO4HI),.-L(DP_PIO4HI)
 
 	.p2align 3
 L(DP_PIO4LO):
 	.long	0x11A62633,0xbe010b46	/* Low part of Pi/4 */
 	.type L(DP_PIO4LO), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4LO))
+	.size L(DP_PIO4LO),.-L(DP_PIO4LO)
 
 	.p2align 2
 L(SP_INVPIO4):
 	.long	0x3fa2f983		/* 4/Pi */
 	.type L(SP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INVPIO4))
+	.size L(SP_INVPIO4),.-L(SP_INVPIO4)
 
 	.p2align 4
 L(DP_ABS_MASK): /* Mask for getting DP absolute value */
 	.long	0xffffffff,0x7fffffff
 	.long	0xffffffff,0x7fffffff
 	.type L(DP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
+	.size L(DP_ABS_MASK),.-L(DP_ABS_MASK)
 
 	.p2align 3
 L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
 	.long	0x00000000,0xffffffff
 	.type L(DP_HI_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
+	.size L(DP_HI_MASK),.-L(DP_HI_MASK)
 
 	.p2align 4
 L(SP_ABS_MASK): /* Mask for getting SP absolute value */
 	.long	0x7fffffff,0x7fffffff
 	.long	0x7fffffff,0x7fffffff
 	.type L(SP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ABS_MASK))
+	.size L(SP_ABS_MASK),.-L(SP_ABS_MASK)
 
 	.p2align 2
 L(SP_ONE):
 	.long	0x3f800000		/* 1.0 */
 	.type L(SP_ONE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ONE))
+	.size L(SP_ONE),.-L(SP_ONE)
 
 weak_alias (__cosf, cosf)
--- libc/sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S.mp	2012-09-17 11:15:53.020387149 +0200
+++ libc/sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S	2012-09-17 15:38:46.797311824 +0200
@@ -383,7 +383,7 @@ L(PIO4J): /* Table of j*Pi/4, for j=0,1,
 	.long	0xbeccb2bb,0x401c463a
 	.long	0x2955385e,0x401f6a7a
 	.type L(PIO4J), @object
-	ASM_SIZE_DIRECTIVE(L(PIO4J))
+	.size L(PIO4J),.-L(PIO4J)
 
 	.p2align 3
 L(_FPI): /* 4/Pi broken into sum of positive DP values */
@@ -413,7 +413,7 @@ L(_FPI): /* 4/Pi broken into sum of posi
 	.long	0x24000000,0x1964ce7d
 	.long	0x16000000,0x17b908bf
 	.type L(_FPI), @object
-	ASM_SIZE_DIRECTIVE(L(_FPI))
+	.size L(_FPI),.-L(_FPI)
 
 /* Coefficients of polynomial
    for sin(x)~=x+x^3*DP_SIN2_0+x^5*DP_SIN2_1, |x|<2^-5.  */
@@ -421,27 +421,27 @@ L(_FPI): /* 4/Pi broken into sum of posi
 L(DP_SIN2_0):
 	.long	0x5543d49d,0xbfc55555
 	.type L(DP_SIN2_0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SIN2_0))
+	.size L(DP_SIN2_0),.-L(DP_SIN2_0)
 
 	.p2align 3
 L(DP_SIN2_1):
 	.long	0x75cec8c5,0x3f8110f4
 	.type L(DP_SIN2_1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SIN2_1))
+	.size L(DP_SIN2_1),.-L(DP_SIN2_1)
 
 	.p2align 3
 L(DP_ZERONE):
 	.long	0x00000000,0x00000000	/* 0.0 */
 	.long	0x00000000,0xbff00000	/* 1.0 */
 	.type L(DP_ZERONE), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ZERONE))
+	.size L(DP_ZERONE),.-L(DP_ZERONE)
 
 	.p2align 3
 L(DP_ONES):
 	.long	0x00000000,0x3ff00000	/* +1.0 */
 	.long	0x00000000,0xbff00000	/* -1.0 */
 	.type L(DP_ONES), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ONES))
+	.size L(DP_ONES),.-L(DP_ONES)
 
 /* Coefficients of polynomial
    for sin(t)~=t+t^3*(S0+t^2*(S1+t^2*(S2+t^2*(S3+t^2*S4)))), |t|<Pi/4.  */
@@ -449,37 +449,37 @@ L(DP_ONES):
 L(DP_S3):
 	.long	0x64e6b5b4,0x3ec71d72
 	.type L(DP_S3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S3))
+	.size L(DP_S3),.-L(DP_S3)
 
 	.p2align 3
 L(DP_S1):
 	.long	0x10c2688b,0x3f811111
 	.type L(DP_S1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S1))
+	.size L(DP_S1),.-L(DP_S1)
 
 	.p2align 3
 L(DP_S4):
 	.long	0x1674b58a,0xbe5a947e
 	.type L(DP_S4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S4))
+	.size L(DP_S4),.-L(DP_S4)
 
 	.p2align 3
 L(DP_S2):
 	.long	0x8b4bd1f9,0xbf2a019f
 	.type L(DP_S2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S2))
+	.size L(DP_S2),.-L(DP_S2)
 
 	.p2align 3
 L(DP_S0):
 	.long	0x55551cd9,0xbfc55555
 	.type L(DP_S0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S0))
+	.size L(DP_S0),.-L(DP_S0)
 
 	.p2align 3
 L(DP_SMALL):
 	.long	0x00000000,0x3cd00000	/* 2^(-50) */
 	.type L(DP_SMALL), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SMALL))
+	.size L(DP_SMALL),.-L(DP_SMALL)
 
 /* Coefficients of polynomial
    for cos(t)~=1.0+t^2*(C0+t^2*(C1+t^2*(C2+t^2*(C3+t^2*C4)))), |t|<Pi/4.  */
@@ -487,80 +487,80 @@ L(DP_SMALL):
 L(DP_C3):
 	.long	0x9ac43cc0,0x3efa00eb
 	.type L(DP_C3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C3))
+	.size L(DP_C3),.-L(DP_C3)
 
 	.p2align 3
 L(DP_C1):
 	.long	0x545c50c7,0x3fa55555
 	.type L(DP_C1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C1))
+	.size L(DP_C1),.-L(DP_C1)
 
 	.p2align 3
 L(DP_C4):
 	.long	0xdd8844d7,0xbe923c97
 	.type L(DP_C4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C4))
+	.size L(DP_C4),.-L(DP_C4)
 
 	.p2align 3
 L(DP_C2):
 	.long	0x348b6874,0xbf56c16b
 	.type L(DP_C2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C2))
+	.size L(DP_C2),.-L(DP_C2)
 
 	.p2align 3
 L(DP_C0):
 	.long	0xfffe98ae,0xbfdfffff
 	.type L(DP_C0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C0))
+	.size L(DP_C0),.-L(DP_C0)
 
 	.p2align 3
 L(DP_PIO4):
 	.long	0x54442d18,0x3fe921fb	/* Pi/4 */
 	.type L(DP_PIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4))
+	.size L(DP_PIO4),.-L(DP_PIO4)
 
 	.p2align 3
 L(DP_2POW52):
 	.long	0x00000000,0x43300000	/* +2^52 */
 	.long	0x00000000,0xc3300000	/* -2^52 */
 	.type L(DP_2POW52), @object
-	ASM_SIZE_DIRECTIVE(L(DP_2POW52))
+	.size L(DP_2POW52),.-L(DP_2POW52)
 
 	.p2align 3
 L(DP_INVPIO4):
 	.long	0x6dc9c883,0x3ff45f30	/* 4/Pi */
 	.type L(DP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_INVPIO4))
+	.size L(DP_INVPIO4),.-L(DP_INVPIO4)
 
 	.p2align 3
 L(DP_PIO4HI):
 	.long	0x54000000,0xbfe921fb	/* High part of Pi/4 */
 	.type L(DP_PIO4HI), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4HI))
+	.size L(DP_PIO4HI),.-L(DP_PIO4HI)
 
 	.p2align 3
 L(DP_PIO4LO):
 	.long	0x11A62633,0xbe010b46	/* Low part of Pi/4 */
 	.type L(DP_PIO4LO), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4LO))
+	.size L(DP_PIO4LO),.-L(DP_PIO4LO)
 
 	.p2align 2
 L(SP_INVPIO4):
 	.long	0x3fa2f983		/* 4/Pi */
 	.type L(SP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INVPIO4))
+	.size L(SP_INVPIO4),.-L(SP_INVPIO4)
 
 	.p2align 4
 L(DP_ABS_MASK): /* Mask for getting DP absolute value */
 	.long	0xffffffff,0x7fffffff
 	.long	0xffffffff,0x7fffffff
 	.type L(DP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
+	.size L(DP_ABS_MASK),.-L(DP_ABS_MASK)
 
 	.p2align 3
 L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
 	.long	0x00000000,0xffffffff
 	.type L(DP_HI_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
+	.size L(DP_HI_MASK),.-L(DP_HI_MASK)
 
 weak_alias (__sinf, sinf)
--- libc/sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S.mp	2012-09-17 11:15:53.023387159 +0200
+++ libc/sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S	2012-09-17 15:38:46.798311827 +0200
@@ -244,81 +244,81 @@ L(DP_T): /* table of double precision va
 	.long	0x5b6e4540, 0x3fff5076
 	.long	0x819e90d8, 0x3fffa7c1
 	.type L(DP_T), @object
-	ASM_SIZE_DIRECTIVE(L(DP_T))
+	.size L(DP_T),.-L(DP_T)
 
 	.section .rodata.cst8,"aM",@progbits,8
 	.p2align 3
 L(DP_KLN2): /* double precision K/log(2) */
 	.long	0x652b82fe, 0x40571547
 	.type L(DP_KLN2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_KLN2))
+	.size L(DP_KLN2),.-L(DP_KLN2)
 
 	.p2align 3
 L(DP_NLN2K): /* double precision -log(2)/K */
 	.long	0xfefa39ef, 0xbf862e42
 	.type L(DP_NLN2K), @object
-	ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
+	.size L(DP_NLN2K),.-L(DP_NLN2K)
 
 	.p2align 3
 L(DP_RS): /* double precision 2^23+2^22 */
 	.long	0x00000000, 0x41680000
 	.type L(DP_RS), @object
-	ASM_SIZE_DIRECTIVE(L(DP_RS))
+	.size L(DP_RS),.-L(DP_RS)
 
 	.p2align 3
 L(DP_P3): /* double precision polynomial coefficient P3 */
 	.long	0xeb78fa85, 0x3fa56420
 	.type L(DP_P3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P3))
+	.size L(DP_P3),.-L(DP_P3)
 
 	.p2align 3
 L(DP_P1): /* double precision polynomial coefficient P1 */
 	.long	0x008d6118, 0x3fe00000
 	.type L(DP_P1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P1))
+	.size L(DP_P1),.-L(DP_P1)
 
 	.p2align 3
 L(DP_P2): /* double precision polynomial coefficient P2 */
 	.long	0xda752d4f, 0x3fc55550
 	.type L(DP_P2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P2))
+	.size L(DP_P2),.-L(DP_P2)
 
 	.p2align 3
 L(DP_P0): /* double precision polynomial coefficient P0 */
 	.long	0xffffe7c6, 0x3fefffff
 	.type L(DP_P0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P0))
+	.size L(DP_P0),.-L(DP_P0)
 
 	.p2align 2
 L(SP_INF_0):
 	.long	0x7f800000	/* single precision Inf */
 	.long	0		/* single precision zero */
 	.type L(SP_INF_0), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INF_0))
+	.size L(SP_INF_0),.-L(SP_INF_0)
 
 	.section .rodata.cst4,"aM",@progbits,4
 	.p2align 2
 L(SP_RS): /* single precision 2^23+2^22 */
 	.long	0x4b400000
 	.type L(SP_RS), @object
-	ASM_SIZE_DIRECTIVE(L(SP_RS))
+	.size L(SP_RS),.-L(SP_RS)
 
 	.p2align 2
 L(SP_SMALL): /* single precision small value 2^(-100) */
 	.long	0x0d800000
 	.type L(SP_SMALL), @object
-	ASM_SIZE_DIRECTIVE(L(SP_SMALL))
+	.size L(SP_SMALL),.-L(SP_SMALL)
 
 	.p2align 2
 L(SP_LARGE): /* single precision large value 2^100 */
 	.long	0x71800000
 	.type L(SP_LARGE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_LARGE))
+	.size L(SP_LARGE),.-L(SP_LARGE)
 
 	.p2align 2
 L(SP_ONE): /* single precision 1.0 */
 	.long	0x3f800000
 	.type L(SP_ONE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ONE))
+	.size L(SP_ONE),.-L(SP_ONE)
 
 strong_alias (__ieee754_expf_sse2, __expf_finite_sse2)
--- libc/sysdeps/i386/i686/fpu/e_logl.S.mp	2012-09-17 11:15:53.019387145 +0200
+++ libc/sysdeps/i386/i686/fpu/e_logl.S	2012-09-17 15:38:46.799311830 +0200
@@ -14,13 +14,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/i386/sysdep.h.mp	2012-09-17 11:15:53.024387162 +0200
+++ libc/sysdeps/i386/sysdep.h	2012-09-17 15:44:21.895328656 +0200
@@ -1,6 +1,5 @@
 /* Assembler macros for i386.
-   Copyright (C) 1991-93,95,96,98,2002,2003,2005,2006,2011,2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1991-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -50,7 +49,6 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C.
@@ -69,7 +67,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)
+  .size name,.-name
 
 #define ENTRY_CHK(name) ENTRY (name)
 #define END_CHK(name) END (name)
--- libc/sysdeps/i386/i386-mcount.S.mp	2012-09-17 11:15:53.025387165 +0200
+++ libc/sysdeps/i386/i386-mcount.S	2012-09-17 15:38:46.800311833 +0200
@@ -48,7 +48,7 @@ C_LABEL(_mcount)
 	popl %ecx
 	popl %eax
 	ret
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+	.size C_SYMBOL_NAME(_mcount),.-C_SYMBOL_NAME(_mcount)
 
 #undef mcount
 weak_alias (_mcount, mcount)
@@ -76,4 +76,4 @@ C_LABEL(__fentry__)
 	popl %ecx
 	popl %eax
 	ret
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__fentry__))
+	.size C_SYMBOL_NAME(__fentry__),.-C_SYMBOL_NAME(__fentry__)
--- libc/sysdeps/x86_64/fpu/e_expl.S.mp	2012-09-17 11:15:53.027387171 +0200
+++ libc/sysdeps/x86_64/fpu/e_expl.S	2012-09-17 15:38:46.801311836 +0200
@@ -45,26 +45,26 @@
 	.type c0,@object
 c0:	.byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c0)
+	.size c0,.-c0
 	.type c1,@object
 c1:	.byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c1)
+	.size c1,.-c1
 #else
 	.type c0,@object
 c0:	.byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c0)
+	.size c0,.-c0
 	.type c1,@object
 c1:	.byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c1)
+	.size c1,.-c1
 #endif
 #ifndef USE_AS_EXPM1L
 	.type csat,@object
 csat:	.byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(csat)
+	.size csat,.-csat
 #endif
 
 #ifdef PIC
--- libc/sysdeps/x86_64/fpu/e_log2l.S.mp	2012-09-17 11:15:53.037387203 +0200
+++ libc/sysdeps/x86_64/fpu/e_log2l.S	2012-09-17 15:38:46.801311836 +0200
@@ -14,13 +14,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/x86_64/fpu/s_cosf.S.mp	2012-09-17 11:15:53.028387174 +0200
+++ libc/sysdeps/x86_64/fpu/s_cosf.S	2012-09-17 15:38:46.802311840 +0200
@@ -337,7 +337,7 @@ L(PIO4J): /* Table of j*Pi/4, for j=0,1,
 	.long	0xbeccb2bb,0x401c463a
 	.long	0x2955385e,0x401f6a7a
 	.type L(PIO4J), @object
-	ASM_SIZE_DIRECTIVE(L(PIO4J))
+	.size L(PIO4J),.-L(PIO4J)
 
 	.p2align 3
 L(_FPI): /* 4/Pi broken into sum of positive DP values */
@@ -367,7 +367,7 @@ L(_FPI): /* 4/Pi broken into sum of posi
 	.long	0x24000000,0x1964ce7d
 	.long	0x16000000,0x17b908bf
 	.type L(_FPI), @object
-	ASM_SIZE_DIRECTIVE(L(_FPI))
+	.size L(_FPI),.-L(_FPI)
 
 /* Coefficients of polynomial
    for cos(x)~=1.0+x^2*DP_COS2_0+x^4*DP_COS2_1, |x|<2^-5.  */
@@ -375,27 +375,27 @@ L(_FPI): /* 4/Pi broken into sum of posi
 L(DP_COS2_0):
 	.long	0xff5cc6fd,0xbfdfffff
 	.type L(DP_COS2_0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_COS2_0))
+	.size L(DP_COS2_0),.-L(DP_COS2_0)
 
 	.p2align 3
 L(DP_COS2_1):
 	.long	0xb178dac5,0x3fa55514
 	.type L(DP_COS2_1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_COS2_1))
+	.size L(DP_COS2_1),.-L(DP_COS2_1)
 
 	.p2align 3
 L(DP_ZERONE):
 	.long	0x00000000,0x00000000	/* 0.0 */
 	.long	0x00000000,0xbff00000	/* 1.0 */
 	.type L(DP_ZERONE), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ZERONE))
+	.size L(DP_ZERONE),.-L(DP_ZERONE)
 
 	.p2align 3
 L(DP_ONES):
 	.long	0x00000000,0x3ff00000	/* +1.0 */
 	.long	0x00000000,0xbff00000	/* -1.0 */
 	.type L(DP_ONES), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ONES))
+	.size L(DP_ONES),.-L(DP_ONES)
 
 /* Coefficients of polynomial
    for sin(t)~=t+t^3*(S0+t^2*(S1+t^2*(S2+t^2*(S3+t^2*S4)))), |t|<Pi/4.  */
@@ -403,31 +403,31 @@ L(DP_ONES):
 L(DP_S3):
 	.long	0x64e6b5b4,0x3ec71d72
 	.type L(DP_S3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S3))
+	.size L(DP_S3),.-L(DP_S3)
 
 	.p2align 3
 L(DP_S1):
 	.long	0x10c2688b,0x3f811111
 	.type L(DP_S1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S1))
+	.size L(DP_S1),.-L(DP_S1)
 
 	.p2align 3
 L(DP_S4):
 	.long	0x1674b58a,0xbe5a947e
 	.type L(DP_S4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S4))
+	.size L(DP_S4),.-L(DP_S4)
 
 	.p2align 3
 L(DP_S2):
 	.long	0x8b4bd1f9,0xbf2a019f
 	.type L(DP_S2),@object
-	ASM_SIZE_DIRECTIVE(L(DP_S2))
+	.size L(DP_S2),.-L(DP_S2)
 
 	.p2align 3
 L(DP_S0):
 	.long	0x55551cd9,0xbfc55555
 	.type L(DP_S0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S0))
+	.size L(DP_S0),.-L(DP_S0)
 
 /* Coefficients of polynomial
    for cos(t)~=1.0+t^2*(C0+t^2*(C1+t^2*(C2+t^2*(C3+t^2*C4)))), |t|<Pi/4.  */
@@ -435,93 +435,93 @@ L(DP_S0):
 L(DP_C3):
 	.long	0x9ac43cc0,0x3efa00eb
 	.type L(DP_C3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C3))
+	.size L(DP_C3),.-L(DP_C3)
 
 	.p2align 3
 L(DP_C1):
 	.long	0x545c50c7,0x3fa55555
 	.type L(DP_C1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C1))
+	.size L(DP_C1),.-L(DP_C1)
 
 	.p2align 3
 L(DP_C4):
 	.long	0xdd8844d7,0xbe923c97
 	.type L(DP_C4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C4))
+	.size L(DP_C4),.-L(DP_C4)
 
 	.p2align 3
 L(DP_C2):
 	.long	0x348b6874,0xbf56c16b
 	.type L(DP_C2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C2))
+	.size L(DP_C2),.-L(DP_C2)
 
 	.p2align 3
 L(DP_C0):
 	.long	0xfffe98ae,0xbfdfffff
 	.type L(DP_C0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C0))
+	.size L(DP_C0),.-L(DP_C0)
 
 	.p2align 3
 L(DP_PIO4):
 	.long	0x54442d18,0x3fe921fb	/* Pi/4 */
 	.type L(DP_PIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4))
+	.size L(DP_PIO4),.-L(DP_PIO4)
 
 	.p2align 3
 L(DP_2POW52):
 	.long	0x00000000,0x43300000	/* +2^52 */
 	.long	0x00000000,0xc3300000	/* -2^52 */
 	.type L(DP_2POW52), @object
-	ASM_SIZE_DIRECTIVE(L(DP_2POW52))
+	.size L(DP_2POW52),.-L(DP_2POW52)
 
 	.p2align 3
 L(DP_INVPIO4):
 	.long	0x6dc9c883,0x3ff45f30	/* 4/Pi */
 	.type L(DP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_INVPIO4))
+	.size L(DP_INVPIO4),.-L(DP_INVPIO4)
 
 	.p2align 3
 L(DP_PIO4HI):
 	.long	0x54000000,0xbfe921fb	/* High part of Pi/4 */
 	.type L(DP_PIO4HI), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4HI))
+	.size L(DP_PIO4HI),.-L(DP_PIO4HI)
 
 	.p2align 3
 L(DP_PIO4LO):
 	.long	0x11A62633,0xbe010b46	/* Low part of Pi/4 */
 	.type L(DP_PIO4LO), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4LO))
+	.size L(DP_PIO4LO),.-L(DP_PIO4LO)
 
 	.p2align 2
 L(SP_INVPIO4):
 	.long	0x3fa2f983		/* 4/Pi */
 	.type L(SP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INVPIO4))
+	.size L(SP_INVPIO4),.-L(SP_INVPIO4)
 
 	.p2align 4
 L(DP_ABS_MASK): /* Mask for getting DP absolute value */
 	.long	0xffffffff,0x7fffffff
 	.long	0xffffffff,0x7fffffff
 	.type L(DP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
+	.size L(DP_ABS_MASK),.-L(DP_ABS_MASK)
 
 	.p2align 3
 L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
 	.long	0x00000000,0xffffffff
 	.type L(DP_HI_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
+	.size L(DP_HI_MASK),.-L(DP_HI_MASK)
 
 	.p2align 4
 L(SP_ABS_MASK): /* Mask for getting SP absolute value */
 	.long	0x7fffffff,0x7fffffff
 	.long	0x7fffffff,0x7fffffff
 	.type L(SP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ABS_MASK))
+	.size L(SP_ABS_MASK),.-L(SP_ABS_MASK)
 
 	.p2align 2
 L(SP_ONE):
 	.long	0x3f800000		/* 1.0 */
 	.type L(SP_ONE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ONE))
+	.size L(SP_ONE),.-L(SP_ONE)
 
 weak_alias(__cosf, cosf)
--- libc/sysdeps/x86_64/fpu/e_powl.S.mp	2012-09-17 11:15:53.032387186 +0200
+++ libc/sysdeps/x86_64/fpu/e_powl.S	2012-09-17 15:38:46.802311840 +0200
@@ -1,6 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996-1999, 2001, 2004, 2007, 2011-2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -25,19 +24,19 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 	.type p63,@object
 p63:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
-	ASM_SIZE_DIRECTIVE(p63)
+	.size p63,.-p63
 	.type p64,@object
 p64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
-	ASM_SIZE_DIRECTIVE(p64)
+	.size p64,.-p64
 	.type p78,@object
 p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
-	ASM_SIZE_DIRECTIVE(p78)
+	.size p78,.-p78
 
 	.section .rodata.cst16,"aM",@progbits,16
 
@@ -46,17 +45,17 @@ p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
-	ASM_SIZE_DIRECTIVE(infinity)
+	.size infinity,.-infinity
 	.type zero,@object
 zero:	.double 0.0
-	ASM_SIZE_DIRECTIVE(zero)
+	.size zero,.-zero
 	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
 mzero:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
-	ASM_SIZE_DIRECTIVE(minf_mzero)
+	.size minf_mzero,.-minf_mzero
 
 #ifdef PIC
 # define MO(op) op##(%rip)
--- libc/sysdeps/x86_64/fpu/s_sinf.S.mp	2012-09-17 11:15:53.029387177 +0200
+++ libc/sysdeps/x86_64/fpu/s_sinf.S	2012-09-17 15:38:46.803311844 +0200
@@ -363,7 +363,7 @@ L(PIO4J): /* Table of j*Pi/4, for j=0,1,
 	.long	0xbeccb2bb,0x401c463a
 	.long	0x2955385e,0x401f6a7a
 	.type L(PIO4J), @object
-	ASM_SIZE_DIRECTIVE(L(PIO4J))
+	.size L(PIO4J),.-L(PIO4J)
 
 	.p2align 3
 L(_FPI): /* 4/Pi broken into sum of positive DP values */
@@ -393,7 +393,7 @@ L(_FPI): /* 4/Pi broken into sum of posi
 	.long	0x24000000,0x1964ce7d
 	.long	0x16000000,0x17b908bf
 	.type L(_FPI), @object
-	ASM_SIZE_DIRECTIVE(L(_FPI))
+	.size L(_FPI),.-L(_FPI)
 
 /* Coefficients of polynomial
    for sin(x)~=x+x^3*DP_SIN2_0+x^5*DP_SIN2_1, |x|<2^-5.  */
@@ -401,27 +401,27 @@ L(_FPI): /* 4/Pi broken into sum of posi
 L(DP_SIN2_0):
 	.long	0x5543d49d,0xbfc55555
 	.type L(DP_SIN2_0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SIN2_0))
+	.size L(DP_SIN2_0),.-L(DP_SIN2_0)
 
 	.p2align 3
 L(DP_SIN2_1):
 	.long	0x75cec8c5,0x3f8110f4
 	.type L(DP_SIN2_1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SIN2_1))
+	.size L(DP_SIN2_1),.-L(DP_SIN2_1)
 
 	.p2align 3
 L(DP_ZERONE):
 	.long	0x00000000,0x00000000	/* 0.0 */
 	.long	0x00000000,0xbff00000	/* 1.0 */
 	.type L(DP_ZERONE), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ZERONE))
+	.size L(DP_ZERONE),.-L(DP_ZERONE)
 
 	.p2align 3
 L(DP_ONES):
 	.long	0x00000000,0x3ff00000	/* +1.0 */
 	.long	0x00000000,0xbff00000	/* -1.0 */
 	.type L(DP_ONES), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ONES))
+	.size L(DP_ONES),.-L(DP_ONES)
 
 /* Coefficients of polynomial
    for sin(t)~=t+t^3*(S0+t^2*(S1+t^2*(S2+t^2*(S3+t^2*S4)))), |t|<Pi/4.  */
@@ -429,37 +429,37 @@ L(DP_ONES):
 L(DP_S3):
 	.long	0x64e6b5b4,0x3ec71d72
 	.type L(DP_S3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S3))
+	.size L(DP_S3),.-L(DP_S3)
 
 	.p2align 3
 L(DP_S1):
 	.long	0x10c2688b,0x3f811111
 	.type L(DP_S1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S1))
+	.size L(DP_S1),.-L(DP_S1)
 
 	.p2align 3
 L(DP_S4):
 	.long	0x1674b58a,0xbe5a947e
 	.type L(DP_S4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S4))
+	.size L(DP_S4),.-L(DP_S4)
 
 	.p2align 3
 L(DP_S2):
 	.long	0x8b4bd1f9,0xbf2a019f
 	.type L(DP_S2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S2))
+	.size L(DP_S2),.-L(DP_S2)
 
 	.p2align 3
 L(DP_S0):
 	.long	0x55551cd9,0xbfc55555
 	.type L(DP_S0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S0))
+	.size L(DP_S0),.-L(DP_S0)
 
 	.p2align 3
 L(DP_SMALL):
 	.long	0x00000000,0x3cd00000	/* 2^(-50) */
 	.type L(DP_SMALL), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SMALL))
+	.size L(DP_SMALL),.-L(DP_SMALL)
 
 /* Coefficients of polynomial
    for cos(t)~=1.0+t^2*(C0+t^2*(C1+t^2*(C2+t^2*(C3+t^2*C4)))), |t|<Pi/4.  */
@@ -467,87 +467,87 @@ L(DP_SMALL):
 L(DP_C3):
 	.long	0x9ac43cc0,0x3efa00eb
 	.type L(DP_C3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C3))
+	.size L(DP_C3),.-L(DP_C3)
 
 	.p2align 3
 L(DP_C1):
 	.long	0x545c50c7,0x3fa55555
 	.type L(DP_C1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C1))
+	.size L(DP_C1),.-L(DP_C1)
 
 	.p2align 3
 L(DP_C4):
 	.long	0xdd8844d7,0xbe923c97
 	.type L(DP_C4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C4))
+	.size L(DP_C4),.-L(DP_C4)
 
 	.p2align 3
 L(DP_C2):
 	.long	0x348b6874,0xbf56c16b
 	.type L(DP_C2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C2))
+	.size L(DP_C2),.-L(DP_C2)
 
 	.p2align 3
 L(DP_C0):
 	.long	0xfffe98ae,0xbfdfffff
 	.type L(DP_C0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C0))
+	.size L(DP_C0),.-L(DP_C0)
 
 	.p2align 3
 L(DP_PIO4):
 	.long	0x54442d18,0x3fe921fb	/* Pi/4 */
 	.type L(DP_PIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4))
+	.size L(DP_PIO4),.-L(DP_PIO4)
 
 	.p2align 3
 L(DP_2POW52):
 	.long	0x00000000,0x43300000	/* +2^52 */
 	.long	0x00000000,0xc3300000	/* -2^52 */
 	.type L(DP_2POW52), @object
-	ASM_SIZE_DIRECTIVE(L(DP_2POW52))
+	.size L(DP_2POW52),.-L(DP_2POW52)
 
 	.p2align 3
 L(DP_INVPIO4):
 	.long	0x6dc9c883,0x3ff45f30	/* 4/Pi */
 	.type L(DP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_INVPIO4))
+	.size L(DP_INVPIO4),.-L(DP_INVPIO4)
 
 	.p2align 3
 L(DP_PIO4HI):
 	.long	0x54000000,0xbfe921fb	/* High part of Pi/4 */
 	.type L(DP_PIO4HI), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4HI))
+	.size L(DP_PIO4HI),.-L(DP_PIO4HI)
 
 	.p2align 3
 L(DP_PIO4LO):
 	.long	0x11A62633,0xbe010b46	/* Low part of Pi/4 */
 	.type L(DP_PIO4LO), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4LO))
+	.size L(DP_PIO4LO),.-L(DP_PIO4LO)
 
 	.p2align 2
 L(SP_INVPIO4):
 	.long	0x3fa2f983		/* 4/Pi */
 	.type L(SP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INVPIO4))
+	.size L(SP_INVPIO4),.-L(SP_INVPIO4)
 
 	.p2align 4
 L(DP_ABS_MASK): /* Mask for getting DP absolute value */
 	.long	0xffffffff,0x7fffffff
 	.long	0xffffffff,0x7fffffff
 	.type L(DP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
+	.size L(DP_ABS_MASK),.-L(DP_ABS_MASK)
 
 	.p2align 3
 L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
 	.long	0x00000000,0xffffffff
 	.type L(DP_HI_MASK),@object
-	ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
+	.size L(DP_HI_MASK),.-L(DP_HI_MASK)
 
 	.p2align 4
 L(SP_ABS_MASK): /* Mask for getting SP absolute value */
 	.long	0x7fffffff,0x7fffffff
 	.long	0x7fffffff,0x7fffffff
 	.type L(SP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ABS_MASK))
+	.size L(SP_ABS_MASK),.-L(SP_ABS_MASK)
 
 weak_alias(__sinf, sinf)
--- libc/sysdeps/x86_64/fpu/e_logl.S.mp	2012-09-17 11:15:53.026387168 +0200
+++ libc/sysdeps/x86_64/fpu/e_logl.S	2012-09-17 15:38:46.804311847 +0200
@@ -14,13 +14,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/x86_64/fpu/e_expf.S.mp	2012-09-17 11:15:53.036387200 +0200
+++ libc/sysdeps/x86_64/fpu/e_expf.S	2012-09-17 15:38:46.805311850 +0200
@@ -252,88 +252,88 @@ L(DP_T): /* table of double precision va
 	.long	0x5b6e4540, 0x3fff5076
 	.long	0x819e90d8, 0x3fffa7c1
 	.type L(DP_T), @object
-	ASM_SIZE_DIRECTIVE(L(DP_T))
+	.size L(DP_T),.-L(DP_T)
 
 	.section .rodata.cst8,"aM",@progbits,8
 	.p2align 3
 L(DP_KLN2): /* double precision K/log(2) */
 	.long	0x652b82fe, 0x40571547
 	.type L(DP_KLN2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_KLN2))
+	.size L(DP_KLN2),.-L(DP_KLN2)
 
 	.p2align 3
 L(DP_NLN2K): /* double precision -log(2)/K */
 	.long	0xfefa39ef, 0xbf862e42
 	.type L(DP_NLN2K), @object
-	ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
+	.size L(DP_NLN2K),.-L(DP_NLN2K)
 
 	.p2align 3
 L(DP_RS): /* double precision 2^23+2^22 */
 	.long	0x00000000, 0x41680000
 	.type L(DP_RS), @object
-	ASM_SIZE_DIRECTIVE(L(DP_RS))
+	.size L(DP_RS),.-L(DP_RS)
 
 	.p2align 3
 L(DP_P3): /* double precision polynomial coefficient P3 */
 	.long	0xeb78fa85, 0x3fa56420
 	.type L(DP_P3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P3))
+	.size L(DP_P3),.-L(DP_P3)
 
 	.p2align 3
 L(DP_P1): /* double precision polynomial coefficient P1 */
 	.long	0x008d6118, 0x3fe00000
 	.type L(DP_P1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P1))
+	.size L(DP_P1),.-L(DP_P1)
 
 	.p2align 3
 L(DP_P2): /* double precision polynomial coefficient P2 */
 	.long	0xda752d4f, 0x3fc55550
 	.type L(DP_P2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P2))
+	.size L(DP_P2),.-L(DP_P2)
 
 	.p2align 3
 L(DP_P0): /* double precision polynomial coefficient P0 */
 	.long	0xffffe7c6, 0x3fefffff
 	.type L(DP_P0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P0))
+	.size L(DP_P0),.-L(DP_P0)
 
 	.p2align 2
 L(SP_RANGE): /* single precision overflow/underflow bounds */
 	.long	0x42b17217	/* if x>this bound, then result overflows */
 	.long	0x42cff1b4	/* if x<this bound, then result underflows */
 	.type L(SP_RANGE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_RANGE))
+	.size L(SP_RANGE),.-L(SP_RANGE)
 
 	.p2align 2
 L(SP_INF_0):
 	.long	0x7f800000	/* single precision Inf */
 	.long	0		/* single precision zero */
 	.type L(SP_INF_0), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INF_0))
+	.size L(SP_INF_0),.-L(SP_INF_0)
 
 	.section .rodata.cst4,"aM",@progbits,4
 	.p2align 2
 L(SP_RS): /* single precision 2^23+2^22 */
 	.long	0x4b400000
 	.type L(SP_RS), @object
-	ASM_SIZE_DIRECTIVE(L(SP_RS))
+	.size L(SP_RS),.-L(SP_RS)
 
 	.p2align 2
 L(SP_SMALL): /* single precision small value 2^(-100) */
 	.long	0x0d800000
 	.type L(SP_SMALL), @object
-	ASM_SIZE_DIRECTIVE(L(SP_SMALL))
+	.size L(SP_SMALL),.-L(SP_SMALL)
 
 	.p2align 2
 L(SP_LARGE): /* single precision large value 2^100 */
 	.long	0x71800000
 	.type L(SP_LARGE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_LARGE))
+	.size L(SP_LARGE),.-L(SP_LARGE)
 
 	.p2align 2
 L(SP_ONE): /* single precision 1.0 */
 	.long	0x3f800000
 	.type L(SP_ONE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ONE))
+	.size L(SP_ONE),.-L(SP_ONE)
 
 strong_alias (__ieee754_expf, __expf_finite)
--- libc/sysdeps/x86_64/fpu/e_log10l.S.mp	2012-09-17 11:15:53.031387183 +0200
+++ libc/sysdeps/x86_64/fpu/e_log10l.S	2012-09-17 15:38:46.806311853 +0200
@@ -15,13 +15,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	.size one,.-one
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	.size limit,.-limit
 
 
 #ifdef PIC
--- libc/sysdeps/x86_64/fpu/s_copysignf.S.mp	2012-09-17 11:15:53.034387192 +0200
+++ libc/sysdeps/x86_64/fpu/s_copysignf.S	2012-09-17 15:38:46.807311856 +0200
@@ -1,5 +1,5 @@
 /* copy sign, double version.
-   Copyright (C) 2002, 2006, 2012 Free Software Foundation, Inc.
+   Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 2002.
 
@@ -25,7 +25,7 @@
 	.type mask,@object
 mask:
 	.byte 0xff, 0xff, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(mask)
+	.size mask,.-mask
 
 #ifdef PIC
 #define MO(op) op##(%rip)
--- libc/sysdeps/x86_64/fpu/s_copysign.S.mp	2012-09-17 11:15:53.033387189 +0200
+++ libc/sysdeps/x86_64/fpu/s_copysign.S	2012-09-17 15:38:46.807311856 +0200
@@ -1,5 +1,5 @@
 /* copy sign, double version.
-   Copyright (C) 2002, 2006, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 2002.
 
@@ -26,12 +26,12 @@
 signmask:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(signmask)
+	.size signmask,.-signmask
 	.type othermask,@object
 othermask:
 	.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(othermask)
+	.size othermask,.-othermask
 
 #ifdef PIC
 #define MO(op) op##(%rip)
--- libc/sysdeps/x86_64/fpu/e_scalbl.S.mp	2012-09-17 11:15:53.039387209 +0200
+++ libc/sysdeps/x86_64/fpu/e_scalbl.S	2012-09-17 15:38:46.808311859 +0200
@@ -19,7 +19,7 @@ zero_nan:
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(zero_nan)
+	.size zero_nan,.-zero_nan
 
 
 #ifdef PIC
--- libc/sysdeps/x86_64/_mcount.S.mp	2012-09-17 11:15:53.040387212 +0200
+++ libc/sysdeps/x86_64/_mcount.S	2012-09-17 15:38:46.809311862 +0200
@@ -60,7 +60,7 @@ C_LABEL(_mcount)
 	addq	$56,%rsp
 	ret
 
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+	.size C_SYMBOL_NAME(_mcount),.-C_SYMBOL_NAME(_mcount)
 
 #undef mcount
 weak_alias (_mcount, mcount)
@@ -101,4 +101,4 @@ C_LABEL(__fentry__)
 	addq	$64,%rsp
 	ret
 
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__fentry__))
+	.size C_SYMBOL_NAME(__fentry__),.-C_SYMBOL_NAME(__fentry__)
--- libc/sysdeps/x86_64/sysdep.h.mp	2012-09-17 11:15:53.041387215 +0200
+++ libc/sysdeps/x86_64/sysdep.h	2012-09-17 15:38:46.809311862 +0200
@@ -1,5 +1,5 @@
 /* Assembler macros for x86-64.
-   Copyright (C) 2001, 2002, 2003, 2011, 2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,6 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C.  */
@@ -42,7 +41,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)
+  .size name,.-name
 
 #define ENTRY_CHK(name) ENTRY (name)
 #define END_CHK(name) END (name)
--- libc/sysdeps/sh/_mcount.S.mp	2012-09-17 11:15:53.043387221 +0200
+++ libc/sysdeps/sh/_mcount.S	2012-09-17 15:38:46.810311865 +0200
@@ -81,7 +81,7 @@ C_LABEL(_mcount)
 1:	.long	C_SYMBOL_NAME(__mcount_internal)
 #endif
 	cfi_endproc
-ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+	.size C_SYMBOL_NAME(_mcount),.-C_SYMBOL_NAME(_mcount)
 
 #undef mcount
 weak_alias (_mcount, mcount)
--- libc/sysdeps/sh/sysdep.h.mp	2012-09-17 11:15:53.044387224 +0200
+++ libc/sysdeps/sh/sysdep.h	2012-09-17 15:38:46.810311865 +0200
@@ -1,5 +1,5 @@
 /* Assembler macros for SH.
-   Copyright (C) 1999, 2000, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +23,6 @@
 /* Syntactic details of assembler.  */
 
 #define ALIGNARG(log2) log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 #ifdef SHARED
 #define PLTJMP(_x)	_x##@PLT
@@ -44,7 +43,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name))
+  .size C_SYMBOL_NAME(name),.-C_SYMBOL_NAME(name)
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #ifdef	PROF
--- libc/sysdeps/powerpc/sysdep.h.mp	2012-09-17 11:15:53.045387227 +0200
+++ libc/sysdeps/powerpc/sysdep.h	2012-09-17 15:38:46.810311865 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2001-2002, 2006, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -147,6 +147,5 @@
 
 /* This seems to always be the case on PPC.  */
 #define ALIGNARG(log2) log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 #endif	/* __ASSEMBLER__ */
--- libc/sysdeps/powerpc/powerpc64/start.S.mp	2012-09-17 11:15:53.046387230 +0200
+++ libc/sysdeps/powerpc/powerpc64/start.S	2012-09-17 15:38:46.811311868 +0200
@@ -1,6 +1,5 @@
 /* Startup code for programs linked with GNU libc.  PowerPC64 version.
-   Copyright (C) 1998,1999,2000,2001,2002,2003,2009
-   Free Software Foundation, Inc.
+   Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -51,7 +50,7 @@ L(start_addresses):
 	.quad 	__libc_csu_init
 	.quad 	__libc_csu_fini
 
-	ASM_SIZE_DIRECTIVE(L(start_addresses))
+	.size L(start_addresses),.-L(start_addresses)
 
 	.section	".toc","aw"
 .L01:
--- libc/sysdeps/powerpc/powerpc32/start.S.mp	2012-09-17 11:15:53.048387236 +0200
+++ libc/sysdeps/powerpc/powerpc32/start.S	2012-09-17 15:38:46.811311868 +0200
@@ -1,6 +1,5 @@
 /* Startup code for programs linked with GNU libc.
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -49,7 +48,7 @@ L(start_addresses):
 	.long	BP_SYM (main)
 	.long 	__libc_csu_init
 	.long 	__libc_csu_fini
-	ASM_SIZE_DIRECTIVE(L(start_addresses))
+	.size L(start_addresses),.-L(start_addresses)
 
 	.section ".text"
 ENTRY(_start)
--- libc/sysdeps/powerpc/powerpc32/sysdep.h.mp	2012-09-17 11:15:53.047387233 +0200
+++ libc/sysdeps/powerpc/powerpc32/sysdep.h	2012-09-17 15:38:46.812311871 +0200
@@ -1,6 +1,5 @@
 /* Assembly macros for 32-bit PowerPC.
-   Copyright (C) 1999, 2001-2003, 2006, 2011-2012
-	Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -87,7 +86,7 @@ GOT_LABEL:			;					      \
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)
+  .size name,.-size
 
 #define DO_CALL(syscall)						      \
     li 0,syscall;							      \

	Marek

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE
  2012-09-17 14:20 [PATCH] Get rid of ASM_SIZE_DIRECTIVE Marek Polacek
@ 2012-09-17 15:04 ` Carlos O'Donell
  2012-09-17 15:22   ` Marek Polacek
  2012-09-17 15:25 ` Andreas Schwab
  1 sibling, 1 reply; 22+ messages in thread
From: Carlos O'Donell @ 2012-09-17 15:04 UTC (permalink / raw)
  To: Marek Polacek
  Cc: libc-alpha, libc-ports, Kaz Kojima, Andreas Krebbel, David Miller

On 9/17/2012 10:19 AM, Marek Polacek wrote:
> Removal of ASM_SIZE_DIRECTIVE macro.  I did not touch the ports/
> directory.  Tested x86_64 and i?86, tested also {libc,ld}.so with 
> objdump -dr.  Could you please also test sh, ppc, and s390
> as well?  Thanks.  Ok for trunk?

I'm sorry if I'm asking a dumb question, but why are we removing ASM_SIZE_DIRECTIVE?

Did we agree that it's easier to read ".size ..." and that a macro for this is just superfluous?

Cheers,
Carlos.
-- 
Carlos O'Donell
Mentor Graphics / CodeSourcery
carlos_odonell@mentor.com
carlos@codesourcery.com
+1 (613) 963 1026

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE
  2012-09-17 15:04 ` Carlos O'Donell
@ 2012-09-17 15:22   ` Marek Polacek
  0 siblings, 0 replies; 22+ messages in thread
From: Marek Polacek @ 2012-09-17 15:22 UTC (permalink / raw)
  To: Carlos O'Donell
  Cc: libc-alpha, libc-ports, Kaz Kojima, Andreas Krebbel, David Miller

On Mon, Sep 17, 2012 at 11:03:50AM -0400, Carlos O'Donell wrote:
> Did we agree that it's easier to read ".size ..." and that a macro for this is just superfluous?

Since we only support ELF, and we got rid of ASM_GLOBAL_DIRECTIVE,
and ASM_TYPE_DIRECTIVE{,_PREFIX}, removal of ASM_SIZE_DIRECTIVE,
which is also remnant from not-only-ELF era now, looks like another
logical step.

	Marek

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE
  2012-09-17 14:20 [PATCH] Get rid of ASM_SIZE_DIRECTIVE Marek Polacek
  2012-09-17 15:04 ` Carlos O'Donell
@ 2012-09-17 15:25 ` Andreas Schwab
  2012-09-17 15:35   ` Marek Polacek
  2012-09-17 18:43   ` [PATCH] Get rid of ASM_SIZE_DIRECTIVE Mike Frysinger
  1 sibling, 2 replies; 22+ messages in thread
From: Andreas Schwab @ 2012-09-17 15:25 UTC (permalink / raw)
  To: Marek Polacek
  Cc: libc-alpha, libc-ports, Kaz Kojima, Andreas Krebbel, David Miller

Marek Polacek <polacek@redhat.com> writes:

> Removal of ASM_SIZE_DIRECTIVE macro.

The macro has some merits in that it avoids repeating the function
name.  I think it should just be moved out of the sysdep.h files.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE
  2012-09-17 15:25 ` Andreas Schwab
@ 2012-09-17 15:35   ` Marek Polacek
  2012-09-17 16:00     ` Carlos O'Donell
  2012-09-17 19:25     ` Roland McGrath
  2012-09-17 18:43   ` [PATCH] Get rid of ASM_SIZE_DIRECTIVE Mike Frysinger
  1 sibling, 2 replies; 22+ messages in thread
From: Marek Polacek @ 2012-09-17 15:35 UTC (permalink / raw)
  To: Andreas Schwab
  Cc: libc-alpha, libc-ports, Kaz Kojima, Andreas Krebbel,
	David Miller, Roland McGrath

On Mon, Sep 17, 2012 at 05:24:50PM +0200, Andreas Schwab wrote:
> Marek Polacek <polacek@redhat.com> writes:
> 
> > Removal of ASM_SIZE_DIRECTIVE macro.
> 
> The macro has some merits in that it avoids repeating the function
> name.  I think it should just be moved out of the sysdep.h files.

This sounds good to.  I'd like to hear from Roland first though,
as he's the one who asked me to do this ;).

	Marek

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE
  2012-09-17 15:35   ` Marek Polacek
@ 2012-09-17 16:00     ` Carlos O'Donell
  2012-09-17 19:25     ` Roland McGrath
  1 sibling, 0 replies; 22+ messages in thread
From: Carlos O'Donell @ 2012-09-17 16:00 UTC (permalink / raw)
  To: Marek Polacek
  Cc: Andreas Schwab, libc-alpha, libc-ports, Kaz Kojima,
	Andreas Krebbel, David Miller, Roland McGrath

On 9/17/2012 11:34 AM, Marek Polacek wrote:
> On Mon, Sep 17, 2012 at 05:24:50PM +0200, Andreas Schwab wrote:
>> Marek Polacek <polacek@redhat.com> writes:
>>
>>> Removal of ASM_SIZE_DIRECTIVE macro.
>>
>> The macro has some merits in that it avoids repeating the function
>> name.  I think it should just be moved out of the sysdep.h files.
> 
> This sounds good to.  I'd like to hear from Roland first though,
> as he's the one who asked me to do this ;).

I have no opinion one way or the other.

The only problem I have was with the lack of rationale given in the patch email :-)

Cheers,
Carlos.
-- 
Carlos O'Donell
Mentor Graphics / CodeSourcery
carlos_odonell@mentor.com
carlos@codesourcery.com
+1 (613) 963 1026

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE
  2012-09-17 15:25 ` Andreas Schwab
  2012-09-17 15:35   ` Marek Polacek
@ 2012-09-17 18:43   ` Mike Frysinger
  1 sibling, 0 replies; 22+ messages in thread
From: Mike Frysinger @ 2012-09-17 18:43 UTC (permalink / raw)
  To: libc-alpha
  Cc: Andreas Schwab, Marek Polacek, libc-ports, Kaz Kojima,
	Andreas Krebbel, David Miller

[-- Attachment #1: Type: Text/Plain, Size: 374 bytes --]

On Monday 17 September 2012 11:24:50 Andreas Schwab wrote:
> Marek Polacek <polacek@redhat.com> writes:
> > Removal of ASM_SIZE_DIRECTIVE macro.
> 
> The macro has some merits in that it avoids repeating the function
> name.  I think it should just be moved out of the sysdep.h files.

i also like how it hides the esoteric use of the current location symbol
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE
  2012-09-17 15:35   ` Marek Polacek
  2012-09-17 16:00     ` Carlos O'Donell
@ 2012-09-17 19:25     ` Roland McGrath
  2012-09-17 19:53       ` Marek Polacek
  1 sibling, 1 reply; 22+ messages in thread
From: Roland McGrath @ 2012-09-17 19:25 UTC (permalink / raw)
  To: Marek Polacek
  Cc: Andreas Schwab, libc-alpha, libc-ports, Kaz Kojima,
	Andreas Krebbel, David Miller

Having helper macros that we use in our code is certainly fine, and
appropriate when code using the macros is more concise, easier to maintain,
etc.  That's a separate issue from de-conditionalizing things.

ASM_SIZE_DIRECTIVE is a useful macro, though it has a very poor choice of
name.  The macro looks like it should expand just to ".size", like the
ASM_GLOBAL_DIRECTIVE expanded just to ".globl".  We don't need a macro for
that.  A shorthand macro is most useful when it has a short name.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE
  2012-09-17 19:25     ` Roland McGrath
@ 2012-09-17 19:53       ` Marek Polacek
  2012-09-17 20:01         ` Roland McGrath
  0 siblings, 1 reply; 22+ messages in thread
From: Marek Polacek @ 2012-09-17 19:53 UTC (permalink / raw)
  To: Roland McGrath
  Cc: Andreas Schwab, libc-alpha, libc-ports, Kaz Kojima,
	Andreas Krebbel, David Miller

On Mon, Sep 17, 2012 at 12:25:08PM -0700, Roland McGrath wrote:
> Having helper macros that we use in our code is certainly fine, and
> appropriate when code using the macros is more concise, easier to maintain,
> etc.  That's a separate issue from de-conditionalizing things.
> 
> ASM_SIZE_DIRECTIVE is a useful macro, though it has a very poor choice of
> name.  The macro looks like it should expand just to ".size", like the
> ASM_GLOBAL_DIRECTIVE expanded just to ".globl".  We don't need a macro for
> that.  A shorthand macro is most useful when it has a short name.

So, what about renaming it to ASM_SIZE, remove definitions in sysdep.h
headers and moving the definion of ASM_SIZE into say libc-symbols.h?

	Marek

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE
  2012-09-17 19:53       ` Marek Polacek
@ 2012-09-17 20:01         ` Roland McGrath
  2012-09-18  8:22           ` [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2) Marek Polacek
  0 siblings, 1 reply; 22+ messages in thread
From: Roland McGrath @ 2012-09-17 20:01 UTC (permalink / raw)
  To: Marek Polacek
  Cc: Andreas Schwab, libc-alpha, libc-ports, Kaz Kojima,
	Andreas Krebbel, David Miller

> So, what about renaming it to ASM_SIZE, remove definitions in sysdep.h
> headers and moving the definion of ASM_SIZE into say libc-symbols.h?

The name seems odd for something that you only use in assembly code.
I'd go with SYMBOL_SIZE or SIZED_SYMBOL.  Putting it in libc-symbols.h
is fine.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-17 20:01         ` Roland McGrath
@ 2012-09-18  8:22           ` Marek Polacek
  2012-09-18 17:07             ` Roland McGrath
  2012-09-18 19:06             ` Joseph S. Myers
  0 siblings, 2 replies; 22+ messages in thread
From: Marek Polacek @ 2012-09-18  8:22 UTC (permalink / raw)
  To: Roland McGrath
  Cc: Andreas Schwab, libc-alpha, libc-ports, Kaz Kojima,
	Andreas Krebbel, David Miller

On Mon, Sep 17, 2012 at 01:01:29PM -0700, Roland McGrath wrote:
> > So, what about renaming it to ASM_SIZE, remove definitions in sysdep.h
> > headers and moving the definion of ASM_SIZE into say libc-symbols.h?
> 
> The name seems odd for something that you only use in assembly code.
> I'd go with SYMBOL_SIZE or SIZED_SYMBOL.  Putting it in libc-symbols.h
> is fine.

Like this?  Tested x86_64/i?86, also objdump -dr check on
{libc,ld}.so.  Ok for trunk?

2012-09-18  Marek Polacek  <polacek@redhat.com>

	[BZ #14414]
	* include/libc-symbols.h [__ASSEMBLER__] (SYMBOL_SIZE): Define macro.
	* sysdeps/s390/s390-32/sysdep.h (ASM_SIZE_DIRECTIVE): Remove macro.
	Replace ASM_SIZE_DIRECTIVE with SYMBOL_SIZE.
	* sysdeps/s390/s390-64/sysdep.h: Likewise.
	* sysdeps/i386/sysdep.h: Likewise.
	* sysdeps/sh/sysdep.h: Likewise.
	* sysdeps/x86_64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
	(ASM_SIZE_DIRECTIVE): Remove macro.
	* sysdeps/powerpc/sysdep.h: Likewise.
	* sysdeps/s390/s390-32/s390-mcount.S: Replace ASM_SIZE_DIRECTIVE with
	SYMBOL_SIZE.
	* sysdeps/s390/s390-64/s390x-mcount.S: Likewise.
	* sysdeps/mach/hurd/powerpc/static-start.S: Likewise.
	* sysdeps/i386/fpu/e_powf.S: Likewise.
	* sysdeps/i386/fpu/e_expl.S: Likewise.
	* sysdeps/i386/fpu/e_atanhf.S: Likewise.
	* sysdeps/i386/fpu/e_acosh.S: Likewise.
	* sysdeps/i386/fpu/e_pow.S: Likewise.
	* sysdeps/i386/fpu/s_asinhl.S: Likewise.
	* sysdeps/i386/fpu/e_acoshl.S: Likewise.
	* sysdeps/i386/fpu/s_expm1.S: Likewise.
	* sysdeps/i386/fpu/s_frexpf.S: Likewise.
	* sysdeps/i386/fpu/e_log2.S: Likewise.
	* sysdeps/i386/fpu/e_log2l.S: Likewise.
	* sysdeps/i386/fpu/e_scalb.S: Likewise.
	* sysdeps/i386/fpu/e_powl.S: Likewise.
	* sysdeps/i386/fpu/e_log10f.S: Likewise.
	* sysdeps/i386/fpu/s_cbrtf.S: Likewise.
	* sysdeps/i386/fpu/e_logl.S: Likewise.
	* sysdeps/i386/fpu/s_cbrt.S: Likewise.
	* sysdeps/i386/fpu/s_frexpl.S: Likewise.
	* sysdeps/i386/fpu/s_expm1f.S: Likewise.
	* sysdeps/i386/fpu/e_log2f.S: Likewise.
	* sysdeps/i386/fpu/e_acoshf.S: Likewise.
	* sysdeps/i386/fpu/e_log.S: Likewise.
	* sysdeps/i386/fpu/e_scalbf.S: Likewise.
	* sysdeps/i386/fpu/e_logf.S: Likewise.
	* sysdeps/i386/fpu/e_log10l.S: Likewise.
	* sysdeps/i386/fpu/e_atanh.S: Likewise.
	* sysdeps/i386/fpu/s_asinhf.S: Likewise.
	* sysdeps/i386/fpu/e_log10.S: Likewise.
	* sysdeps/i386/fpu/s_frexp.S: Likewise.
	* sysdeps/i386/fpu/e_atanhl.S: Likewise.
	* sysdeps/i386/fpu/s_asinh.S: Likewise.
	* sysdeps/i386/fpu/s_cbrtl.S: Likewise.
	* sysdeps/i386/fpu/e_scalbl.S: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S: Likewise.
	* sysdeps/i386/i686/fpu/e_logl.S: Likewise.
	* sysdeps/i386/i386-mcount.S: Likewise.
	* sysdeps/x86_64/fpu/e_expl.S: Likewise.
	* sysdeps/x86_64/fpu/e_log2l.S: Likewise.
	* sysdeps/x86_64/fpu/s_cosf.S: Likewise.
	* sysdeps/x86_64/fpu/e_powl.S: Likewise.
	* sysdeps/x86_64/fpu/s_sinf.S: Likewise.
	* sysdeps/x86_64/fpu/e_logl.S: Likewise.
	* sysdeps/x86_64/fpu/e_expf.S: Likewise.
	* sysdeps/x86_64/fpu/e_log10l.S: Likewise.
	* sysdeps/x86_64/fpu/s_copysignf.S: Likewise.
	* sysdeps/x86_64/fpu/s_copysign.S: Likewise.
	* sysdeps/x86_64/fpu/e_scalbl.S: Likewise.
	* sysdeps/x86_64/_mcount.S: Likewise.
	* sysdeps/sh/_mcount.S: Likewise.
	* sysdeps/powerpc/powerpc64/start.S: Likewise.
	* sysdeps/powerpc/powerpc32/start.S: Likewise.
	* sysdeps/powerpc/powerpc32/sysdep.h: Likewise.

--- libc/include/libc-symbols.h.mp	2012-09-18 07:54:23.247862500 +0200
+++ libc/include/libc-symbols.h	2012-09-18 08:02:10.619410332 +0200
@@ -111,6 +111,8 @@
 
 #else /* __ASSEMBLER__ */
 
+# define SYMBOL_SIZE(name) .size name,.-name
+
 # ifdef HAVE_ASM_SET_DIRECTIVE
 #  ifdef HAVE_ASM_GLOBAL_DOT_NAME
 #   define strong_alias(original, alias)				\
--- libc/sysdeps/s390/s390-32/sysdep.h.mp	2012-09-18 08:11:25.676948861 +0200
+++ libc/sysdeps/s390/s390-32/sysdep.h	2012-09-18 08:13:12.575245165 +0200
@@ -1,5 +1,5 @@
 /* Assembler macros for s390.
-   Copyright (C) 2000, 2001, 2003, 2012 Free Software Foundation, Inc.
+   Copyright (C) 2000-2012 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
@@ -25,7 +25,6 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C. */
@@ -40,7 +39,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)						      \
+  SYMBOL_SIZE(name)
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #ifdef	PROF
--- libc/sysdeps/s390/s390-32/s390-mcount.S.mp	2012-09-18 08:15:31.273487549 +0200
+++ libc/sysdeps/s390/s390-32/s390-mcount.S	2012-09-18 08:21:25.493453023 +0200
@@ -83,7 +83,7 @@ C_LABEL(_mcount)
 	cfi_adjust_cfa_offset (-128)
 	br    %r14
 	cfi_endproc
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+	SYMBOL_SIZE(C_SYMBOL_NAME(_mcount))
 
 #undef mcount
 weak_alias (_mcount, mcount)
--- libc/sysdeps/s390/s390-64/sysdep.h.mp	2012-09-18 08:09:51.585688057 +0200
+++ libc/sysdeps/s390/s390-64/sysdep.h	2012-09-18 08:13:35.482308660 +0200
@@ -1,5 +1,5 @@
 /* Assembler macros for 64 bit S/390.
-   Copyright (C) 2001, 2003, 2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2012 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
@@ -25,7 +25,6 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C. */
@@ -40,7 +39,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)						      \
+  SYMBOL_SIZE(name)
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #ifdef	PROF
--- libc/sysdeps/s390/s390-64/s390x-mcount.S.mp	2012-09-18 08:15:31.274487551 +0200
+++ libc/sysdeps/s390/s390-64/s390x-mcount.S	2012-09-18 08:21:25.493453023 +0200
@@ -71,7 +71,7 @@ C_LABEL(_mcount)
 	cfi_adjust_cfa_offset (-224)
         br    %r14
 	cfi_endproc
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+	SYMBOL_SIZE(C_SYMBOL_NAME(_mcount))
 
 #undef mcount
 weak_alias (_mcount, mcount)
--- libc/sysdeps/mach/hurd/powerpc/static-start.S.mp	2012-09-18 08:15:31.275487554 +0200
+++ libc/sysdeps/mach/hurd/powerpc/static-start.S	2012-09-18 08:30:50.963944687 +0200
@@ -1,5 +1,5 @@
 /* Startup code for statically linked Hurd/PowerPC binaries.
-   Copyright (C) 1998,2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -28,7 +28,7 @@ L(start_addresses):
 	.long	JUMPTARGET(main)
 	.long	JUMPTARGET(__libc_csu_init)
 	.long	JUMPTARGET(__libc_csu_fini)
-	ASM_SIZE_DIRECTIVE(L(start_addresses))
+	SYMBOL_SIZE(L(start_addresses))
 
 	.section ".text"
 ENTRY(_start)
--- libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h.mp	2012-09-18 08:09:16.740591471 +0200
+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h	2012-09-18 08:09:41.536660203 +0200
@@ -1,5 +1,4 @@
-/* Copyright (C) 1992,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2012
-	Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -58,7 +57,6 @@
 
 /* This seems to always be the case on PPC.  */
 # define ALIGNARG(log2) log2
-# define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 #endif /* __ASSEMBLER__ */
 
--- libc/sysdeps/i386/fpu/e_powf.S.mp	2012-09-18 08:15:31.323487685 +0200
+++ libc/sysdeps/i386/fpu/e_powf.S	2012-09-18 08:31:09.218998741 +0200
@@ -1,6 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996-1997, 1999, 2001, 2004, 2005, 2007, 2011-2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -25,13 +24,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 	.type p31,@object
 p31:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x41
-	ASM_SIZE_DIRECTIVE(p31)
+	SYMBOL_SIZE(p31)
 
 	.section .rodata.cst16,"aM",@progbits,16
 
@@ -40,17 +39,17 @@ p31:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x41
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
-	ASM_SIZE_DIRECTIVE(infinity)
+	SYMBOL_SIZE(infinity)
 	.type zero,@object
 zero:	.double 0.0
-	ASM_SIZE_DIRECTIVE(zero)
+	SYMBOL_SIZE(zero)
 	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
 mzero:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
-	ASM_SIZE_DIRECTIVE(minf_mzero)
+	SYMBOL_SIZE(minf_mzero)
 
 #ifdef PIC
 # define MO(op) op##@GOTOFF(%ecx)
--- libc/sysdeps/i386/fpu/e_expl.S.mp	2012-09-18 08:15:31.281487572 +0200
+++ libc/sysdeps/i386/fpu/e_expl.S	2012-09-18 08:21:25.527453113 +0200
@@ -45,26 +45,26 @@
 	.type c0,@object
 c0:	.byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c0)
+	SYMBOL_SIZE(c0)
 	.type c1,@object
 c1:	.byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c1)
+	SYMBOL_SIZE(c1)
 #else
 	.type c0,@object
 c0:	.byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c0)
+	SYMBOL_SIZE(c0)
 	.type c1,@object
 c1:	.byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c1)
+	SYMBOL_SIZE(c1)
 #endif
 #ifndef USE_AS_EXPM1L
 	.type csat,@object
 csat:	.byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(csat)
+	SYMBOL_SIZE(csat)
 #endif
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_atanhf.S.mp	2012-09-18 08:15:31.278487563 +0200
+++ libc/sysdeps/i386/fpu/e_atanhf.S	2012-09-18 08:31:19.440029007 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arctanh function.
-   Copyright (C) 1996, 1999, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,17 +24,17 @@
 	.align ALIGNARG(4)
 	.type half,@object
 half:	.double 0.5
-	ASM_SIZE_DIRECTIVE(half)
+	SYMBOL_SIZE(half)
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 	.align ALIGNARG(4)
 	.type ln2_2,@object
 ln2_2:	.tfloat 0.3465735902799726547086160
-	ASM_SIZE_DIRECTIVE(ln2_2)
+	SYMBOL_SIZE(ln2_2)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_acosh.S.mp	2012-09-18 08:15:31.277487560 +0200
+++ libc/sysdeps/i386/fpu/e_acosh.S	2012-09-18 08:31:26.373049538 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,10 +24,10 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_pow.S.mp	2012-09-18 08:15:31.282487574 +0200
+++ libc/sysdeps/i386/fpu/e_pow.S	2012-09-18 08:32:07.727171991 +0200
@@ -1,6 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996-1999, 2001, 2004-2005, 2007, 2011-2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -25,16 +24,16 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 	.type p63,@object
 p63:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
-	ASM_SIZE_DIRECTIVE(p63)
+	SYMBOL_SIZE(p63)
 	.type p10,@object
 p10:	.byte 0, 0, 0, 0, 0, 0, 0x90, 0x40
-	ASM_SIZE_DIRECTIVE(p10)
+	SYMBOL_SIZE(p10)
 
 	.section .rodata.cst16,"aM",@progbits,16
 
@@ -43,17 +42,17 @@ p10:	.byte 0, 0, 0, 0, 0, 0, 0x90, 0x40
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
-	ASM_SIZE_DIRECTIVE(infinity)
+	SYMBOL_SIZE(infinity)
 	.type zero,@object
 zero:	.double 0.0
-	ASM_SIZE_DIRECTIVE(zero)
+	SYMBOL_SIZE(zero)
 	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
 mzero:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
-	ASM_SIZE_DIRECTIVE(minf_mzero)
+	SYMBOL_SIZE(minf_mzero)
 
 #ifdef PIC
 # define MO(op) op##@GOTOFF(%ecx)
--- libc/sysdeps/i386/fpu/s_asinhl.S.mp	2012-09-18 08:15:31.280487569 +0200
+++ libc/sysdeps/i386/fpu/s_asinhl.S	2012-09-18 08:32:13.947190410 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,20 +24,20 @@
 	.align ALIGNARG(4)
 	.type huge,@object
 huge:	.tfloat 1e+4930
-	ASM_SIZE_DIRECTIVE(huge)
+	SYMBOL_SIZE(huge)
 	.align ALIGNARG(4)
 	/* Please note that we use double value for 1.0.  This number
 	   has an exact representation and so we don't get accuracy
 	   problems.  The advantage is that the code is simpler.  */
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_acoshl.S.mp	2012-09-18 08:15:31.327487697 +0200
+++ libc/sysdeps/i386/fpu/e_acoshl.S	2012-09-18 08:32:23.401218405 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -27,13 +27,13 @@
 	   problems.  The advantage is that the code is simpler.  */
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_expm1.S.mp	2012-09-18 08:15:31.288487590 +0200
+++ libc/sysdeps/i386/fpu/s_expm1.S	2012-09-18 08:32:29.188235539 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of exp(x)-1.
-   Copyright (C) 1996-1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
    Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
@@ -29,13 +29,13 @@
 	.align ALIGNARG(4)
 	.type minus1,@object
 minus1:	.double -1.0
-	ASM_SIZE_DIRECTIVE(minus1)
+	SYMBOL_SIZE(minus1)
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type l2e,@object
 l2e:	.tfloat 1.442695040888963407359924681002
-	ASM_SIZE_DIRECTIVE(l2e)
+	SYMBOL_SIZE(l2e)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_frexpf.S.mp	2012-09-18 08:15:31.334487715 +0200
+++ libc/sysdeps/i386/fpu/s_frexpf.S	2012-09-18 08:32:41.076270742 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific frexp implementation for float.
-   Copyright (C) 1997, 2000, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -26,7 +26,7 @@
 	.align ALIGNARG(4)
 	.type two25,@object
 two25:	.byte 0, 0, 0, 0x4c
-	ASM_SIZE_DIRECTIVE(two25)
+	SYMBOL_SIZE(two25)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_log2.S.mp	2012-09-18 08:15:31.311487653 +0200
+++ libc/sysdeps/i386/fpu/e_log2.S	2012-09-18 08:21:25.532453128 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_log2l.S.mp	2012-09-18 08:15:31.325487691 +0200
+++ libc/sysdeps/i386/fpu/e_log2l.S	2012-09-18 08:21:25.540453150 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_scalb.S.mp	2012-09-18 08:15:31.316487666 +0200
+++ libc/sysdeps/i386/fpu/e_scalb.S	2012-09-18 08:21:25.536453140 +0200
@@ -16,7 +16,7 @@ zero_nan:
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(zero_nan)
+	SYMBOL_SIZE(zero_nan)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_powl.S.mp	2012-09-18 08:15:31.312487656 +0200
+++ libc/sysdeps/i386/fpu/e_powl.S	2012-09-18 08:34:16.739554010 +0200
@@ -1,6 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996-1999, 2001, 2004-2005, 2007, 2011-2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -25,19 +24,19 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 	.type p63,@object
 p63:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
-	ASM_SIZE_DIRECTIVE(p63)
+	SYMBOL_SIZE(p63)
 	.type p64,@object
 p64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
-	ASM_SIZE_DIRECTIVE(p64)
+	SYMBOL_SIZE(p64)
 	.type p78,@object
 p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
-	ASM_SIZE_DIRECTIVE(p78)
+	SYMBOL_SIZE(p78)
 
 	.section .rodata.cst16,"aM",@progbits,16
 
@@ -46,17 +45,17 @@ p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
-	ASM_SIZE_DIRECTIVE(infinity)
+	SYMBOL_SIZE(infinity)
 	.type zero,@object
 zero:	.double 0.0
-	ASM_SIZE_DIRECTIVE(zero)
+	SYMBOL_SIZE(zero)
 	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
 mzero:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
-	ASM_SIZE_DIRECTIVE(minf_mzero)
+	SYMBOL_SIZE(minf_mzero)
 
 #ifdef PIC
 # define MO(op) op##@GOTOFF(%ecx)
--- libc/sysdeps/i386/fpu/e_log10f.S.mp	2012-09-18 08:15:31.319487673 +0200
+++ libc/sysdeps/i386/fpu/e_log10f.S	2012-09-18 08:21:25.537453143 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/s_cbrtf.S.mp	2012-09-18 08:15:31.315487664 +0200
+++ libc/sysdeps/i386/fpu/s_cbrtf.S	2012-09-18 08:34:34.906607805 +0200
@@ -1,5 +1,5 @@
 /* Compute cubic root of float value.
-   Copyright (C) 1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
    Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -25,13 +25,13 @@
         .align ALIGNARG(4)
         .type f3,@object
 f3:	.double 0.191502161678719066
-        ASM_SIZE_DIRECTIVE(f3)
+        SYMBOL_SIZE(f3)
         .type f2,@object
 f2:	.double 0.697570460207922770
-        ASM_SIZE_DIRECTIVE(f2)
+        SYMBOL_SIZE(f2)
         .type f1,@object
 f1:	.double 0.492659620528969547
-        ASM_SIZE_DIRECTIVE(f1)
+        SYMBOL_SIZE(f1)
 
 #define CBRT2		1.2599210498948731648
 #define ONE_CBRT2	0.793700525984099737355196796584
@@ -45,11 +45,11 @@ factor:	.double ONE_SQR_CBRT2
 	.double 1.0
 	.double CBRT2
 	.double SQR_CBRT2
-	ASM_SIZE_DIRECTIVE(factor)
+	SYMBOL_SIZE(factor)
 
         .type two25,@object
 two25:	.byte 0, 0, 0, 0x4c
-        ASM_SIZE_DIRECTIVE(two25)
+        SYMBOL_SIZE(two25)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%ebx)
--- libc/sysdeps/i386/fpu/e_logl.S.mp	2012-09-18 08:15:31.276487557 +0200
+++ libc/sysdeps/i386/fpu/e_logl.S	2012-09-18 08:21:25.494453026 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/s_cbrt.S.mp	2012-09-18 08:15:31.322487682 +0200
+++ libc/sysdeps/i386/fpu/s_cbrt.S	2012-09-18 08:34:42.672630800 +0200
@@ -1,5 +1,5 @@
 /* Compute cubic root of double value.
-   Copyright (C) 1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
    Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -25,25 +25,25 @@
         .align ALIGNARG(4)
         .type f7,@object
 f7:	.double -0.145263899385486377
-	ASM_SIZE_DIRECTIVE(f7)
+	SYMBOL_SIZE(f7)
         .type f6,@object
 f6:	.double 0.784932344976639262
-	ASM_SIZE_DIRECTIVE(f6)
+	SYMBOL_SIZE(f6)
         .type f5,@object
 f5:	.double -1.83469277483613086
-	ASM_SIZE_DIRECTIVE(f5)
+	SYMBOL_SIZE(f5)
         .type f4,@object
 f4:	.double 2.44693122563534430
-	ASM_SIZE_DIRECTIVE(f4)
+	SYMBOL_SIZE(f4)
         .type f3,@object
 f3:	.double -2.11499494167371287
-	ASM_SIZE_DIRECTIVE(f3)
+	SYMBOL_SIZE(f3)
         .type f2,@object
 f2:	.double 1.50819193781584896
-	ASM_SIZE_DIRECTIVE(f2)
+	SYMBOL_SIZE(f2)
         .type f1,@object
 f1:	.double 0.354895765043919860
-	ASM_SIZE_DIRECTIVE(f1)
+	SYMBOL_SIZE(f1)
 
 #define CBRT2		1.2599210498948731648
 #define ONE_CBRT2	0.793700525984099737355196796584
@@ -56,11 +56,11 @@ factor:	.double ONE_SQR_CBRT2
 	.double 1.0
 	.double CBRT2
 	.double SQR_CBRT2
-	ASM_SIZE_DIRECTIVE(factor)
+	SYMBOL_SIZE(factor)
 
         .type two54,@object
 two54:  .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
-        ASM_SIZE_DIRECTIVE(two54)
+        SYMBOL_SIZE(two54)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%ebx)
--- libc/sysdeps/i386/fpu/s_frexpl.S.mp	2012-09-18 08:15:31.285487581 +0200
+++ libc/sysdeps/i386/fpu/s_frexpl.S	2012-09-18 08:34:50.350653536 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific frexp implementation for long double.
-   Copyright (C) 1997, 2000-2001, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -26,7 +26,7 @@
 	.align ALIGNARG(4)
 	.type two64,@object
 two64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
-	ASM_SIZE_DIRECTIVE(two64)
+	SYMBOL_SIZE(two64)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_expm1f.S.mp	2012-09-18 08:15:31.321487679 +0200
+++ libc/sysdeps/i386/fpu/s_expm1f.S	2012-09-18 08:34:56.396671439 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of exp(x)-1.
-   Copyright (C) 1996-1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
    Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
@@ -29,13 +29,13 @@
 	.align ALIGNARG(4)
 	.type minus1,@object
 minus1:	.double -1.0
-	ASM_SIZE_DIRECTIVE(minus1)
+	SYMBOL_SIZE(minus1)
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type l2e,@object
 l2e:	.tfloat 1.442695040888963407359924681002
-	ASM_SIZE_DIRECTIVE(l2e)
+	SYMBOL_SIZE(l2e)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_log2f.S.mp	2012-09-18 08:15:31.286487584 +0200
+++ libc/sysdeps/i386/fpu/e_log2f.S	2012-09-18 08:21:25.530453122 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_acoshf.S.mp	2012-09-18 08:15:31.283487576 +0200
+++ libc/sysdeps/i386/fpu/e_acoshf.S	2012-09-18 08:35:28.728767177 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,10 +24,10 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_log.S.mp	2012-09-18 08:15:31.317487668 +0200
+++ libc/sysdeps/i386/fpu/e_log.S	2012-09-18 08:21:25.536453140 +0200
@@ -12,13 +12,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_scalbf.S.mp	2012-09-18 08:15:31.318487670 +0200
+++ libc/sysdeps/i386/fpu/e_scalbf.S	2012-09-18 08:21:25.537453143 +0200
@@ -17,7 +17,7 @@ zero_nan:
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(zero_nan)
+	SYMBOL_SIZE(zero_nan)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_logf.S.mp	2012-09-18 08:15:31.331487706 +0200
+++ libc/sysdeps/i386/fpu/e_logf.S	2012-09-18 08:21:25.542453155 +0200
@@ -13,13 +13,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_log10l.S.mp	2012-09-18 08:15:31.310487650 +0200
+++ libc/sysdeps/i386/fpu/e_log10l.S	2012-09-18 08:21:25.532453128 +0200
@@ -14,13 +14,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/e_atanh.S.mp	2012-09-18 08:15:31.320487676 +0200
+++ libc/sysdeps/i386/fpu/e_atanh.S	2012-09-18 08:35:40.426801817 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arctanh function.
-   Copyright (C) 1996, 1999, 2005, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,16 +24,16 @@
 	.align ALIGNARG(4)
 	.type half,@object
 half:	.double 0.5
-	ASM_SIZE_DIRECTIVE(half)
+	SYMBOL_SIZE(half)
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 	.type ln2_2,@object
 ln2_2:	.tfloat 0.3465735902799726547086160
-	ASM_SIZE_DIRECTIVE(ln2_2)
+	SYMBOL_SIZE(ln2_2)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_asinhf.S.mp	2012-09-18 08:15:31.290487596 +0200
+++ libc/sysdeps/i386/fpu/s_asinhf.S	2012-09-18 08:35:45.995818306 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 1999, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,13 +24,13 @@
 	.align ALIGNARG(4)
 	.type huge,@object
 huge:	.double 1e+36
-	ASM_SIZE_DIRECTIVE(huge)
+	SYMBOL_SIZE(huge)
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_log10.S.mp	2012-09-18 08:15:31.313487659 +0200
+++ libc/sysdeps/i386/fpu/e_log10.S	2012-09-18 08:21:25.534453134 +0200
@@ -12,13 +12,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/fpu/s_frexp.S.mp	2012-09-18 08:15:31.284487578 +0200
+++ libc/sysdeps/i386/fpu/s_frexp.S	2012-09-18 08:36:35.275964230 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific frexp implementation for double.
-   Copyright (C) 1997, 2000, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -26,7 +26,7 @@
 	.align ALIGNARG(4)
 	.type two54,@object
 two54:	.byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
-	ASM_SIZE_DIRECTIVE(two54)
+	SYMBOL_SIZE(two54)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/e_atanhl.S.mp	2012-09-18 08:15:31.329487702 +0200
+++ libc/sysdeps/i386/fpu/e_atanhl.S	2012-09-18 08:36:41.044981313 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arctanh function.
-   Copyright (C) 1996, 1999, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -27,20 +27,20 @@
 	   problems.  The advantage is that the code is simpler.  */
 	.type half,@object
 half:	.double 0.5
-	ASM_SIZE_DIRECTIVE(half)
+	SYMBOL_SIZE(half)
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 	.align ALIGNARG(4)
 	.type ln2_2,@object
 ln2_2:	.tfloat 0.3465735902799726547086160
-	ASM_SIZE_DIRECTIVE(ln2_2)
+	SYMBOL_SIZE(ln2_2)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_asinh.S.mp	2012-09-18 08:15:31.326487694 +0200
+++ libc/sysdeps/i386/fpu/s_asinh.S	2012-09-18 08:36:45.771995312 +0200
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of arcsinh.
-   Copyright (C) 1996-1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -24,13 +24,13 @@
 	.align ALIGNARG(4)
 	.type huge,@object
 huge:	.double 1e+300
-	ASM_SIZE_DIRECTIVE(huge)
+	SYMBOL_SIZE(huge)
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%edx)
--- libc/sysdeps/i386/fpu/s_cbrtl.S.mp	2012-09-18 08:15:31.307487641 +0200
+++ libc/sysdeps/i386/fpu/s_cbrtl.S	2012-09-18 08:36:51.633012665 +0200
@@ -1,5 +1,5 @@
 /* Compute cubic root of long double value.
-   Copyright (C) 1997, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
    Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -25,35 +25,35 @@
         .align ALIGNARG(4)
         .type f8,@object
 f8:	.tfloat 0.161617097923756032
-	ASM_SIZE_DIRECTIVE(f8)
+	SYMBOL_SIZE(f8)
         .align ALIGNARG(4)
         .type f7,@object
 f7:	.tfloat -0.988553671195413709
-	ASM_SIZE_DIRECTIVE(f7)
+	SYMBOL_SIZE(f7)
         .align ALIGNARG(4)
         .type f6,@object
 f6:	.tfloat 2.65298938441952296
-	ASM_SIZE_DIRECTIVE(f6)
+	SYMBOL_SIZE(f6)
         .align ALIGNARG(4)
         .type f5,@object
 f5:	.tfloat -4.11151425200350531
-	ASM_SIZE_DIRECTIVE(f5)
+	SYMBOL_SIZE(f5)
         .align ALIGNARG(4)
         .type f4,@object
 f4:	.tfloat 4.09559907378707839
-	ASM_SIZE_DIRECTIVE(f4)
+	SYMBOL_SIZE(f4)
         .align ALIGNARG(4)
         .type f3,@object
 f3:	.tfloat -2.82414939754975962
-	ASM_SIZE_DIRECTIVE(f3)
+	SYMBOL_SIZE(f3)
         .align ALIGNARG(4)
         .type f2,@object
 f2:	.tfloat 1.67595307700780102
-	ASM_SIZE_DIRECTIVE(f2)
+	SYMBOL_SIZE(f2)
         .align ALIGNARG(4)
         .type f1,@object
 f1:	.tfloat 0.338058687610520237
-	ASM_SIZE_DIRECTIVE(f1)
+	SYMBOL_SIZE(f1)
 
 #define CBRT2		1.2599210498948731648
 #define ONE_CBRT2	0.793700525984099737355196796584
@@ -73,12 +73,12 @@ factor:	.tfloat ONE_SQR_CBRT2
 	.tfloat CBRT2
 	.byte 0, 0, 0, 0, 0, 0
 	.tfloat SQR_CBRT2
-	ASM_SIZE_DIRECTIVE(factor)
+	SYMBOL_SIZE(factor)
 
         .type two64,@object
         .align ALIGNARG(4)
 two64:  .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
-        ASM_SIZE_DIRECTIVE(two64)
+        SYMBOL_SIZE(two64)
 
 #ifdef PIC
 #define MO(op) op##@GOTOFF(%ebx)
--- libc/sysdeps/i386/fpu/e_scalbl.S.mp	2012-09-18 08:15:31.333487712 +0200
+++ libc/sysdeps/i386/fpu/e_scalbl.S	2012-09-18 08:21:25.542453155 +0200
@@ -18,7 +18,7 @@ zero_nan:
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(zero_nan)
+	SYMBOL_SIZE(zero_nan)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S.mp	2012-09-18 08:15:31.339487730 +0200
+++ libc/sysdeps/i386/i686/fpu/multiarch/s_cosf-sse2.S	2012-09-18 08:21:25.547453170 +0200
@@ -363,7 +363,7 @@ L(PIO4J): /* Table of j*Pi/4, for j=0,1,
 	.long	0xbeccb2bb,0x401c463a
 	.long	0x2955385e,0x401f6a7a
 	.type L(PIO4J), @object
-	ASM_SIZE_DIRECTIVE(L(PIO4J))
+	SYMBOL_SIZE(L(PIO4J))
 
 	.p2align 3
 L(_FPI): /* 4/Pi broken into sum of positive DP values */
@@ -393,7 +393,7 @@ L(_FPI): /* 4/Pi broken into sum of posi
 	.long	0x24000000,0x1964ce7d
 	.long	0x16000000,0x17b908bf
 	.type L(_FPI), @object
-	ASM_SIZE_DIRECTIVE(L(_FPI))
+	SYMBOL_SIZE(L(_FPI))
 
 /* Coefficients of polynomial
  for cos(x)~=1.0+x^2*DP_COS2_0+x^4*DP_COS2_1, |x|<2^-5.  */
@@ -401,27 +401,27 @@ L(_FPI): /* 4/Pi broken into sum of posi
 L(DP_COS2_0):
 	.long	0xff5cc6fd,0xbfdfffff
 	.type L(DP_COS2_0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_COS2_0))
+	SYMBOL_SIZE(L(DP_COS2_0))
 
 	.p2align 3
 L(DP_COS2_1):
 	.long	0xb178dac5,0x3fa55514
 	.type L(DP_COS2_1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_COS2_1))
+	SYMBOL_SIZE(L(DP_COS2_1))
 
 	.p2align 3
 L(DP_ZERONE):
 	.long	0x00000000,0x00000000	/* 0.0 */
 	.long	0x00000000,0xbff00000	/* 1.0 */
 	.type L(DP_ZERONE),@object
-	ASM_SIZE_DIRECTIVE(L(DP_ZERONE))
+	SYMBOL_SIZE(L(DP_ZERONE))
 
 	.p2align 3
 L(DP_ONES):
 	.long	0x00000000,0x3ff00000	/* +1.0 */
 	.long	0x00000000,0xbff00000	/* -1.0 */
 	.type L(DP_ONES), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ONES))
+	SYMBOL_SIZE(L(DP_ONES))
 
 /* Coefficients of polynomial
  for sin(t)~=t+t^3*(S0+t^2*(S1+t^2*(S2+t^2*(S3+t^2*S4)))), |t|<Pi/4.  */
@@ -429,31 +429,31 @@ L(DP_ONES):
 L(DP_S3):
 	.long	0x64e6b5b4,0x3ec71d72
 	.type L(DP_S3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S3))
+	SYMBOL_SIZE(L(DP_S3))
 
 	.p2align 3
 L(DP_S1):
 	.long	0x10c2688b,0x3f811111
 	.type L(DP_S1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S1))
+	SYMBOL_SIZE(L(DP_S1))
 
 	.p2align 3
 L(DP_S4):
 	.long	0x1674b58a,0xbe5a947e
 	.type L(DP_S4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S4))
+	SYMBOL_SIZE(L(DP_S4))
 
 	.p2align 3
 L(DP_S2):
 	.long	0x8b4bd1f9,0xbf2a019f
 	.type L(DP_S2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S2))
+	SYMBOL_SIZE(L(DP_S2))
 
 	.p2align 3
 L(DP_S0):
 	.long	0x55551cd9,0xbfc55555
 	.type L(DP_S0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S0))
+	SYMBOL_SIZE(L(DP_S0))
 
 /* Coefficients of polynomial
  for cos(t)~=1.0+t^2*(C0+t^2*(C1+t^2*(C2+t^2*(C3+t^2*C4)))), |t|<Pi/4.  */
@@ -461,93 +461,93 @@ L(DP_S0):
 L(DP_C3):
 	.long	0x9ac43cc0,0x3efa00eb
 	.type L(DP_C3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C3))
+	SYMBOL_SIZE(L(DP_C3))
 
 	.p2align 3
 L(DP_C1):
 	.long	0x545c50c7,0x3fa55555
 	.type L(DP_C1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C1))
+	SYMBOL_SIZE(L(DP_C1))
 
 	.p2align 3
 L(DP_C4):
 	.long	0xdd8844d7,0xbe923c97
 	.type L(DP_C4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C4))
+	SYMBOL_SIZE(L(DP_C4))
 
 	.p2align 3
 L(DP_C2):
 	.long	0x348b6874,0xbf56c16b
 	.type L(DP_C2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C2))
+	SYMBOL_SIZE(L(DP_C2))
 
 	.p2align 3
 L(DP_C0):
 	.long	0xfffe98ae,0xbfdfffff
 	.type L(DP_C0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C0))
+	SYMBOL_SIZE(L(DP_C0))
 
 	.p2align 3
 L(DP_PIO4):
 	.long	0x54442d18,0x3fe921fb	/* Pi/4 */
 	.type L(DP_PIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4))
+	SYMBOL_SIZE(L(DP_PIO4))
 
 	.p2align 3
 L(DP_2POW52):
 	.long	0x00000000,0x43300000	/* +2^52 */
 	.long	0x00000000,0xc3300000	/* -2^52 */
 	.type L(DP_2POW52), @object
-	ASM_SIZE_DIRECTIVE(L(DP_2POW52))
+	SYMBOL_SIZE(L(DP_2POW52))
 
 	.p2align 3
 L(DP_INVPIO4):
 	.long	0x6dc9c883,0x3ff45f30	/* 4/Pi */
 	.type L(DP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_INVPIO4))
+	SYMBOL_SIZE(L(DP_INVPIO4))
 
 	.p2align 3
 L(DP_PIO4HI):
 	.long	0x54000000,0xbfe921fb	/* High part of Pi/4 */
 	.type L(DP_PIO4HI), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4HI))
+	SYMBOL_SIZE(L(DP_PIO4HI))
 
 	.p2align 3
 L(DP_PIO4LO):
 	.long	0x11A62633,0xbe010b46	/* Low part of Pi/4 */
 	.type L(DP_PIO4LO), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4LO))
+	SYMBOL_SIZE(L(DP_PIO4LO))
 
 	.p2align 2
 L(SP_INVPIO4):
 	.long	0x3fa2f983		/* 4/Pi */
 	.type L(SP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INVPIO4))
+	SYMBOL_SIZE(L(SP_INVPIO4))
 
 	.p2align 4
 L(DP_ABS_MASK): /* Mask for getting DP absolute value */
 	.long	0xffffffff,0x7fffffff
 	.long	0xffffffff,0x7fffffff
 	.type L(DP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
+	SYMBOL_SIZE(L(DP_ABS_MASK))
 
 	.p2align 3
 L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
 	.long	0x00000000,0xffffffff
 	.type L(DP_HI_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
+	SYMBOL_SIZE(L(DP_HI_MASK))
 
 	.p2align 4
 L(SP_ABS_MASK): /* Mask for getting SP absolute value */
 	.long	0x7fffffff,0x7fffffff
 	.long	0x7fffffff,0x7fffffff
 	.type L(SP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ABS_MASK))
+	SYMBOL_SIZE(L(SP_ABS_MASK))
 
 	.p2align 2
 L(SP_ONE):
 	.long	0x3f800000		/* 1.0 */
 	.type L(SP_ONE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ONE))
+	SYMBOL_SIZE(L(SP_ONE))
 
 weak_alias (__cosf, cosf)
--- libc/sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S.mp	2012-09-18 08:15:31.337487724 +0200
+++ libc/sysdeps/i386/i686/fpu/multiarch/s_sinf-sse2.S	2012-09-18 08:21:25.545453164 +0200
@@ -383,7 +383,7 @@ L(PIO4J): /* Table of j*Pi/4, for j=0,1,
 	.long	0xbeccb2bb,0x401c463a
 	.long	0x2955385e,0x401f6a7a
 	.type L(PIO4J), @object
-	ASM_SIZE_DIRECTIVE(L(PIO4J))
+	SYMBOL_SIZE(L(PIO4J))
 
 	.p2align 3
 L(_FPI): /* 4/Pi broken into sum of positive DP values */
@@ -413,7 +413,7 @@ L(_FPI): /* 4/Pi broken into sum of posi
 	.long	0x24000000,0x1964ce7d
 	.long	0x16000000,0x17b908bf
 	.type L(_FPI), @object
-	ASM_SIZE_DIRECTIVE(L(_FPI))
+	SYMBOL_SIZE(L(_FPI))
 
 /* Coefficients of polynomial
    for sin(x)~=x+x^3*DP_SIN2_0+x^5*DP_SIN2_1, |x|<2^-5.  */
@@ -421,27 +421,27 @@ L(_FPI): /* 4/Pi broken into sum of posi
 L(DP_SIN2_0):
 	.long	0x5543d49d,0xbfc55555
 	.type L(DP_SIN2_0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SIN2_0))
+	SYMBOL_SIZE(L(DP_SIN2_0))
 
 	.p2align 3
 L(DP_SIN2_1):
 	.long	0x75cec8c5,0x3f8110f4
 	.type L(DP_SIN2_1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SIN2_1))
+	SYMBOL_SIZE(L(DP_SIN2_1))
 
 	.p2align 3
 L(DP_ZERONE):
 	.long	0x00000000,0x00000000	/* 0.0 */
 	.long	0x00000000,0xbff00000	/* 1.0 */
 	.type L(DP_ZERONE), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ZERONE))
+	SYMBOL_SIZE(L(DP_ZERONE))
 
 	.p2align 3
 L(DP_ONES):
 	.long	0x00000000,0x3ff00000	/* +1.0 */
 	.long	0x00000000,0xbff00000	/* -1.0 */
 	.type L(DP_ONES), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ONES))
+	SYMBOL_SIZE(L(DP_ONES))
 
 /* Coefficients of polynomial
    for sin(t)~=t+t^3*(S0+t^2*(S1+t^2*(S2+t^2*(S3+t^2*S4)))), |t|<Pi/4.  */
@@ -449,37 +449,37 @@ L(DP_ONES):
 L(DP_S3):
 	.long	0x64e6b5b4,0x3ec71d72
 	.type L(DP_S3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S3))
+	SYMBOL_SIZE(L(DP_S3))
 
 	.p2align 3
 L(DP_S1):
 	.long	0x10c2688b,0x3f811111
 	.type L(DP_S1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S1))
+	SYMBOL_SIZE(L(DP_S1))
 
 	.p2align 3
 L(DP_S4):
 	.long	0x1674b58a,0xbe5a947e
 	.type L(DP_S4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S4))
+	SYMBOL_SIZE(L(DP_S4))
 
 	.p2align 3
 L(DP_S2):
 	.long	0x8b4bd1f9,0xbf2a019f
 	.type L(DP_S2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S2))
+	SYMBOL_SIZE(L(DP_S2))
 
 	.p2align 3
 L(DP_S0):
 	.long	0x55551cd9,0xbfc55555
 	.type L(DP_S0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S0))
+	SYMBOL_SIZE(L(DP_S0))
 
 	.p2align 3
 L(DP_SMALL):
 	.long	0x00000000,0x3cd00000	/* 2^(-50) */
 	.type L(DP_SMALL), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SMALL))
+	SYMBOL_SIZE(L(DP_SMALL))
 
 /* Coefficients of polynomial
    for cos(t)~=1.0+t^2*(C0+t^2*(C1+t^2*(C2+t^2*(C3+t^2*C4)))), |t|<Pi/4.  */
@@ -487,80 +487,80 @@ L(DP_SMALL):
 L(DP_C3):
 	.long	0x9ac43cc0,0x3efa00eb
 	.type L(DP_C3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C3))
+	SYMBOL_SIZE(L(DP_C3))
 
 	.p2align 3
 L(DP_C1):
 	.long	0x545c50c7,0x3fa55555
 	.type L(DP_C1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C1))
+	SYMBOL_SIZE(L(DP_C1))
 
 	.p2align 3
 L(DP_C4):
 	.long	0xdd8844d7,0xbe923c97
 	.type L(DP_C4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C4))
+	SYMBOL_SIZE(L(DP_C4))
 
 	.p2align 3
 L(DP_C2):
 	.long	0x348b6874,0xbf56c16b
 	.type L(DP_C2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C2))
+	SYMBOL_SIZE(L(DP_C2))
 
 	.p2align 3
 L(DP_C0):
 	.long	0xfffe98ae,0xbfdfffff
 	.type L(DP_C0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C0))
+	SYMBOL_SIZE(L(DP_C0))
 
 	.p2align 3
 L(DP_PIO4):
 	.long	0x54442d18,0x3fe921fb	/* Pi/4 */
 	.type L(DP_PIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4))
+	SYMBOL_SIZE(L(DP_PIO4))
 
 	.p2align 3
 L(DP_2POW52):
 	.long	0x00000000,0x43300000	/* +2^52 */
 	.long	0x00000000,0xc3300000	/* -2^52 */
 	.type L(DP_2POW52), @object
-	ASM_SIZE_DIRECTIVE(L(DP_2POW52))
+	SYMBOL_SIZE(L(DP_2POW52))
 
 	.p2align 3
 L(DP_INVPIO4):
 	.long	0x6dc9c883,0x3ff45f30	/* 4/Pi */
 	.type L(DP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_INVPIO4))
+	SYMBOL_SIZE(L(DP_INVPIO4))
 
 	.p2align 3
 L(DP_PIO4HI):
 	.long	0x54000000,0xbfe921fb	/* High part of Pi/4 */
 	.type L(DP_PIO4HI), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4HI))
+	SYMBOL_SIZE(L(DP_PIO4HI))
 
 	.p2align 3
 L(DP_PIO4LO):
 	.long	0x11A62633,0xbe010b46	/* Low part of Pi/4 */
 	.type L(DP_PIO4LO), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4LO))
+	SYMBOL_SIZE(L(DP_PIO4LO))
 
 	.p2align 2
 L(SP_INVPIO4):
 	.long	0x3fa2f983		/* 4/Pi */
 	.type L(SP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INVPIO4))
+	SYMBOL_SIZE(L(SP_INVPIO4))
 
 	.p2align 4
 L(DP_ABS_MASK): /* Mask for getting DP absolute value */
 	.long	0xffffffff,0x7fffffff
 	.long	0xffffffff,0x7fffffff
 	.type L(DP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
+	SYMBOL_SIZE(L(DP_ABS_MASK))
 
 	.p2align 3
 L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
 	.long	0x00000000,0xffffffff
 	.type L(DP_HI_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
+	SYMBOL_SIZE(L(DP_HI_MASK))
 
 weak_alias (__sinf, sinf)
--- libc/sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S.mp	2012-09-18 08:15:31.340487733 +0200
+++ libc/sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S	2012-09-18 08:21:25.548453173 +0200
@@ -244,81 +244,81 @@ L(DP_T): /* table of double precision va
 	.long	0x5b6e4540, 0x3fff5076
 	.long	0x819e90d8, 0x3fffa7c1
 	.type L(DP_T), @object
-	ASM_SIZE_DIRECTIVE(L(DP_T))
+	SYMBOL_SIZE(L(DP_T))
 
 	.section .rodata.cst8,"aM",@progbits,8
 	.p2align 3
 L(DP_KLN2): /* double precision K/log(2) */
 	.long	0x652b82fe, 0x40571547
 	.type L(DP_KLN2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_KLN2))
+	SYMBOL_SIZE(L(DP_KLN2))
 
 	.p2align 3
 L(DP_NLN2K): /* double precision -log(2)/K */
 	.long	0xfefa39ef, 0xbf862e42
 	.type L(DP_NLN2K), @object
-	ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
+	SYMBOL_SIZE(L(DP_NLN2K))
 
 	.p2align 3
 L(DP_RS): /* double precision 2^23+2^22 */
 	.long	0x00000000, 0x41680000
 	.type L(DP_RS), @object
-	ASM_SIZE_DIRECTIVE(L(DP_RS))
+	SYMBOL_SIZE(L(DP_RS))
 
 	.p2align 3
 L(DP_P3): /* double precision polynomial coefficient P3 */
 	.long	0xeb78fa85, 0x3fa56420
 	.type L(DP_P3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P3))
+	SYMBOL_SIZE(L(DP_P3))
 
 	.p2align 3
 L(DP_P1): /* double precision polynomial coefficient P1 */
 	.long	0x008d6118, 0x3fe00000
 	.type L(DP_P1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P1))
+	SYMBOL_SIZE(L(DP_P1))
 
 	.p2align 3
 L(DP_P2): /* double precision polynomial coefficient P2 */
 	.long	0xda752d4f, 0x3fc55550
 	.type L(DP_P2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P2))
+	SYMBOL_SIZE(L(DP_P2))
 
 	.p2align 3
 L(DP_P0): /* double precision polynomial coefficient P0 */
 	.long	0xffffe7c6, 0x3fefffff
 	.type L(DP_P0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P0))
+	SYMBOL_SIZE(L(DP_P0))
 
 	.p2align 2
 L(SP_INF_0):
 	.long	0x7f800000	/* single precision Inf */
 	.long	0		/* single precision zero */
 	.type L(SP_INF_0), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INF_0))
+	SYMBOL_SIZE(L(SP_INF_0))
 
 	.section .rodata.cst4,"aM",@progbits,4
 	.p2align 2
 L(SP_RS): /* single precision 2^23+2^22 */
 	.long	0x4b400000
 	.type L(SP_RS), @object
-	ASM_SIZE_DIRECTIVE(L(SP_RS))
+	SYMBOL_SIZE(L(SP_RS))
 
 	.p2align 2
 L(SP_SMALL): /* single precision small value 2^(-100) */
 	.long	0x0d800000
 	.type L(SP_SMALL), @object
-	ASM_SIZE_DIRECTIVE(L(SP_SMALL))
+	SYMBOL_SIZE(L(SP_SMALL))
 
 	.p2align 2
 L(SP_LARGE): /* single precision large value 2^100 */
 	.long	0x71800000
 	.type L(SP_LARGE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_LARGE))
+	SYMBOL_SIZE(L(SP_LARGE))
 
 	.p2align 2
 L(SP_ONE): /* single precision 1.0 */
 	.long	0x3f800000
 	.type L(SP_ONE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ONE))
+	SYMBOL_SIZE(L(SP_ONE))
 
 strong_alias (__ieee754_expf_sse2, __expf_finite_sse2)
--- libc/sysdeps/i386/i686/fpu/e_logl.S.mp	2012-09-18 08:15:31.336487721 +0200
+++ libc/sysdeps/i386/i686/fpu/e_logl.S	2012-09-18 08:21:25.543453158 +0200
@@ -14,13 +14,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/i386/sysdep.h.mp	2012-09-18 08:05:08.914904542 +0200
+++ libc/sysdeps/i386/sysdep.h	2012-09-18 08:05:44.364002796 +0200
@@ -1,6 +1,5 @@
 /* Assembler macros for i386.
-   Copyright (C) 1991-93,95,96,98,2002,2003,2005,2006,2011,2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1991-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -50,7 +49,6 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C.
@@ -69,7 +67,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)
+  SYMBOL_SIZE(name)
 
 #define ENTRY_CHK(name) ENTRY (name)
 #define END_CHK(name) END (name)
--- libc/sysdeps/i386/i386-mcount.S.mp	2012-09-18 08:15:31.342487737 +0200
+++ libc/sysdeps/i386/i386-mcount.S	2012-09-18 08:21:25.548453173 +0200
@@ -48,7 +48,7 @@ C_LABEL(_mcount)
 	popl %ecx
 	popl %eax
 	ret
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+	SYMBOL_SIZE(C_SYMBOL_NAME(_mcount))
 
 #undef mcount
 weak_alias (_mcount, mcount)
@@ -76,4 +76,4 @@ C_LABEL(__fentry__)
 	popl %ecx
 	popl %eax
 	ret
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__fentry__))
+	SYMBOL_SIZE(C_SYMBOL_NAME(__fentry__))
--- libc/sysdeps/x86_64/fpu/e_expl.S.mp	2012-09-18 08:15:31.345487745 +0200
+++ libc/sysdeps/x86_64/fpu/e_expl.S	2012-09-18 08:21:25.549453176 +0200
@@ -45,26 +45,26 @@
 	.type c0,@object
 c0:	.byte 0, 0, 0, 0, 0, 0, 0x9a, 0xd4, 0x00, 0x40
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c0)
+	SYMBOL_SIZE(c0)
 	.type c1,@object
 c1:	.byte 0x58, 0x92, 0xfc, 0x15, 0x37, 0x9a, 0x97, 0xf0, 0xef, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c1)
+	SYMBOL_SIZE(c1)
 #else
 	.type c0,@object
 c0:	.byte 0, 0, 0, 0, 0, 0, 0xaa, 0xb8, 0xff, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c0)
+	SYMBOL_SIZE(c0)
 	.type c1,@object
 c1:	.byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(c1)
+	SYMBOL_SIZE(c1)
 #endif
 #ifndef USE_AS_EXPM1L
 	.type csat,@object
 csat:	.byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
 	.byte 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(csat)
+	SYMBOL_SIZE(csat)
 #endif
 
 #ifdef PIC
--- libc/sysdeps/x86_64/fpu/e_log2l.S.mp	2012-09-18 08:15:31.353487766 +0200
+++ libc/sysdeps/x86_64/fpu/e_log2l.S	2012-09-18 08:21:25.557453197 +0200
@@ -14,13 +14,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/x86_64/fpu/s_cosf.S.mp	2012-09-18 08:15:31.346487748 +0200
+++ libc/sysdeps/x86_64/fpu/s_cosf.S	2012-09-18 08:21:25.551453180 +0200
@@ -337,7 +337,7 @@ L(PIO4J): /* Table of j*Pi/4, for j=0,1,
 	.long	0xbeccb2bb,0x401c463a
 	.long	0x2955385e,0x401f6a7a
 	.type L(PIO4J), @object
-	ASM_SIZE_DIRECTIVE(L(PIO4J))
+	SYMBOL_SIZE(L(PIO4J))
 
 	.p2align 3
 L(_FPI): /* 4/Pi broken into sum of positive DP values */
@@ -367,7 +367,7 @@ L(_FPI): /* 4/Pi broken into sum of posi
 	.long	0x24000000,0x1964ce7d
 	.long	0x16000000,0x17b908bf
 	.type L(_FPI), @object
-	ASM_SIZE_DIRECTIVE(L(_FPI))
+	SYMBOL_SIZE(L(_FPI))
 
 /* Coefficients of polynomial
    for cos(x)~=1.0+x^2*DP_COS2_0+x^4*DP_COS2_1, |x|<2^-5.  */
@@ -375,27 +375,27 @@ L(_FPI): /* 4/Pi broken into sum of posi
 L(DP_COS2_0):
 	.long	0xff5cc6fd,0xbfdfffff
 	.type L(DP_COS2_0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_COS2_0))
+	SYMBOL_SIZE(L(DP_COS2_0))
 
 	.p2align 3
 L(DP_COS2_1):
 	.long	0xb178dac5,0x3fa55514
 	.type L(DP_COS2_1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_COS2_1))
+	SYMBOL_SIZE(L(DP_COS2_1))
 
 	.p2align 3
 L(DP_ZERONE):
 	.long	0x00000000,0x00000000	/* 0.0 */
 	.long	0x00000000,0xbff00000	/* 1.0 */
 	.type L(DP_ZERONE), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ZERONE))
+	SYMBOL_SIZE(L(DP_ZERONE))
 
 	.p2align 3
 L(DP_ONES):
 	.long	0x00000000,0x3ff00000	/* +1.0 */
 	.long	0x00000000,0xbff00000	/* -1.0 */
 	.type L(DP_ONES), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ONES))
+	SYMBOL_SIZE(L(DP_ONES))
 
 /* Coefficients of polynomial
    for sin(t)~=t+t^3*(S0+t^2*(S1+t^2*(S2+t^2*(S3+t^2*S4)))), |t|<Pi/4.  */
@@ -403,31 +403,31 @@ L(DP_ONES):
 L(DP_S3):
 	.long	0x64e6b5b4,0x3ec71d72
 	.type L(DP_S3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S3))
+	SYMBOL_SIZE(L(DP_S3))
 
 	.p2align 3
 L(DP_S1):
 	.long	0x10c2688b,0x3f811111
 	.type L(DP_S1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S1))
+	SYMBOL_SIZE(L(DP_S1))
 
 	.p2align 3
 L(DP_S4):
 	.long	0x1674b58a,0xbe5a947e
 	.type L(DP_S4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S4))
+	SYMBOL_SIZE(L(DP_S4))
 
 	.p2align 3
 L(DP_S2):
 	.long	0x8b4bd1f9,0xbf2a019f
 	.type L(DP_S2),@object
-	ASM_SIZE_DIRECTIVE(L(DP_S2))
+	SYMBOL_SIZE(L(DP_S2))
 
 	.p2align 3
 L(DP_S0):
 	.long	0x55551cd9,0xbfc55555
 	.type L(DP_S0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S0))
+	SYMBOL_SIZE(L(DP_S0))
 
 /* Coefficients of polynomial
    for cos(t)~=1.0+t^2*(C0+t^2*(C1+t^2*(C2+t^2*(C3+t^2*C4)))), |t|<Pi/4.  */
@@ -435,93 +435,93 @@ L(DP_S0):
 L(DP_C3):
 	.long	0x9ac43cc0,0x3efa00eb
 	.type L(DP_C3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C3))
+	SYMBOL_SIZE(L(DP_C3))
 
 	.p2align 3
 L(DP_C1):
 	.long	0x545c50c7,0x3fa55555
 	.type L(DP_C1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C1))
+	SYMBOL_SIZE(L(DP_C1))
 
 	.p2align 3
 L(DP_C4):
 	.long	0xdd8844d7,0xbe923c97
 	.type L(DP_C4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C4))
+	SYMBOL_SIZE(L(DP_C4))
 
 	.p2align 3
 L(DP_C2):
 	.long	0x348b6874,0xbf56c16b
 	.type L(DP_C2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C2))
+	SYMBOL_SIZE(L(DP_C2))
 
 	.p2align 3
 L(DP_C0):
 	.long	0xfffe98ae,0xbfdfffff
 	.type L(DP_C0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C0))
+	SYMBOL_SIZE(L(DP_C0))
 
 	.p2align 3
 L(DP_PIO4):
 	.long	0x54442d18,0x3fe921fb	/* Pi/4 */
 	.type L(DP_PIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4))
+	SYMBOL_SIZE(L(DP_PIO4))
 
 	.p2align 3
 L(DP_2POW52):
 	.long	0x00000000,0x43300000	/* +2^52 */
 	.long	0x00000000,0xc3300000	/* -2^52 */
 	.type L(DP_2POW52), @object
-	ASM_SIZE_DIRECTIVE(L(DP_2POW52))
+	SYMBOL_SIZE(L(DP_2POW52))
 
 	.p2align 3
 L(DP_INVPIO4):
 	.long	0x6dc9c883,0x3ff45f30	/* 4/Pi */
 	.type L(DP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_INVPIO4))
+	SYMBOL_SIZE(L(DP_INVPIO4))
 
 	.p2align 3
 L(DP_PIO4HI):
 	.long	0x54000000,0xbfe921fb	/* High part of Pi/4 */
 	.type L(DP_PIO4HI), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4HI))
+	SYMBOL_SIZE(L(DP_PIO4HI))
 
 	.p2align 3
 L(DP_PIO4LO):
 	.long	0x11A62633,0xbe010b46	/* Low part of Pi/4 */
 	.type L(DP_PIO4LO), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4LO))
+	SYMBOL_SIZE(L(DP_PIO4LO))
 
 	.p2align 2
 L(SP_INVPIO4):
 	.long	0x3fa2f983		/* 4/Pi */
 	.type L(SP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INVPIO4))
+	SYMBOL_SIZE(L(SP_INVPIO4))
 
 	.p2align 4
 L(DP_ABS_MASK): /* Mask for getting DP absolute value */
 	.long	0xffffffff,0x7fffffff
 	.long	0xffffffff,0x7fffffff
 	.type L(DP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
+	SYMBOL_SIZE(L(DP_ABS_MASK))
 
 	.p2align 3
 L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
 	.long	0x00000000,0xffffffff
 	.type L(DP_HI_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
+	SYMBOL_SIZE(L(DP_HI_MASK))
 
 	.p2align 4
 L(SP_ABS_MASK): /* Mask for getting SP absolute value */
 	.long	0x7fffffff,0x7fffffff
 	.long	0x7fffffff,0x7fffffff
 	.type L(SP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ABS_MASK))
+	SYMBOL_SIZE(L(SP_ABS_MASK))
 
 	.p2align 2
 L(SP_ONE):
 	.long	0x3f800000		/* 1.0 */
 	.type L(SP_ONE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ONE))
+	SYMBOL_SIZE(L(SP_ONE))
 
 weak_alias(__cosf, cosf)
--- libc/sysdeps/x86_64/fpu/e_powl.S.mp	2012-09-18 08:15:31.349487757 +0200
+++ libc/sysdeps/x86_64/fpu/e_powl.S	2012-09-18 08:37:35.893143723 +0200
@@ -1,6 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996-1999, 2001, 2004, 2007, 2011-2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1996-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -25,19 +24,19 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 	.type p63,@object
 p63:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
-	ASM_SIZE_DIRECTIVE(p63)
+	SYMBOL_SIZE(p63)
 	.type p64,@object
 p64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
-	ASM_SIZE_DIRECTIVE(p64)
+	SYMBOL_SIZE(p64)
 	.type p78,@object
 p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
-	ASM_SIZE_DIRECTIVE(p78)
+	SYMBOL_SIZE(p78)
 
 	.section .rodata.cst16,"aM",@progbits,16
 
@@ -46,17 +45,17 @@ p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
-	ASM_SIZE_DIRECTIVE(infinity)
+	SYMBOL_SIZE(infinity)
 	.type zero,@object
 zero:	.double 0.0
-	ASM_SIZE_DIRECTIVE(zero)
+	SYMBOL_SIZE(zero)
 	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
 mzero:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
-	ASM_SIZE_DIRECTIVE(minf_mzero)
+	SYMBOL_SIZE(minf_mzero)
 
 #ifdef PIC
 # define MO(op) op##(%rip)
--- libc/sysdeps/x86_64/fpu/s_sinf.S.mp	2012-09-18 08:15:31.347487751 +0200
+++ libc/sysdeps/x86_64/fpu/s_sinf.S	2012-09-18 08:21:25.553453185 +0200
@@ -363,7 +363,7 @@ L(PIO4J): /* Table of j*Pi/4, for j=0,1,
 	.long	0xbeccb2bb,0x401c463a
 	.long	0x2955385e,0x401f6a7a
 	.type L(PIO4J), @object
-	ASM_SIZE_DIRECTIVE(L(PIO4J))
+	SYMBOL_SIZE(L(PIO4J))
 
 	.p2align 3
 L(_FPI): /* 4/Pi broken into sum of positive DP values */
@@ -393,7 +393,7 @@ L(_FPI): /* 4/Pi broken into sum of posi
 	.long	0x24000000,0x1964ce7d
 	.long	0x16000000,0x17b908bf
 	.type L(_FPI), @object
-	ASM_SIZE_DIRECTIVE(L(_FPI))
+	SYMBOL_SIZE(L(_FPI))
 
 /* Coefficients of polynomial
    for sin(x)~=x+x^3*DP_SIN2_0+x^5*DP_SIN2_1, |x|<2^-5.  */
@@ -401,27 +401,27 @@ L(_FPI): /* 4/Pi broken into sum of posi
 L(DP_SIN2_0):
 	.long	0x5543d49d,0xbfc55555
 	.type L(DP_SIN2_0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SIN2_0))
+	SYMBOL_SIZE(L(DP_SIN2_0))
 
 	.p2align 3
 L(DP_SIN2_1):
 	.long	0x75cec8c5,0x3f8110f4
 	.type L(DP_SIN2_1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SIN2_1))
+	SYMBOL_SIZE(L(DP_SIN2_1))
 
 	.p2align 3
 L(DP_ZERONE):
 	.long	0x00000000,0x00000000	/* 0.0 */
 	.long	0x00000000,0xbff00000	/* 1.0 */
 	.type L(DP_ZERONE), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ZERONE))
+	SYMBOL_SIZE(L(DP_ZERONE))
 
 	.p2align 3
 L(DP_ONES):
 	.long	0x00000000,0x3ff00000	/* +1.0 */
 	.long	0x00000000,0xbff00000	/* -1.0 */
 	.type L(DP_ONES), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ONES))
+	SYMBOL_SIZE(L(DP_ONES))
 
 /* Coefficients of polynomial
    for sin(t)~=t+t^3*(S0+t^2*(S1+t^2*(S2+t^2*(S3+t^2*S4)))), |t|<Pi/4.  */
@@ -429,37 +429,37 @@ L(DP_ONES):
 L(DP_S3):
 	.long	0x64e6b5b4,0x3ec71d72
 	.type L(DP_S3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S3))
+	SYMBOL_SIZE(L(DP_S3))
 
 	.p2align 3
 L(DP_S1):
 	.long	0x10c2688b,0x3f811111
 	.type L(DP_S1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S1))
+	SYMBOL_SIZE(L(DP_S1))
 
 	.p2align 3
 L(DP_S4):
 	.long	0x1674b58a,0xbe5a947e
 	.type L(DP_S4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S4))
+	SYMBOL_SIZE(L(DP_S4))
 
 	.p2align 3
 L(DP_S2):
 	.long	0x8b4bd1f9,0xbf2a019f
 	.type L(DP_S2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S2))
+	SYMBOL_SIZE(L(DP_S2))
 
 	.p2align 3
 L(DP_S0):
 	.long	0x55551cd9,0xbfc55555
 	.type L(DP_S0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_S0))
+	SYMBOL_SIZE(L(DP_S0))
 
 	.p2align 3
 L(DP_SMALL):
 	.long	0x00000000,0x3cd00000	/* 2^(-50) */
 	.type L(DP_SMALL), @object
-	ASM_SIZE_DIRECTIVE(L(DP_SMALL))
+	SYMBOL_SIZE(L(DP_SMALL))
 
 /* Coefficients of polynomial
    for cos(t)~=1.0+t^2*(C0+t^2*(C1+t^2*(C2+t^2*(C3+t^2*C4)))), |t|<Pi/4.  */
@@ -467,87 +467,87 @@ L(DP_SMALL):
 L(DP_C3):
 	.long	0x9ac43cc0,0x3efa00eb
 	.type L(DP_C3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C3))
+	SYMBOL_SIZE(L(DP_C3))
 
 	.p2align 3
 L(DP_C1):
 	.long	0x545c50c7,0x3fa55555
 	.type L(DP_C1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C1))
+	SYMBOL_SIZE(L(DP_C1))
 
 	.p2align 3
 L(DP_C4):
 	.long	0xdd8844d7,0xbe923c97
 	.type L(DP_C4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C4))
+	SYMBOL_SIZE(L(DP_C4))
 
 	.p2align 3
 L(DP_C2):
 	.long	0x348b6874,0xbf56c16b
 	.type L(DP_C2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C2))
+	SYMBOL_SIZE(L(DP_C2))
 
 	.p2align 3
 L(DP_C0):
 	.long	0xfffe98ae,0xbfdfffff
 	.type L(DP_C0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_C0))
+	SYMBOL_SIZE(L(DP_C0))
 
 	.p2align 3
 L(DP_PIO4):
 	.long	0x54442d18,0x3fe921fb	/* Pi/4 */
 	.type L(DP_PIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4))
+	SYMBOL_SIZE(L(DP_PIO4))
 
 	.p2align 3
 L(DP_2POW52):
 	.long	0x00000000,0x43300000	/* +2^52 */
 	.long	0x00000000,0xc3300000	/* -2^52 */
 	.type L(DP_2POW52), @object
-	ASM_SIZE_DIRECTIVE(L(DP_2POW52))
+	SYMBOL_SIZE(L(DP_2POW52))
 
 	.p2align 3
 L(DP_INVPIO4):
 	.long	0x6dc9c883,0x3ff45f30	/* 4/Pi */
 	.type L(DP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(DP_INVPIO4))
+	SYMBOL_SIZE(L(DP_INVPIO4))
 
 	.p2align 3
 L(DP_PIO4HI):
 	.long	0x54000000,0xbfe921fb	/* High part of Pi/4 */
 	.type L(DP_PIO4HI), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4HI))
+	SYMBOL_SIZE(L(DP_PIO4HI))
 
 	.p2align 3
 L(DP_PIO4LO):
 	.long	0x11A62633,0xbe010b46	/* Low part of Pi/4 */
 	.type L(DP_PIO4LO), @object
-	ASM_SIZE_DIRECTIVE(L(DP_PIO4LO))
+	SYMBOL_SIZE(L(DP_PIO4LO))
 
 	.p2align 2
 L(SP_INVPIO4):
 	.long	0x3fa2f983		/* 4/Pi */
 	.type L(SP_INVPIO4), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INVPIO4))
+	SYMBOL_SIZE(L(SP_INVPIO4))
 
 	.p2align 4
 L(DP_ABS_MASK): /* Mask for getting DP absolute value */
 	.long	0xffffffff,0x7fffffff
 	.long	0xffffffff,0x7fffffff
 	.type L(DP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(DP_ABS_MASK))
+	SYMBOL_SIZE(L(DP_ABS_MASK))
 
 	.p2align 3
 L(DP_HI_MASK): /* Mask for getting high 21 bits of DP value */
 	.long	0x00000000,0xffffffff
 	.type L(DP_HI_MASK),@object
-	ASM_SIZE_DIRECTIVE(L(DP_HI_MASK))
+	SYMBOL_SIZE(L(DP_HI_MASK))
 
 	.p2align 4
 L(SP_ABS_MASK): /* Mask for getting SP absolute value */
 	.long	0x7fffffff,0x7fffffff
 	.long	0x7fffffff,0x7fffffff
 	.type L(SP_ABS_MASK), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ABS_MASK))
+	SYMBOL_SIZE(L(SP_ABS_MASK))
 
 weak_alias(__sinf, sinf)
--- libc/sysdeps/x86_64/fpu/e_logl.S.mp	2012-09-18 08:15:31.344487742 +0200
+++ libc/sysdeps/x86_64/fpu/e_logl.S	2012-09-18 08:21:25.549453176 +0200
@@ -14,13 +14,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/x86_64/fpu/e_expf.S.mp	2012-09-18 08:15:31.352487764 +0200
+++ libc/sysdeps/x86_64/fpu/e_expf.S	2012-09-18 08:21:25.557453197 +0200
@@ -252,88 +252,88 @@ L(DP_T): /* table of double precision va
 	.long	0x5b6e4540, 0x3fff5076
 	.long	0x819e90d8, 0x3fffa7c1
 	.type L(DP_T), @object
-	ASM_SIZE_DIRECTIVE(L(DP_T))
+	SYMBOL_SIZE(L(DP_T))
 
 	.section .rodata.cst8,"aM",@progbits,8
 	.p2align 3
 L(DP_KLN2): /* double precision K/log(2) */
 	.long	0x652b82fe, 0x40571547
 	.type L(DP_KLN2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_KLN2))
+	SYMBOL_SIZE(L(DP_KLN2))
 
 	.p2align 3
 L(DP_NLN2K): /* double precision -log(2)/K */
 	.long	0xfefa39ef, 0xbf862e42
 	.type L(DP_NLN2K), @object
-	ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
+	SYMBOL_SIZE(L(DP_NLN2K))
 
 	.p2align 3
 L(DP_RS): /* double precision 2^23+2^22 */
 	.long	0x00000000, 0x41680000
 	.type L(DP_RS), @object
-	ASM_SIZE_DIRECTIVE(L(DP_RS))
+	SYMBOL_SIZE(L(DP_RS))
 
 	.p2align 3
 L(DP_P3): /* double precision polynomial coefficient P3 */
 	.long	0xeb78fa85, 0x3fa56420
 	.type L(DP_P3), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P3))
+	SYMBOL_SIZE(L(DP_P3))
 
 	.p2align 3
 L(DP_P1): /* double precision polynomial coefficient P1 */
 	.long	0x008d6118, 0x3fe00000
 	.type L(DP_P1), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P1))
+	SYMBOL_SIZE(L(DP_P1))
 
 	.p2align 3
 L(DP_P2): /* double precision polynomial coefficient P2 */
 	.long	0xda752d4f, 0x3fc55550
 	.type L(DP_P2), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P2))
+	SYMBOL_SIZE(L(DP_P2))
 
 	.p2align 3
 L(DP_P0): /* double precision polynomial coefficient P0 */
 	.long	0xffffe7c6, 0x3fefffff
 	.type L(DP_P0), @object
-	ASM_SIZE_DIRECTIVE(L(DP_P0))
+	SYMBOL_SIZE(L(DP_P0))
 
 	.p2align 2
 L(SP_RANGE): /* single precision overflow/underflow bounds */
 	.long	0x42b17217	/* if x>this bound, then result overflows */
 	.long	0x42cff1b4	/* if x<this bound, then result underflows */
 	.type L(SP_RANGE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_RANGE))
+	SYMBOL_SIZE(L(SP_RANGE))
 
 	.p2align 2
 L(SP_INF_0):
 	.long	0x7f800000	/* single precision Inf */
 	.long	0		/* single precision zero */
 	.type L(SP_INF_0), @object
-	ASM_SIZE_DIRECTIVE(L(SP_INF_0))
+	SYMBOL_SIZE(L(SP_INF_0))
 
 	.section .rodata.cst4,"aM",@progbits,4
 	.p2align 2
 L(SP_RS): /* single precision 2^23+2^22 */
 	.long	0x4b400000
 	.type L(SP_RS), @object
-	ASM_SIZE_DIRECTIVE(L(SP_RS))
+	SYMBOL_SIZE(L(SP_RS))
 
 	.p2align 2
 L(SP_SMALL): /* single precision small value 2^(-100) */
 	.long	0x0d800000
 	.type L(SP_SMALL), @object
-	ASM_SIZE_DIRECTIVE(L(SP_SMALL))
+	SYMBOL_SIZE(L(SP_SMALL))
 
 	.p2align 2
 L(SP_LARGE): /* single precision large value 2^100 */
 	.long	0x71800000
 	.type L(SP_LARGE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_LARGE))
+	SYMBOL_SIZE(L(SP_LARGE))
 
 	.p2align 2
 L(SP_ONE): /* single precision 1.0 */
 	.long	0x3f800000
 	.type L(SP_ONE), @object
-	ASM_SIZE_DIRECTIVE(L(SP_ONE))
+	SYMBOL_SIZE(L(SP_ONE))
 
 strong_alias (__ieee754_expf, __expf_finite)
--- libc/sysdeps/x86_64/fpu/e_log10l.S.mp	2012-09-18 08:15:31.348487754 +0200
+++ libc/sysdeps/x86_64/fpu/e_log10l.S	2012-09-18 08:21:25.554453188 +0200
@@ -15,13 +15,13 @@
 	.p2align 3
 	.type one,@object
 one:	.double 1.0
-	ASM_SIZE_DIRECTIVE(one)
+	SYMBOL_SIZE(one)
 	/* It is not important that this constant is precise.  It is only
 	   a value which is known to be on the safe side for using the
 	   fyl2xp1 instruction.  */
 	.type limit,@object
 limit:	.double 0.29
-	ASM_SIZE_DIRECTIVE(limit)
+	SYMBOL_SIZE(limit)
 
 
 #ifdef PIC
--- libc/sysdeps/x86_64/fpu/s_copysignf.S.mp	2012-09-18 08:15:31.351487762 +0200
+++ libc/sysdeps/x86_64/fpu/s_copysignf.S	2012-09-18 08:38:05.335230910 +0200
@@ -1,5 +1,5 @@
 /* copy sign, double version.
-   Copyright (C) 2002, 2006, 2012 Free Software Foundation, Inc.
+   Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 2002.
 
@@ -25,7 +25,7 @@
 	.type mask,@object
 mask:
 	.byte 0xff, 0xff, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(mask)
+	SYMBOL_SIZE(mask)
 
 #ifdef PIC
 #define MO(op) op##(%rip)
--- libc/sysdeps/x86_64/fpu/s_copysign.S.mp	2012-09-18 08:15:31.350487760 +0200
+++ libc/sysdeps/x86_64/fpu/s_copysign.S	2012-09-18 08:38:11.079247914 +0200
@@ -1,5 +1,5 @@
 /* copy sign, double version.
-   Copyright (C) 2002, 2006, 2011-2012 Free Software Foundation, Inc.
+   Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 2002.
 
@@ -26,12 +26,12 @@
 signmask:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(signmask)
+	SYMBOL_SIZE(signmask)
 	.type othermask,@object
 othermask:
 	.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0
-	ASM_SIZE_DIRECTIVE(othermask)
+	SYMBOL_SIZE(othermask)
 
 #ifdef PIC
 #define MO(op) op##(%rip)
--- libc/sysdeps/x86_64/fpu/e_scalbl.S.mp	2012-09-18 08:15:31.354487769 +0200
+++ libc/sysdeps/x86_64/fpu/e_scalbl.S	2012-09-18 08:21:25.557453197 +0200
@@ -19,7 +19,7 @@ zero_nan:
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
-	ASM_SIZE_DIRECTIVE(zero_nan)
+	SYMBOL_SIZE(zero_nan)
 
 
 #ifdef PIC
--- libc/sysdeps/x86_64/_mcount.S.mp	2012-09-18 08:15:31.355487772 +0200
+++ libc/sysdeps/x86_64/_mcount.S	2012-09-18 08:21:25.558453200 +0200
@@ -60,7 +60,7 @@ C_LABEL(_mcount)
 	addq	$56,%rsp
 	ret
 
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+	SYMBOL_SIZE(C_SYMBOL_NAME(_mcount))
 
 #undef mcount
 weak_alias (_mcount, mcount)
@@ -101,4 +101,4 @@ C_LABEL(__fentry__)
 	addq	$64,%rsp
 	ret
 
-	ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(__fentry__))
+	SYMBOL_SIZE(C_SYMBOL_NAME(__fentry__))
--- libc/sysdeps/x86_64/sysdep.h.mp	2012-09-18 08:08:40.885492086 +0200
+++ libc/sysdeps/x86_64/sysdep.h	2012-09-18 08:09:05.518560362 +0200
@@ -1,5 +1,5 @@
 /* Assembler macros for x86-64.
-   Copyright (C) 2001, 2002, 2003, 2011, 2012 Free Software Foundation, Inc.
+   Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,6 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C.  */
@@ -42,7 +41,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)
+  SYMBOL_SIZE(name)
 
 #define ENTRY_CHK(name) ENTRY (name)
 #define END_CHK(name) END (name)
--- libc/sysdeps/sh/_mcount.S.mp	2012-09-18 08:15:31.357487778 +0200
+++ libc/sysdeps/sh/_mcount.S	2012-09-18 08:21:25.558453200 +0200
@@ -81,7 +81,7 @@ C_LABEL(_mcount)
 1:	.long	C_SYMBOL_NAME(__mcount_internal)
 #endif
 	cfi_endproc
-ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
+SYMBOL_SIZE(C_SYMBOL_NAME(_mcount))
 
 #undef mcount
 weak_alias (_mcount, mcount)
--- libc/sysdeps/sh/sysdep.h.mp	2012-09-18 08:06:01.034049006 +0200
+++ libc/sysdeps/sh/sysdep.h	2012-09-18 08:06:32.157135272 +0200
@@ -1,5 +1,5 @@
 /* Assembler macros for SH.
-   Copyright (C) 1999, 2000, 2005, 2012 Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +23,6 @@
 /* Syntactic details of assembler.  */
 
 #define ALIGNARG(log2) log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 #ifdef SHARED
 #define PLTJMP(_x)	_x##@PLT
@@ -44,7 +43,7 @@
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name))
+  SYMBOL_SIZE(C_SYMBOL_NAME(name))
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #ifdef	PROF
--- libc/sysdeps/powerpc/sysdep.h.mp	2012-09-18 08:06:44.391169183 +0200
+++ libc/sysdeps/powerpc/sysdep.h	2012-09-18 08:07:07.245232528 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2001-2002, 2006, 2012 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -147,6 +147,5 @@
 
 /* This seems to always be the case on PPC.  */
 #define ALIGNARG(log2) log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 #endif	/* __ASSEMBLER__ */
--- libc/sysdeps/powerpc/powerpc64/start.S.mp	2012-09-18 08:15:31.358487781 +0200
+++ libc/sysdeps/powerpc/powerpc64/start.S	2012-09-18 08:38:29.302301875 +0200
@@ -1,6 +1,5 @@
 /* Startup code for programs linked with GNU libc.  PowerPC64 version.
-   Copyright (C) 1998,1999,2000,2001,2002,2003,2009
-   Free Software Foundation, Inc.
+   Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -51,7 +50,7 @@ L(start_addresses):
 	.quad 	__libc_csu_init
 	.quad 	__libc_csu_fini
 
-	ASM_SIZE_DIRECTIVE(L(start_addresses))
+	SYMBOL_SIZE(L(start_addresses))
 
 	.section	".toc","aw"
 .L01:
--- libc/sysdeps/powerpc/powerpc32/start.S.mp	2012-09-18 08:15:31.359487784 +0200
+++ libc/sysdeps/powerpc/powerpc32/start.S	2012-09-18 08:38:43.161342914 +0200
@@ -1,6 +1,5 @@
 /* Startup code for programs linked with GNU libc.
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2009, 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -49,7 +48,7 @@ L(start_addresses):
 	.long	BP_SYM (main)
 	.long 	__libc_csu_init
 	.long 	__libc_csu_fini
-	ASM_SIZE_DIRECTIVE(L(start_addresses))
+	SYMBOL_SIZE(L(start_addresses))
 
 	.section ".text"
 ENTRY(_start)
--- libc/sysdeps/powerpc/powerpc32/sysdep.h.mp	2012-09-18 08:07:52.484357926 +0200
+++ libc/sysdeps/powerpc/powerpc32/sysdep.h	2012-09-18 08:08:33.883472680 +0200
@@ -1,6 +1,5 @@
 /* Assembly macros for 32-bit PowerPC.
-   Copyright (C) 1999, 2001-2003, 2006, 2011-2012
-	Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -87,7 +86,7 @@ GOT_LABEL:			;					      \
 #undef	END
 #define END(name)							      \
   cfi_endproc;								      \
-  ASM_SIZE_DIRECTIVE(name)
+  SYMBOL_SIZE(name)
 
 #define DO_CALL(syscall)						      \
     li 0,syscall;							      \

	Marek

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-18  8:22           ` [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2) Marek Polacek
@ 2012-09-18 17:07             ` Roland McGrath
  2012-09-18 18:57               ` Carlos O'Donell
  2012-09-18 19:07               ` Andreas Schwab
  2012-09-18 19:06             ` Joseph S. Myers
  1 sibling, 2 replies; 22+ messages in thread
From: Roland McGrath @ 2012-09-18 17:07 UTC (permalink / raw)
  To: Marek Polacek
  Cc: Andreas Schwab, libc-alpha, libc-ports, Kaz Kojima,
	Andreas Krebbel, David Miller

That looks fine to me, though I am having second thoughts about the exact
choice of name.  SYMBOL_SIZE doesn't really communicate that it computes
based on ., i.e. that the placement of the macro relative to assembly code
following the symbol is crucial.  Good names are not coming to mind just now.


Thanks,
Roland

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-18 17:07             ` Roland McGrath
@ 2012-09-18 18:57               ` Carlos O'Donell
  2012-09-19  9:29                 ` Pedro Alves
                                   ` (2 more replies)
  2012-09-18 19:07               ` Andreas Schwab
  1 sibling, 3 replies; 22+ messages in thread
From: Carlos O'Donell @ 2012-09-18 18:57 UTC (permalink / raw)
  To: Roland McGrath
  Cc: Marek Polacek, Andreas Schwab, libc-alpha, libc-ports,
	Kaz Kojima, Andreas Krebbel, David Miller

On 9/18/2012 1:06 PM, Roland McGrath wrote:
> That looks fine to me, though I am having second thoughts about the exact
> choice of name.  SYMBOL_SIZE doesn't really communicate that it computes
> based on ., i.e. that the placement of the macro relative to assembly code
> following the symbol is crucial.  Good names are not coming to mind just now.

Imply that it's computed: SYMBOL_CALC_SIZE?

Imply that it's positional: SYMBOL_HERE_SIZE?

Cheers,
Carlos.
-- 
Carlos O'Donell
Mentor Graphics / CodeSourcery
carlos_odonell@mentor.com
carlos@codesourcery.com
+1 (613) 963 1026

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-18  8:22           ` [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2) Marek Polacek
  2012-09-18 17:07             ` Roland McGrath
@ 2012-09-18 19:06             ` Joseph S. Myers
  1 sibling, 0 replies; 22+ messages in thread
From: Joseph S. Myers @ 2012-09-18 19:06 UTC (permalink / raw)
  To: Marek Polacek
  Cc: Roland McGrath, Andreas Schwab, libc-alpha, libc-ports,
	Kaz Kojima, Andreas Krebbel, David Miller

Whatever the new macro is called, it would seem that places using .size 
directly (with the particular idiom the macro uses - there are some other 
.size uses as well that don't follow this idiom) should be converted to 
use the macro - whether as part of the patch, or with a separate issue 
being filed to convert them.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-18 17:07             ` Roland McGrath
  2012-09-18 18:57               ` Carlos O'Donell
@ 2012-09-18 19:07               ` Andreas Schwab
  2012-09-18 20:19                 ` Roland McGrath
  1 sibling, 1 reply; 22+ messages in thread
From: Andreas Schwab @ 2012-09-18 19:07 UTC (permalink / raw)
  To: Roland McGrath
  Cc: Marek Polacek, libc-alpha, libc-ports, Kaz Kojima,
	Andreas Krebbel, David Miller

Perhaps the end address should be made a parameter.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-18 19:07               ` Andreas Schwab
@ 2012-09-18 20:19                 ` Roland McGrath
  0 siblings, 0 replies; 22+ messages in thread
From: Roland McGrath @ 2012-09-18 20:19 UTC (permalink / raw)
  To: Andreas Schwab
  Cc: Marek Polacek, libc-alpha, libc-ports, Kaz Kojima,
	Andreas Krebbel, David Miller

> Perhaps the end address should be made a parameter.

If you have to give . as an argument after foo, there is pretty much no
point in having the macro.  "SOMETHING (foo, .)" is not much less obscure
or error-prone than ".size foo, .-foo".

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-18 18:57               ` Carlos O'Donell
@ 2012-09-19  9:29                 ` Pedro Alves
  2012-09-19 11:59                 ` Marek Polacek
  2012-09-19 18:19                 ` Mike Frysinger
  2 siblings, 0 replies; 22+ messages in thread
From: Pedro Alves @ 2012-09-19  9:29 UTC (permalink / raw)
  To: Carlos O'Donell
  Cc: Roland McGrath, Marek Polacek, Andreas Schwab, libc-alpha,
	libc-ports, Kaz Kojima, Andreas Krebbel, David Miller

On 09/18/2012 07:57 PM, Carlos O'Donell wrote:
> On 9/18/2012 1:06 PM, Roland McGrath wrote:
>> That looks fine to me, though I am having second thoughts about the exact
>> choice of name.  SYMBOL_SIZE doesn't really communicate that it computes
>> based on ., i.e. that the placement of the macro relative to assembly code
>> following the symbol is crucial.  Good names are not coming to mind just now.
> 
> Imply that it's computed: SYMBOL_CALC_SIZE?
> 
> Imply that it's positional: SYMBOL_HERE_SIZE?

FUNCTION_END
FUNCTION_ENDS_HERE

SYMBOL_END
SYMBOL_ENDS_HERE

/me loves a good bikeshed :-)

-- 
Pedro Alves

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-18 18:57               ` Carlos O'Donell
  2012-09-19  9:29                 ` Pedro Alves
@ 2012-09-19 11:59                 ` Marek Polacek
  2012-09-19 15:04                   ` Carlos O'Donell
  2012-09-19 18:19                 ` Mike Frysinger
  2 siblings, 1 reply; 22+ messages in thread
From: Marek Polacek @ 2012-09-19 11:59 UTC (permalink / raw)
  To: Carlos O'Donell
  Cc: Roland McGrath, Andreas Schwab, libc-alpha, libc-ports,
	Kaz Kojima, Andreas Krebbel, David Miller

On Tue, Sep 18, 2012 at 02:57:17PM -0400, Carlos O'Donell wrote:
> On 9/18/2012 1:06 PM, Roland McGrath wrote:
> > That looks fine to me, though I am having second thoughts about the exact
> > choice of name.  SYMBOL_SIZE doesn't really communicate that it computes
> > based on ., i.e. that the placement of the macro relative to assembly code
> > following the symbol is crucial.  Good names are not coming to mind just now.
> 
> Imply that it's computed: SYMBOL_CALC_SIZE?
> 
> Imply that it's positional: SYMBOL_HERE_SIZE?

Or what about 'COMPUTE_SYMBOL_SIZE' or 'SYMBOL_SIZE_EXPR' or just
'SIZE_EXPR'?  I tried to find something similar in binutils and kernel, but they
aren't using any kind of macro for this.

	Marek

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-19 11:59                 ` Marek Polacek
@ 2012-09-19 15:04                   ` Carlos O'Donell
  0 siblings, 0 replies; 22+ messages in thread
From: Carlos O'Donell @ 2012-09-19 15:04 UTC (permalink / raw)
  To: Marek Polacek
  Cc: Roland McGrath, Andreas Schwab, libc-alpha, libc-ports,
	Kaz Kojima, Andreas Krebbel, David Miller

On 9/19/2012 7:58 AM, Marek Polacek wrote:
> On Tue, Sep 18, 2012 at 02:57:17PM -0400, Carlos O'Donell wrote:
>> On 9/18/2012 1:06 PM, Roland McGrath wrote:
>>> That looks fine to me, though I am having second thoughts about the exact
>>> choice of name.  SYMBOL_SIZE doesn't really communicate that it computes
>>> based on ., i.e. that the placement of the macro relative to assembly code
>>> following the symbol is crucial.  Good names are not coming to mind just now.
>>
>> Imply that it's computed: SYMBOL_CALC_SIZE?
>>
>> Imply that it's positional: SYMBOL_HERE_SIZE?
> 
> Or what about 'COMPUTE_SYMBOL_SIZE' or 'SYMBOL_SIZE_EXPR' or just
> 'SIZE_EXPR'?  I tried to find something similar in binutils and kernel, but they
> aren't using any kind of macro for this.

I like SIZE_EXPR, and suggest we use *_EXPR to describe macros with positional
parameters that might change if moved.

Cheers,
Carlos.
-- 
Carlos O'Donell
Mentor Graphics / CodeSourcery
carlos_odonell@mentor.com
carlos@codesourcery.com
+1 (613) 963 1026

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-18 18:57               ` Carlos O'Donell
  2012-09-19  9:29                 ` Pedro Alves
  2012-09-19 11:59                 ` Marek Polacek
@ 2012-09-19 18:19                 ` Mike Frysinger
  2012-09-19 18:38                   ` Chris Metcalf
       [not found]                   ` <505A0FA6.9020805@tilera.com>
  2 siblings, 2 replies; 22+ messages in thread
From: Mike Frysinger @ 2012-09-19 18:19 UTC (permalink / raw)
  To: libc-alpha
  Cc: Carlos O'Donell, Roland McGrath, Marek Polacek,
	Andreas Schwab, libc-ports, Kaz Kojima, Andreas Krebbel,
	David Miller

[-- Attachment #1: Type: Text/Plain, Size: 704 bytes --]

On Tuesday 18 September 2012 14:57:17 Carlos O'Donell wrote:
> On 9/18/2012 1:06 PM, Roland McGrath wrote:
> > That looks fine to me, though I am having second thoughts about the exact
> > choice of name.  SYMBOL_SIZE doesn't really communicate that it computes
> > based on ., i.e. that the placement of the macro relative to assembly
> > code following the symbol is crucial.  Good names are not coming to mind
> > just now.
> 
> Imply that it's computed: SYMBOL_CALC_SIZE?
> 
> Imply that it's positional: SYMBOL_HERE_SIZE?

if we aren't terribly set on names, i'd say let's just use the same macros 
that the kernel already does since other projects have picked up those styles.
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
  2012-09-19 18:19                 ` Mike Frysinger
@ 2012-09-19 18:38                   ` Chris Metcalf
       [not found]                   ` <505A0FA6.9020805@tilera.com>
  1 sibling, 0 replies; 22+ messages in thread
From: Chris Metcalf @ 2012-09-19 18:38 UTC (permalink / raw)
  To: Mike Frysinger
  Cc: libc-alpha, Carlos O'Donell, Roland McGrath, Marek Polacek,
	Andreas Schwab, libc-ports, Kaz Kojima, Andreas Krebbel,
	David Miller

(Resending to avoid some html foisted on me by Thunderbird.)

On 9/19/2012 2:18 PM, Mike Frysinger wrote:
> On Tuesday 18 September 2012 14:57:17 Carlos O'Donell wrote:
>> On 9/18/2012 1:06 PM, Roland McGrath wrote:
>>> That looks fine to me, though I am having second thoughts about the exact
>>> choice of name. SYMBOL_SIZE doesn't really communicate that it computes
>>> based on ., i.e. that the placement of the macro relative to assembly
>>> code following the symbol is crucial. Good names are not coming to mind
>>> just now.
>>
>> Imply that it's computed: SYMBOL_CALC_SIZE?
>>
>> Imply that it's positional: SYMBOL_HERE_SIZE?
>
> if we aren't terribly set on names, i'd say let's just use the same macros
> that the kernel already does since other projects have picked up those
styles.

I think this would suggest just making the default END macro set the
function size, using an explicit ".size", which brings us full-circle to
the idea of just getting rid of ASM_SIZE_DIRECTIVE. :-)  However, the glibc
use of END implies a function symbol, since most architectures include
cfi_endproc in it, unlike the kernel use.  You could imagine using
END_SYM(name), for example, to mean purely the .size directive, then the
function-centric macro END(name) could just include END_SYM(name) as part
of its expansion.  The upshot is we could just bomb ASM_SIZE_DIRECTIVE to
END_SYM everywhere, and move the definition out of the sysdep hierarchy.

-- 
Chris Metcalf, Tilera Corp.
http://www.tilera.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2)
       [not found]                   ` <505A0FA6.9020805@tilera.com>
@ 2012-09-19 18:45                     ` Mike Frysinger
  0 siblings, 0 replies; 22+ messages in thread
From: Mike Frysinger @ 2012-09-19 18:45 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: libc-alpha, Carlos O'Donell, Roland McGrath, Marek Polacek,
	Andreas Schwab, libc-ports, Kaz Kojima, Andreas Krebbel,
	David Miller

[-- Attachment #1: Type: Text/Plain, Size: 1340 bytes --]

On Wednesday 19 September 2012 14:32:06 Chris Metcalf wrote:
> On 9/19/2012 2:18 PM, Mike Frysinger wrote:
> > On Tuesday 18 September 2012 14:57:17 Carlos O'Donell wrote:
> >> On 9/18/2012 1:06 PM, Roland McGrath wrote:
> >>> That looks fine to me, though I am having second thoughts about the
> >>> exact choice of name. SYMBOL_SIZE doesn't really communicate that it
> >>> computes based on ., i.e. that the placement of the macro relative to
> >>> assembly code following the symbol is crucial. Good names are not
> >>> coming to mind just now.
> >> 
> >> Imply that it's computed: SYMBOL_CALC_SIZE?
> >> 
> >> Imply that it's positional: SYMBOL_HERE_SIZE?
> > 
> > if we aren't terribly set on names, i'd say let's just use the same
> > macros that the kernel already does since other projects have picked up
> > those
> 
> styles.
> 
> I think this would suggest just making the default END macro set the
> function size, using an explicit ".size", which brings us full-circle to
> the idea of just getting rid of ASM_SIZE_DIRECTIVE. :-)  However, the glibc
> use of END implies a function symbol, since most architectures include
> cfi_endproc in it, unlike the kernel use.

the kernel has ENDPROC which sets the type to func and sets .size, and there's 
no reason we couldn't add cfi stuff to it.
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2012-09-19 18:45 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-17 14:20 [PATCH] Get rid of ASM_SIZE_DIRECTIVE Marek Polacek
2012-09-17 15:04 ` Carlos O'Donell
2012-09-17 15:22   ` Marek Polacek
2012-09-17 15:25 ` Andreas Schwab
2012-09-17 15:35   ` Marek Polacek
2012-09-17 16:00     ` Carlos O'Donell
2012-09-17 19:25     ` Roland McGrath
2012-09-17 19:53       ` Marek Polacek
2012-09-17 20:01         ` Roland McGrath
2012-09-18  8:22           ` [PATCH] Get rid of ASM_SIZE_DIRECTIVE (take 2) Marek Polacek
2012-09-18 17:07             ` Roland McGrath
2012-09-18 18:57               ` Carlos O'Donell
2012-09-19  9:29                 ` Pedro Alves
2012-09-19 11:59                 ` Marek Polacek
2012-09-19 15:04                   ` Carlos O'Donell
2012-09-19 18:19                 ` Mike Frysinger
2012-09-19 18:38                   ` Chris Metcalf
     [not found]                   ` <505A0FA6.9020805@tilera.com>
2012-09-19 18:45                     ` Mike Frysinger
2012-09-18 19:07               ` Andreas Schwab
2012-09-18 20:19                 ` Roland McGrath
2012-09-18 19:06             ` Joseph S. Myers
2012-09-17 18:43   ` [PATCH] Get rid of ASM_SIZE_DIRECTIVE Mike Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).