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


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

[PATCH] Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}


As the subject says, this patch removes all uses of
ASM_TYPE_DIRECTIVE{,_PREFIX} macros.  I did not touch the ports/
directory.  Tested x86_64 and i?86.  It'd be nice if someone could
test also sh, ppc and s390 (pretty please!).

Ok for trunk?

2012-07-27  Marek Polacek  <polacek@redhat.com>

	[BZ#14150]
	* configure.in (libc_cv_asm_type_prefix): Remove test.  Replace
	libc_cv_asm_type_prefix with %.
	* configure: Regenerated.
	* include/libc-symbols.h: Remove comment about ASM_TYPE_DIRECTIVE_PREFIX.
	Replace ASM_TYPE_DIRECTIVE_PREFIX with %.
	(declare_symbol_alias_1_paste) [__ASSEMBLER__]: Do not define.
	(declare_symbol_alias_1_paste_1) [__ASSEMBLER__]: Likewise.
	(declare_symbol_alias_1_stringify) [!__ASSEMBLER__]: Likewise.
	(declare_symbol_alias_1_stringify_1) [!__ASSEMBLER__]: Likewise.
	* elf/tst-unique2mod2.c: Replace ASM_TYPE_DIRECTIVE_PREFIX with %.
	[HAVE_ASM_UNIQUE_OBJECT]: Do not define S.
	[HAVE_ASM_UNIQUE_OBJECT]: Do not define _S.
	* elf/tst-unique2mod1.c: Likewise.
	* elf/tst-unique1mod2.c: Likewise.
	* elf/tst-unique1mod1.c: Likewise.
	* config.h.in: Do not undef ASM_TYPE_DIRECTIVE_PREFIX.
	* sysdeps/s390/s390-32/sysdep.h: Do not define ASM_TYPE_DIRECTIVE.
	Replace ASM_TYPE_DIRECTIVE with .type.
	* 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: Do not define ASM_TYPE_DIRECTIVE.
	* sysdeps/powerpc/sysdep.h: Likewise.
	* sysdeps/powerpc/powerpc32/sysdep.h: Replace ASM_TYPE_DIRECTIVE with .type.
	* sysdeps/s390/s390-32/s390-mcount.S: Likewise.
	* sysdeps/s390/s390-64/s390x-mcount.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/e_expf-sse2.S: Likewise.
	* sysdeps/i386/i686/fpu/e_logl.S: Likewise.
	* sysdeps/i386/i686/strtok.S: Likewise.
	* sysdeps/i386/i386-mcount.S: Likewise.
	* sysdeps/i386/strtok.S: Likewise.
	* sysdeps/x86_64/fpu/e_expl.S: Likewise.
	* sysdeps/x86_64/fpu/e_log2l.S: Likewise.
	* sysdeps/x86_64/fpu/e_powl.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/x86_64/strtok.S: Likewise.
	* sysdeps/sh/_mcount.S: Likewise.

--- libc/configure.mp	2012-07-25 15:18:20.312546196 +0200
+++ libc/configure	2012-07-27 16:20:15.801208858 +0200
@@ -4076,43 +4076,7 @@ else
 $as_echo "yes" >&6; }
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler .type directive prefix" >&5
-$as_echo_n "checking for assembler .type directive prefix... " >&6; }
-if ${libc_cv_asm_type_prefix+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  libc_cv_asm_type_prefix=no
-for ac_try_prefix in '@' '%' '#'; do
-  cat > conftest.s <<EOF
-	${libc_cv_dot_text}
-	.globl foo
-	.type foo, ${ac_try_prefix}object
-	.size foo, 1
-foo:
-	.byte 1
-EOF
-  if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-    libc_cv_asm_type_prefix=${ac_try_prefix}
-  fi
-  rm -f conftest*
-  test "x$libc_cv_asm_type_prefix" != xno && break
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_type_prefix" >&5
-$as_echo "$libc_cv_asm_type_prefix" >&6; }
-if test "x$libc_cv_asm_type_prefix" != xno; then
-  cat >>confdefs.h <<_ACEOF
-#define ASM_TYPE_DIRECTIVE_PREFIX ${libc_cv_asm_type_prefix}
-_ACEOF
-
-fi
-
-if test x"$libc_cv_asm_gnu_indirect_function" != xyes -o x"$libc_cv_asm_type_prefix" = xno; then
+if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
   if test x"$multi_arch" = xyes; then
     as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
   else
@@ -5728,7 +5692,7 @@ else
   cat > conftest.s <<EOF
 ${libc_cv_dot_text}
 _sym:
-.type _sym, ${libc_cv_asm_type_prefix}gnu_unique_object
+.type _sym, %gnu_unique_object
 EOF
 if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then
   libc_cv_asm_unique_object=yes
--- libc/include/libc-symbols.h.mp	2012-07-25 15:30:49.948703413 +0200
+++ libc/include/libc-symbols.h	2012-07-27 16:20:15.803208864 +0200
@@ -27,8 +27,6 @@
    It should define for us the following symbols:
 
    * HAVE_ASM_SET_DIRECTIVE if we have `.set B, A' instead of `A = B'.
-   * ASM_TYPE_DIRECTIVE_PREFIX with `@' or `#' or whatever for .type,
-     or leave it undefined if there is no .type directive.
    * HAVE_ASM_WEAK_DIRECTIVE if we have weak symbols using `.weak'.
    * HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'.
 
@@ -252,37 +250,26 @@ for linking")
    thinks it is.  */
 #define declare_symbol_alias(symbol, original, type, size) \
   declare_symbol_alias_1 (symbol, original, type, size)
-#ifdef ASM_TYPE_DIRECTIVE_PREFIX
-# ifdef __ASSEMBLER__
-#  define declare_symbol_alias_1(symbol, original, type, size) \
-    strong_alias (original, symbol); \
-    .type C_SYMBOL_NAME (symbol), \
-	  declare_symbol_alias_1_paste (ASM_TYPE_DIRECTIVE_PREFIX, type); \
-    .size C_SYMBOL_NAME (symbol), size
-#  define declare_symbol_alias_1_paste(a, b) \
-  declare_symbol_alias_1_paste_1 (a,b)
-#  define declare_symbol_alias_1_paste_1(a,b)	a##b
-# else /* Not __ASSEMBLER__.  */
-#  define declare_symbol_alias_1(symbol, original, type, size) \
-    asm (".globl " __SYMBOL_PREFIX #symbol \
-	 "\n\t" declare_symbol_alias_1_alias (symbol, original) \
-	 "\n\t.type " __SYMBOL_PREFIX #symbol ", " \
-	 declare_symbol_alias_1_stringify (ASM_TYPE_DIRECTIVE_PREFIX) #type \
-	 "\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);
-#  define declare_symbol_alias_1_stringify(x) \
-  declare_symbol_alias_1_stringify_1 (x)
-#  define declare_symbol_alias_1_stringify_1(x) #x
-#  ifdef HAVE_ASM_SET_DIRECTIVE
-#   define declare_symbol_alias_1_alias(symbol, original) \
-	 ".set " __SYMBOL_PREFIX #symbol ", " __SYMBOL_PREFIX #original
-#  else
-#   define declare_symbol_alias_1_alias(symbol, original) \
-	 __SYMBOL_PREFIX #symbol " = " __SYMBOL_PREFIX #original
-#  endif /* HAVE_ASM_SET_DIRECTIVE */
-# endif /* __ASSEMBLER__ */
-#else
-# define declare_symbol_1(symbol, type, size) /* Nothing.  */
-#endif
+#ifdef __ASSEMBLER__
+# define declare_symbol_alias_1(symbol, original, type, size) \
+   strong_alias (original, symbol); \
+   .type C_SYMBOL_NAME (symbol), %##type; \
+   .size C_SYMBOL_NAME (symbol), size
+#else /* Not __ASSEMBLER__.  */
+# define declare_symbol_alias_1(symbol, original, type, size) \
+   asm (".globl " __SYMBOL_PREFIX #symbol \
+	"\n\t" declare_symbol_alias_1_alias (symbol, original) \
+	"\n\t.type " __SYMBOL_PREFIX #symbol ", " \
+	"%" #type \
+	"\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);
+# ifdef HAVE_ASM_SET_DIRECTIVE
+#  define declare_symbol_alias_1_alias(symbol, original) \
+     ".set " __SYMBOL_PREFIX #symbol ", " __SYMBOL_PREFIX #original
+# else
+#  define declare_symbol_alias_1_alias(symbol, original) \
+     __SYMBOL_PREFIX #symbol " = " __SYMBOL_PREFIX #original
+# endif /* HAVE_ASM_SET_DIRECTIVE */
+#endif /* __ASSEMBLER__ */
 
 
 /*
--- libc/elf/tst-unique2mod2.c.mp	2012-07-25 16:31:13.723131491 +0200
+++ libc/elf/tst-unique2mod2.c	2012-07-27 16:20:15.807208873 +0200
@@ -1,12 +1,9 @@
 #include <config.h>
 
 #ifdef HAVE_ASM_UNIQUE_OBJECT
-# define S(s) _S (s)
-# define _S(s) #s
-
 asm (".data;"
      ".globl var\n"
-     ".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
+     ".type var, %gnu_unique_object\n"
      ".size var, 4\n"
      "var:.zero 4\n"
      ".previous");
--- libc/elf/tst-unique2mod1.c.mp	2012-07-25 16:35:11.204814886 +0200
+++ libc/elf/tst-unique2mod1.c	2012-07-27 16:20:15.807208873 +0200
@@ -1,12 +1,9 @@
 #include <config.h>
 
 #ifdef HAVE_ASM_UNIQUE_OBJECT
-# define S(s) _S (s)
-# define _S(s) #s
-
 asm (".data;"
      ".globl var\n"
-     ".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
+     ".type var, %gnu_unique_object\n"
      ".size var, 4\n"
      "var:.zero 4\n"
      ".previous");
--- libc/elf/tst-unique1mod2.c.mp	2012-07-25 16:34:08.950635742 +0200
+++ libc/elf/tst-unique1mod2.c	2012-07-27 16:20:15.807208873 +0200
@@ -1,12 +1,9 @@
 #include <config.h>
 
 #ifdef HAVE_ASM_UNIQUE_OBJECT
-# define S(s) _S (s)
-# define _S(s) #s
-
 asm (".data;"
      ".globl var\n"
-     ".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
+     ".type var, %gnu_unique_object\n"
      ".size var, 4\n"
      "var:.zero 4\n"
      ".previous");
--- libc/elf/tst-unique1mod1.c.mp	2012-07-25 16:30:31.218009174 +0200
+++ libc/elf/tst-unique1mod1.c	2012-07-27 16:20:15.808208876 +0200
@@ -1,12 +1,9 @@
 #include <config.h>
 
 #ifdef HAVE_ASM_UNIQUE_OBJECT
-# define S(s) _S (s)
-# define _S(s) #s
-
 asm (".data;"
      ".globl var\n"
-     ".type var, " S (ASM_TYPE_DIRECTIVE_PREFIX) "gnu_unique_object\n"
+     ".type var, %gnu_unique_object\n"
      ".size var, 4\n"
      "var:.zero 4\n"
      ".previous");
--- libc/config.h.in.mp	2012-07-25 15:29:50.604532635 +0200
+++ libc/config.h.in	2012-07-27 16:20:15.809208879 +0200
@@ -37,10 +37,6 @@
 /* Define if the assembler supports the `.set' directive.  */
 #undef	HAVE_ASM_SET_DIRECTIVE
 
-/* Define to the prefix before `object' or `function' in the
-   assembler's `.type' directive, if it has one.  */
-#undef	ASM_TYPE_DIRECTIVE_PREFIX
-
 /* Define if the assembler supports the gnu_unique_object symbol type.  */
 #undef	HAVE_ASM_UNIQUE_OBJECT
 
--- libc/sysdeps/s390/s390-32/sysdep.h.mp	2012-07-27 15:39:47.069917969 +0200
+++ libc/sysdeps/s390/s390-32/sysdep.h	2012-07-27 16:20:15.810208882 +0200
@@ -25,15 +25,13 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-/* For ELF we need the `.type' directive to make shared libs work right.  */
-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
 #define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C. */
 #define	ENTRY(name)							      \
-  .globl C_SYMBOL_NAME(name);				      \
-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function)			      \
+  .globl C_SYMBOL_NAME(name);						      \
+  .type C_SYMBOL_NAME(name),@function;					      \
   .align ALIGNARG(2);							      \
   C_LABEL(name)								      \
   cfi_startproc;							      \
--- libc/sysdeps/s390/s390-32/s390-mcount.S.mp	2012-07-27 15:39:29.481872412 +0200
+++ libc/sysdeps/s390/s390-32/s390-mcount.S	2012-07-27 16:20:15.810208882 +0200
@@ -48,7 +48,7 @@
  */
 
 	.globl C_SYMBOL_NAME(_mcount)
-	ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
+	.type C_SYMBOL_NAME(_mcount), @function
 	cfi_startproc
 	.align ALIGNARG(4)
 C_LABEL(_mcount)
--- libc/sysdeps/s390/s390-64/sysdep.h.mp	2012-07-27 15:38:34.881730987 +0200
+++ libc/sysdeps/s390/s390-64/sysdep.h	2012-07-27 16:20:15.811208885 +0200
@@ -25,15 +25,13 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-/* For ELF we need the `.type' directive to make shared libs work right.  */
-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
 #define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C. */
 #define	ENTRY(name)							      \
-  .globl C_SYMBOL_NAME(name);				      \
-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function)			      \
+  .globl C_SYMBOL_NAME(name);						      \
+  .type C_SYMBOL_NAME(name),@function;					      \
   .align ALIGNARG(2);							      \
   C_LABEL(name)								      \
   cfi_startproc;							      \
--- libc/sysdeps/s390/s390-64/s390x-mcount.S.mp	2012-07-27 15:39:04.057806557 +0200
+++ libc/sysdeps/s390/s390-64/s390x-mcount.S	2012-07-27 16:20:15.811208885 +0200
@@ -44,7 +44,7 @@
    _mcount may not modify any register.  */
 
 	.globl C_SYMBOL_NAME(_mcount)
-	ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
+	.type C_SYMBOL_NAME(_mcount), @function
 	cfi_startproc
 	.align ALIGNARG(4)
 C_LABEL(_mcount)
--- libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h.mp	2012-07-27 15:38:03.815650521 +0200
+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h	2012-07-27 16:20:15.812208887 +0200
@@ -58,8 +58,6 @@
 
 /* This seems to always be the case on PPC.  */
 # define ALIGNARG(log2) log2
-/* For ELF we need the `.type' directive to make shared libs work right.  */
-# define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
 # define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 #endif /* __ASSEMBLER__ */
--- libc/sysdeps/i386/fpu/e_powf.S.mp	2012-07-26 20:16:30.916439670 +0200
+++ libc/sysdeps/i386/fpu/e_powf.S	2012-07-27 16:20:15.813208889 +0200
@@ -23,28 +23,28 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
-	ASM_TYPE_DIRECTIVE(p31,@object)
+	.type p31,@object
 p31:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x41
 	ASM_SIZE_DIRECTIVE(p31)
 
 	.section .rodata.cst16,"aM",@progbits,16
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(infinity,@object)
+	.type infinity,@object
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
 	ASM_SIZE_DIRECTIVE(infinity)
-	ASM_TYPE_DIRECTIVE(zero,@object)
+	.type zero,@object
 zero:	.double 0.0
 	ASM_SIZE_DIRECTIVE(zero)
-	ASM_TYPE_DIRECTIVE(minf_mzero,@object)
+	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
--- libc/sysdeps/i386/fpu/e_expl.S.mp	2012-07-27 15:25:22.646678943 +0200
+++ libc/sysdeps/i386/fpu/e_expl.S	2012-07-27 16:20:15.813208889 +0200
@@ -42,26 +42,26 @@
 
 	.p2align 4
 #ifdef USE_AS_EXP10L
-	ASM_TYPE_DIRECTIVE(c0,@object)
+	.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)
-	ASM_TYPE_DIRECTIVE(c1,@object)
+	.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)
 #else
-	ASM_TYPE_DIRECTIVE(c0,@object)
+	.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)
-	ASM_TYPE_DIRECTIVE(c1,@object)
+	.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)
 #endif
 #ifndef USE_AS_EXPM1L
-	ASM_TYPE_DIRECTIVE(csat,@object)
+	.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)
--- libc/sysdeps/i386/fpu/e_atanhf.S.mp	2012-07-27 15:27:30.039008914 +0200
+++ libc/sysdeps/i386/fpu/e_atanhf.S	2012-07-27 16:20:15.814208891 +0200
@@ -22,17 +22,17 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(half,@object)
+	.type half,@object
 half:	.double 0.5
 	ASM_SIZE_DIRECTIVE(half)
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(ln2_2,@object)
+	.type ln2_2,@object
 ln2_2:	.tfloat 0.3465735902799726547086160
 	ASM_SIZE_DIRECTIVE(ln2_2)
 
--- libc/sysdeps/i386/fpu/e_acosh.S.mp	2012-07-27 15:28:06.539103453 +0200
+++ libc/sysdeps/i386/fpu/e_acosh.S	2012-07-27 16:20:15.814208891 +0200
@@ -22,10 +22,10 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_pow.S.mp	2012-07-27 15:24:36.457559305 +0200
+++ libc/sysdeps/i386/fpu/e_pow.S	2012-07-27 16:20:15.815208894 +0200
@@ -23,31 +23,31 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
-	ASM_TYPE_DIRECTIVE(p63,@object)
+	.type p63,@object
 p63:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
 	ASM_SIZE_DIRECTIVE(p63)
-	ASM_TYPE_DIRECTIVE(p10,@object)
+	.type p10,@object
 p10:	.byte 0, 0, 0, 0, 0, 0, 0x90, 0x40
 	ASM_SIZE_DIRECTIVE(p10)
 
 	.section .rodata.cst16,"aM",@progbits,16
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(infinity,@object)
+	.type infinity,@object
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
 	ASM_SIZE_DIRECTIVE(infinity)
-	ASM_TYPE_DIRECTIVE(zero,@object)
+	.type zero,@object
 zero:	.double 0.0
 	ASM_SIZE_DIRECTIVE(zero)
-	ASM_TYPE_DIRECTIVE(minf_mzero,@object)
+	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
--- libc/sysdeps/i386/fpu/s_asinhl.S.mp	2012-07-27 15:26:16.188817629 +0200
+++ libc/sysdeps/i386/fpu/s_asinhl.S	2012-07-27 16:20:15.815208894 +0200
@@ -22,20 +22,20 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(huge,@object)
+	.type huge,@object
 huge:	.tfloat 1e+4930
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_acoshl.S.mp	2012-07-26 20:14:47.741754103 +0200
+++ libc/sysdeps/i386/fpu/e_acoshl.S	2012-07-27 16:20:15.816208897 +0200
@@ -25,13 +25,13 @@
 	/* 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.  */
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/s_expm1.S.mp	2012-07-27 15:20:18.535891237 +0200
+++ libc/sysdeps/i386/fpu/s_expm1.S	2012-07-27 16:20:15.816208897 +0200
@@ -27,13 +27,13 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(minus1,@object)
+	.type minus1,@object
 minus1:	.double -1.0
 	ASM_SIZE_DIRECTIVE(minus1)
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(l2e,@object)
+	.type l2e,@object
 l2e:	.tfloat 1.442695040888963407359924681002
 	ASM_SIZE_DIRECTIVE(l2e)
 
--- libc/sysdeps/i386/fpu/s_frexpf.S.mp	2012-07-26 20:11:41.473184005 +0200
+++ libc/sysdeps/i386/fpu/s_frexpf.S	2012-07-27 16:20:15.817208900 +0200
@@ -24,7 +24,7 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(two25,@object)
+	.type two25,@object
 two25:	.byte 0, 0, 0, 0x4c
 	ASM_SIZE_DIRECTIVE(two25)
 
--- libc/sysdeps/i386/fpu/e_log2.S.mp	2012-07-27 15:09:17.783179757 +0200
+++ libc/sysdeps/i386/fpu/e_log2.S	2012-07-27 16:20:15.817208900 +0200
@@ -11,13 +11,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_log2l.S.mp	2012-07-26 20:16:08.310000692 +0200
+++ libc/sysdeps/i386/fpu/e_log2l.S	2012-07-27 16:20:15.818208903 +0200
@@ -11,13 +11,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_scalb.S.mp	2012-07-27 15:06:19.137717029 +0200
+++ libc/sysdeps/i386/fpu/e_scalb.S	2012-07-27 16:20:15.819208905 +0200
@@ -10,7 +10,7 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(zero_nan,@object)
+	.type zero_nan,@object
 zero_nan:
 	.double 0.0
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
--- libc/sysdeps/i386/fpu/e_powl.S.mp	2012-07-27 15:07:34.821913069 +0200
+++ libc/sysdeps/i386/fpu/e_powl.S	2012-07-27 16:20:15.820208907 +0200
@@ -23,34 +23,34 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
-	ASM_TYPE_DIRECTIVE(p63,@object)
+	.type p63,@object
 p63:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
 	ASM_SIZE_DIRECTIVE(p63)
-	ASM_TYPE_DIRECTIVE(p64,@object)
+	.type p64,@object
 p64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
 	ASM_SIZE_DIRECTIVE(p64)
-	ASM_TYPE_DIRECTIVE(p78,@object)
+	.type p78,@object
 p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
 	ASM_SIZE_DIRECTIVE(p78)
 
 	.section .rodata.cst16,"aM",@progbits,16
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(infinity,@object)
+	.type infinity,@object
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
 	ASM_SIZE_DIRECTIVE(infinity)
-	ASM_TYPE_DIRECTIVE(zero,@object)
+	.type zero,@object
 zero:	.double 0.0
 	ASM_SIZE_DIRECTIVE(zero)
-	ASM_TYPE_DIRECTIVE(minf_mzero,@object)
+	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
--- libc/sysdeps/i386/fpu/e_log10f.S.mp	2012-07-27 15:05:12.798545202 +0200
+++ libc/sysdeps/i386/fpu/e_log10f.S	2012-07-27 16:20:15.821208909 +0200
@@ -11,13 +11,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/s_cbrtf.S.mp	2012-07-27 15:06:35.908760470 +0200
+++ libc/sysdeps/i386/fpu/s_cbrtf.S	2012-07-27 16:20:15.821208909 +0200
@@ -23,13 +23,13 @@
         .section .rodata
 
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f3,@object)
+        .type f3,@object
 f3:	.double 0.191502161678719066
         ASM_SIZE_DIRECTIVE(f3)
-        ASM_TYPE_DIRECTIVE(f2,@object)
+        .type f2,@object
 f2:	.double 0.697570460207922770
         ASM_SIZE_DIRECTIVE(f2)
-        ASM_TYPE_DIRECTIVE(f1,@object)
+        .type f1,@object
 f1:	.double 0.492659620528969547
         ASM_SIZE_DIRECTIVE(f1)
 
@@ -38,7 +38,7 @@ f1:	.double 0.492659620528969547
 #define SQR_CBRT2	1.5874010519681994748
 #define ONE_SQR_CBRT2	0.629960524947436582364439673883
 
-	ASM_TYPE_DIRECTIVE(factor,@object)
+	.type factor,@object
         .align ALIGNARG(4)
 factor:	.double ONE_SQR_CBRT2
 	.double ONE_CBRT2
@@ -47,7 +47,7 @@ factor:	.double ONE_SQR_CBRT2
 	.double SQR_CBRT2
 	ASM_SIZE_DIRECTIVE(factor)
 
-        ASM_TYPE_DIRECTIVE(two25,@object)
+        .type two25,@object
 two25:	.byte 0, 0, 0, 0x4c
         ASM_SIZE_DIRECTIVE(two25)
 
--- libc/sysdeps/i386/fpu/e_logl.S.mp	2012-07-27 15:28:29.598163183 +0200
+++ libc/sysdeps/i386/fpu/e_logl.S	2012-07-27 16:20:15.822208912 +0200
@@ -11,13 +11,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/s_cbrt.S.mp	2012-07-27 14:55:50.994090015 +0200
+++ libc/sysdeps/i386/fpu/s_cbrt.S	2012-07-27 16:20:15.823208915 +0200
@@ -23,25 +23,25 @@
         .section .rodata
 
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f7,@object)
+        .type f7,@object
 f7:	.double -0.145263899385486377
 	ASM_SIZE_DIRECTIVE(f7)
-        ASM_TYPE_DIRECTIVE(f6,@object)
+        .type f6,@object
 f6:	.double 0.784932344976639262
 	ASM_SIZE_DIRECTIVE(f6)
-        ASM_TYPE_DIRECTIVE(f5,@object)
+        .type f5,@object
 f5:	.double -1.83469277483613086
 	ASM_SIZE_DIRECTIVE(f5)
-        ASM_TYPE_DIRECTIVE(f4,@object)
+        .type f4,@object
 f4:	.double 2.44693122563534430
 	ASM_SIZE_DIRECTIVE(f4)
-        ASM_TYPE_DIRECTIVE(f3,@object)
+        .type f3,@object
 f3:	.double -2.11499494167371287
 	ASM_SIZE_DIRECTIVE(f3)
-        ASM_TYPE_DIRECTIVE(f2,@object)
+        .type f2,@object
 f2:	.double 1.50819193781584896
 	ASM_SIZE_DIRECTIVE(f2)
-        ASM_TYPE_DIRECTIVE(f1,@object)
+        .type f1,@object
 f1:	.double 0.354895765043919860
 	ASM_SIZE_DIRECTIVE(f1)
 
@@ -50,7 +50,7 @@ f1:	.double 0.354895765043919860
 #define SQR_CBRT2	1.5874010519681994748
 #define ONE_SQR_CBRT2	0.629960524947436582364439673883
 
-	ASM_TYPE_DIRECTIVE(factor,@object)
+	.type factor,@object
 factor:	.double ONE_SQR_CBRT2
 	.double ONE_CBRT2
 	.double 1.0
@@ -58,7 +58,7 @@ factor:	.double ONE_SQR_CBRT2
 	.double SQR_CBRT2
 	ASM_SIZE_DIRECTIVE(factor)
 
-        ASM_TYPE_DIRECTIVE(two54,@object)
+        .type two54,@object
 two54:  .byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
         ASM_SIZE_DIRECTIVE(two54)
 
--- libc/sysdeps/i386/fpu/s_frexpl.S.mp	2012-07-27 15:23:27.485380651 +0200
+++ libc/sysdeps/i386/fpu/s_frexpl.S	2012-07-27 16:20:15.823208915 +0200
@@ -24,7 +24,7 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(two64,@object)
+	.type two64,@object
 two64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
 	ASM_SIZE_DIRECTIVE(two64)
 
--- libc/sysdeps/i386/fpu/s_expm1f.S.mp	2012-07-27 14:59:54.839721626 +0200
+++ libc/sysdeps/i386/fpu/s_expm1f.S	2012-07-27 16:20:15.823208915 +0200
@@ -27,13 +27,13 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(minus1,@object)
+	.type minus1,@object
 minus1:	.double -1.0
 	ASM_SIZE_DIRECTIVE(minus1)
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(l2e,@object)
+	.type l2e,@object
 l2e:	.tfloat 1.442695040888963407359924681002
 	ASM_SIZE_DIRECTIVE(l2e)
 
--- libc/sysdeps/i386/fpu/e_log2f.S.mp	2012-07-27 15:21:53.069136095 +0200
+++ libc/sysdeps/i386/fpu/e_log2f.S	2012-07-27 16:20:15.824208918 +0200
@@ -11,13 +11,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_acoshf.S.mp	2012-07-27 15:24:05.848480021 +0200
+++ libc/sysdeps/i386/fpu/e_acoshf.S	2012-07-27 16:20:15.826208924 +0200
@@ -22,10 +22,10 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_log.S.mp	2012-07-27 15:05:50.132641903 +0200
+++ libc/sysdeps/i386/fpu/e_log.S	2012-07-27 16:20:15.827208926 +0200
@@ -10,13 +10,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_scalbf.S.mp	2012-07-27 15:05:36.330606153 +0200
+++ libc/sysdeps/i386/fpu/e_scalbf.S	2012-07-27 16:20:15.827208926 +0200
@@ -11,7 +11,7 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(zero_nan,@object)
+	.type zero_nan,@object
 zero_nan:
 	.double 0.0
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
--- libc/sysdeps/i386/fpu/e_logf.S.mp	2012-07-26 20:13:26.028504012 +0200
+++ libc/sysdeps/i386/fpu/e_logf.S	2012-07-27 16:20:15.828208928 +0200
@@ -11,13 +11,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_log10l.S.mp	2012-07-27 15:17:18.774425620 +0200
+++ libc/sysdeps/i386/fpu/e_log10l.S	2012-07-27 16:20:15.828208928 +0200
@@ -12,13 +12,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_atanh.S.mp	2012-07-27 15:00:19.993786780 +0200
+++ libc/sysdeps/i386/fpu/e_atanh.S	2012-07-27 16:20:15.829208930 +0200
@@ -22,16 +22,16 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(half,@object)
+	.type half,@object
 half:	.double 0.5
 	ASM_SIZE_DIRECTIVE(half)
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
-	ASM_TYPE_DIRECTIVE(ln2_2,@object)
+	.type ln2_2,@object
 ln2_2:	.tfloat 0.3465735902799726547086160
 	ASM_SIZE_DIRECTIVE(ln2_2)
 
--- libc/sysdeps/i386/fpu/s_asinhf.S.mp	2012-07-27 15:19:03.314696400 +0200
+++ libc/sysdeps/i386/fpu/s_asinhf.S	2012-07-27 16:20:15.830208932 +0200
@@ -22,13 +22,13 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(huge,@object)
+	.type huge,@object
 huge:	.double 1e+36
 	ASM_SIZE_DIRECTIVE(huge)
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/e_log10.S.mp	2012-07-27 15:07:16.230864915 +0200
+++ libc/sysdeps/i386/fpu/e_log10.S	2012-07-27 16:20:15.831208935 +0200
@@ -10,13 +10,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/s_frexp.S.mp	2012-07-27 15:23:49.282437113 +0200
+++ libc/sysdeps/i386/fpu/s_frexp.S	2012-07-27 16:20:15.831208935 +0200
@@ -24,7 +24,7 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(two54,@object)
+	.type two54,@object
 two54:	.byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
 	ASM_SIZE_DIRECTIVE(two54)
 
--- libc/sysdeps/i386/fpu/e_atanhl.S.mp	2012-07-26 20:14:04.247620984 +0200
+++ libc/sysdeps/i386/fpu/e_atanhl.S	2012-07-27 16:20:15.832208938 +0200
@@ -25,20 +25,20 @@
 	/* Please note that we use double values for 0.5 and 1.0.  These
 	   numbers have exact representations and so we don't get accuracy
 	   problems.  The advantage is that the code is simpler.  */
-	ASM_TYPE_DIRECTIVE(half,@object)
+	.type half,@object
 half:	.double 0.5
 	ASM_SIZE_DIRECTIVE(half)
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(ln2_2,@object)
+	.type ln2_2,@object
 ln2_2:	.tfloat 0.3465735902799726547086160
 	ASM_SIZE_DIRECTIVE(ln2_2)
 
--- libc/sysdeps/i386/fpu/s_asinh.S.mp	2012-07-26 20:15:38.288908809 +0200
+++ libc/sysdeps/i386/fpu/s_asinh.S	2012-07-27 16:20:15.833208941 +0200
@@ -22,13 +22,13 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(huge,@object)
+	.type huge,@object
 huge:	.double 1e+300
 	ASM_SIZE_DIRECTIVE(huge)
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/fpu/s_cbrtl.S.mp	2012-07-27 15:17:48.592502851 +0200
+++ libc/sysdeps/i386/fpu/s_cbrtl.S	2012-07-27 16:20:15.833208941 +0200
@@ -23,35 +23,35 @@
         .section .rodata
 
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f8,@object)
+        .type f8,@object
 f8:	.tfloat 0.161617097923756032
 	ASM_SIZE_DIRECTIVE(f8)
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f7,@object)
+        .type f7,@object
 f7:	.tfloat -0.988553671195413709
 	ASM_SIZE_DIRECTIVE(f7)
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f6,@object)
+        .type f6,@object
 f6:	.tfloat 2.65298938441952296
 	ASM_SIZE_DIRECTIVE(f6)
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f5,@object)
+        .type f5,@object
 f5:	.tfloat -4.11151425200350531
 	ASM_SIZE_DIRECTIVE(f5)
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f4,@object)
+        .type f4,@object
 f4:	.tfloat 4.09559907378707839
 	ASM_SIZE_DIRECTIVE(f4)
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f3,@object)
+        .type f3,@object
 f3:	.tfloat -2.82414939754975962
 	ASM_SIZE_DIRECTIVE(f3)
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f2,@object)
+        .type f2,@object
 f2:	.tfloat 1.67595307700780102
 	ASM_SIZE_DIRECTIVE(f2)
         .align ALIGNARG(4)
-        ASM_TYPE_DIRECTIVE(f1,@object)
+        .type f1,@object
 f1:	.tfloat 0.338058687610520237
 	ASM_SIZE_DIRECTIVE(f1)
 
@@ -62,7 +62,7 @@ f1:	.tfloat 0.338058687610520237
 
 	/* We make the entries in the following table all 16 bytes
 	   wide to avoid having to implement a multiplication by 10.  */
-	ASM_TYPE_DIRECTIVE(factor,@object)
+	.type factor,@object
         .align ALIGNARG(4)
 factor:	.tfloat ONE_SQR_CBRT2
 	.byte 0, 0, 0, 0, 0, 0
@@ -75,7 +75,7 @@ factor:	.tfloat ONE_SQR_CBRT2
 	.tfloat SQR_CBRT2
 	ASM_SIZE_DIRECTIVE(factor)
 
-        ASM_TYPE_DIRECTIVE(two64,@object)
+        .type two64,@object
         .align ALIGNARG(4)
 two64:  .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
         ASM_SIZE_DIRECTIVE(two64)
--- libc/sysdeps/i386/fpu/e_scalbl.S.mp	2012-07-26 20:13:07.200446384 +0200
+++ libc/sysdeps/i386/fpu/e_scalbl.S	2012-07-27 16:20:15.834208944 +0200
@@ -12,7 +12,7 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(zero_nan,@object)
+	.type zero_nan,@object
 zero_nan:
 	.double 0.0
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
--- libc/sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S.mp	2012-07-26 20:06:56.865312928 +0200
+++ libc/sysdeps/i386/i686/fpu/multiarch/e_expf-sse2.S	2012-07-27 16:20:15.835208947 +0200
@@ -243,82 +243,82 @@ L(DP_T): /* table of double precision va
 	.long	0xee615a27, 0x3ffefa1b
 	.long	0x5b6e4540, 0x3fff5076
 	.long	0x819e90d8, 0x3fffa7c1
-	ASM_TYPE_DIRECTIVE(L(DP_T), @object)
+	.type L(DP_T), @object
 	ASM_SIZE_DIRECTIVE(L(DP_T))
 
 	.section .rodata.cst8,"aM",@progbits,8
 	.p2align 3
 L(DP_KLN2): /* double precision K/log(2) */
 	.long	0x652b82fe, 0x40571547
-	ASM_TYPE_DIRECTIVE(L(DP_KLN2), @object)
+	.type L(DP_KLN2), @object
 	ASM_SIZE_DIRECTIVE(L(DP_KLN2))
 
 	.p2align 3
 L(DP_NLN2K): /* double precision -log(2)/K */
 	.long	0xfefa39ef, 0xbf862e42
-	ASM_TYPE_DIRECTIVE(L(DP_NLN2K), @object)
+	.type L(DP_NLN2K), @object
 	ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
 
 	.p2align 3
 L(DP_RS): /* double precision 2^23+2^22 */
 	.long	0x00000000, 0x41680000
-	ASM_TYPE_DIRECTIVE(L(DP_RS), @object)
+	.type L(DP_RS), @object
 	ASM_SIZE_DIRECTIVE(L(DP_RS))
 
 	.p2align 3
 L(DP_P3): /* double precision polynomial coefficient P3 */
 	.long	0xeb78fa85, 0x3fa56420
-	ASM_TYPE_DIRECTIVE(L(DP_P3), @object)
+	.type L(DP_P3), @object
 	ASM_SIZE_DIRECTIVE(L(DP_P3))
 
 	.p2align 3
 L(DP_P1): /* double precision polynomial coefficient P1 */
 	.long	0x008d6118, 0x3fe00000
-	ASM_TYPE_DIRECTIVE(L(DP_P1), @object)
+	.type L(DP_P1), @object
 	ASM_SIZE_DIRECTIVE(L(DP_P1))
 
 	.p2align 3
 L(DP_P2): /* double precision polynomial coefficient P2 */
 	.long	0xda752d4f, 0x3fc55550
-	ASM_TYPE_DIRECTIVE(L(DP_P2), @object)
+	.type L(DP_P2), @object
 	ASM_SIZE_DIRECTIVE(L(DP_P2))
 
 	.p2align 3
 L(DP_P0): /* double precision polynomial coefficient P0 */
 	.long	0xffffe7c6, 0x3fefffff
-	ASM_TYPE_DIRECTIVE(L(DP_P0), @object)
+	.type L(DP_P0), @object
 	ASM_SIZE_DIRECTIVE(L(DP_P0))
 
 	.p2align 2
 L(SP_INF_0):
 	.long	0x7f800000	/* single precision Inf */
 	.long	0		/* single precision zero */
-	ASM_TYPE_DIRECTIVE(L(SP_INF_0), @object)
+	.type L(SP_INF_0), @object
 	ASM_SIZE_DIRECTIVE(L(SP_INF_0))
 
 	.section .rodata.cst4,"aM",@progbits,4
 	.p2align 2
 L(SP_RS): /* single precision 2^23+2^22 */
 	.long	0x4b400000
-	ASM_TYPE_DIRECTIVE(L(SP_RS), @object)
+	.type L(SP_RS), @object
 	ASM_SIZE_DIRECTIVE(L(SP_RS))
 
 	.p2align 2
 L(SP_SMALL): /* single precision small value 2^(-100) */
 	.long	0x0d800000
-	ASM_TYPE_DIRECTIVE(L(SP_SMALL), @object)
+	.type L(SP_SMALL), @object
 	ASM_SIZE_DIRECTIVE(L(SP_SMALL))
 
 	.p2align 2
 L(SP_LARGE): /* single precision large value 2^100 */
 	.long	0x71800000
-	ASM_TYPE_DIRECTIVE(L(SP_LARGE), @object)
+	.type L(SP_LARGE), @object
 	ASM_SIZE_DIRECTIVE(L(SP_LARGE))
 
 	.p2align 2
 L(SP_ONE): /* single precision 1.0 */
 	.long	0x3f800000
-	ASM_TYPE_DIRECTIVE(L(SP_ONE), @object)
+	.type L(SP_ONE), @object
 	ASM_SIZE_DIRECTIVE(L(SP_ONE))
 
 strong_alias (__ieee754_expf_sse2, __expf_finite_sse2)
--- libc/sysdeps/i386/i686/fpu/e_logl.S.mp	2012-07-26 20:10:16.597924233 +0200
+++ libc/sysdeps/i386/i686/fpu/e_logl.S	2012-07-27 16:20:15.835208947 +0200
@@ -12,13 +12,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/i386/i686/strtok.S.mp	2012-07-26 20:10:40.935998723 +0200
+++ libc/sysdeps/i386/i686/strtok.S	2012-07-27 16:20:15.836208950 +0200
@@ -1,6 +1,6 @@
 /* strtok (str, delim) -- Return next DELIM separated token from STR.
    For Intel 80686.
-   Copyright (C) 1998, 2000, 2001, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1998-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -43,7 +43,7 @@
 #else
 	.bss
 	.local save_ptr
-	ASM_TYPE_DIRECTIVE (save_ptr, @object)
+	.type save_ptr, @object
 	.size save_ptr, 4
 save_ptr:
 # if __BOUNDED_POINTERS__
--- libc/sysdeps/i386/sysdep.h.mp	2012-07-26 20:03:48.692316837 +0200
+++ libc/sysdeps/i386/sysdep.h	2012-07-27 16:20:15.836208950 +0200
@@ -50,8 +50,6 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-/* For ELF we need the `.type' directive to make shared libs work right.  */
-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
 #define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
@@ -63,8 +61,8 @@
 #define	ENTRY(name)							      \
   STABS_CURRENT_FILE1("")						      \
   STABS_CURRENT_FILE(name)						      \
-  .globl C_SYMBOL_NAME(name);				      \
-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function)			      \
+  .globl C_SYMBOL_NAME(name);						      \
+  .type C_SYMBOL_NAME(name),@function;					      \
   .align ALIGNARG(4);							      \
   STABS_FUN(name)							      \
   C_LABEL(name)								      \
--- libc/sysdeps/i386/i386-mcount.S.mp	2012-07-26 20:05:47.829101634 +0200
+++ libc/sysdeps/i386/i386-mcount.S	2012-07-27 16:20:15.837208952 +0200
@@ -27,7 +27,7 @@
      - some (future) systems might want to pass parameters in registers.  */
 
 	.globl C_SYMBOL_NAME(_mcount)
-	ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
+	.type C_SYMBOL_NAME(_mcount), @function
 	.align ALIGNARG(4)
 C_LABEL(_mcount)
 	/* Save the caller-clobbered registers.  */
@@ -55,7 +55,7 @@ weak_alias (_mcount, mcount)
 
 	/* Same as above, but doesn't require a frame pointer */
 	.globl C_SYMBOL_NAME(__fentry__)
-	ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__fentry__), @function)
+	.type C_SYMBOL_NAME(__fentry__), @function
 	.align ALIGNARG(4)
 C_LABEL(__fentry__)
 	/* Save the caller-clobbered registers.  */
--- libc/sysdeps/i386/strtok.S.mp	2012-07-27 15:30:22.437455461 +0200
+++ libc/sysdeps/i386/strtok.S	2012-07-27 16:20:15.838208954 +0200
@@ -1,6 +1,6 @@
 /* strtok (str, delim) -- Return next DELIM separated token from STR.
    For Intel 80x86, x>=3.
-   Copyright (C) 1996-1998,2000,2001,2005,2006 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.
 
@@ -43,7 +43,7 @@
 #else
 	.bss
 	.local save_ptr
-	ASM_TYPE_DIRECTIVE (save_ptr, @object)
+	.type save_ptr, @object
 	.size save_ptr, 4
 save_ptr:
 # if __BOUNDED_POINTERS__
--- libc/sysdeps/x86_64/fpu/e_expl.S.mp	2012-07-26 19:59:44.957584039 +0200
+++ libc/sysdeps/x86_64/fpu/e_expl.S	2012-07-27 16:20:15.838208954 +0200
@@ -42,26 +42,26 @@
 
 	.p2align 4
 #ifdef USE_AS_EXP10L
-	ASM_TYPE_DIRECTIVE(c0,@object)
+	.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)
-	ASM_TYPE_DIRECTIVE(c1,@object)
+	.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)
 #else
-	ASM_TYPE_DIRECTIVE(c0,@object)
+	.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)
-	ASM_TYPE_DIRECTIVE(c1,@object)
+	.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)
 #endif
 #ifndef USE_AS_EXPM1L
-	ASM_TYPE_DIRECTIVE(csat,@object)
+	.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)
--- libc/sysdeps/x86_64/fpu/e_log2l.S.mp	2012-07-26 19:49:13.919686795 +0200
+++ libc/sysdeps/x86_64/fpu/e_log2l.S	2012-07-27 16:20:15.839208956 +0200
@@ -12,13 +12,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/x86_64/fpu/e_powl.S.mp	2012-07-26 19:56:40.373029078 +0200
+++ libc/sysdeps/x86_64/fpu/e_powl.S	2012-07-27 16:20:15.839208956 +0200
@@ -23,34 +23,34 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(one)
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
-	ASM_TYPE_DIRECTIVE(p63,@object)
+	.type p63,@object
 p63:	.byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43
 	ASM_SIZE_DIRECTIVE(p63)
-	ASM_TYPE_DIRECTIVE(p64,@object)
+	.type p64,@object
 p64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
 	ASM_SIZE_DIRECTIVE(p64)
-	ASM_TYPE_DIRECTIVE(p78,@object)
+	.type p78,@object
 p78:	.byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
 	ASM_SIZE_DIRECTIVE(p78)
 
 	.section .rodata.cst16,"aM",@progbits,16
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(infinity,@object)
+	.type infinity,@object
 inf_zero:
 infinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f
 	ASM_SIZE_DIRECTIVE(infinity)
-	ASM_TYPE_DIRECTIVE(zero,@object)
+	.type zero,@object
 zero:	.double 0.0
 	ASM_SIZE_DIRECTIVE(zero)
-	ASM_TYPE_DIRECTIVE(minf_mzero,@object)
+	.type minf_mzero,@object
 minf_mzero:
 minfinity:
 	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff
--- libc/sysdeps/x86_64/fpu/e_logl.S.mp	2012-07-26 20:02:58.632166329 +0200
+++ libc/sysdeps/x86_64/fpu/e_logl.S	2012-07-27 16:20:15.840208958 +0200
@@ -12,13 +12,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/x86_64/fpu/e_expf.S.mp	2012-07-26 19:50:01.687830412 +0200
+++ libc/sysdeps/x86_64/fpu/e_expf.S	2012-07-27 16:20:15.841208961 +0200
@@ -251,89 +251,89 @@ L(DP_T): /* table of double precision va
 	.long	0xee615a27, 0x3ffefa1b
 	.long	0x5b6e4540, 0x3fff5076
 	.long	0x819e90d8, 0x3fffa7c1
-	ASM_TYPE_DIRECTIVE(L(DP_T), @object)
+	.type L(DP_T), @object
 	ASM_SIZE_DIRECTIVE(L(DP_T))
 
 	.section .rodata.cst8,"aM",@progbits,8
 	.p2align 3
 L(DP_KLN2): /* double precision K/log(2) */
 	.long	0x652b82fe, 0x40571547
-	ASM_TYPE_DIRECTIVE(L(DP_KLN2), @object)
+	.type L(DP_KLN2), @object
 	ASM_SIZE_DIRECTIVE(L(DP_KLN2))
 
 	.p2align 3
 L(DP_NLN2K): /* double precision -log(2)/K */
 	.long	0xfefa39ef, 0xbf862e42
-	ASM_TYPE_DIRECTIVE(L(DP_NLN2K), @object)
+	.type L(DP_NLN2K), @object
 	ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
 
 	.p2align 3
 L(DP_RS): /* double precision 2^23+2^22 */
 	.long	0x00000000, 0x41680000
-	ASM_TYPE_DIRECTIVE(L(DP_RS), @object)
+	.type L(DP_RS), @object
 	ASM_SIZE_DIRECTIVE(L(DP_RS))
 
 	.p2align 3
 L(DP_P3): /* double precision polynomial coefficient P3 */
 	.long	0xeb78fa85, 0x3fa56420
-	ASM_TYPE_DIRECTIVE(L(DP_P3), @object)
+	.type L(DP_P3), @object
 	ASM_SIZE_DIRECTIVE(L(DP_P3))
 
 	.p2align 3
 L(DP_P1): /* double precision polynomial coefficient P1 */
 	.long	0x008d6118, 0x3fe00000
-	ASM_TYPE_DIRECTIVE(L(DP_P1), @object)
+	.type L(DP_P1), @object
 	ASM_SIZE_DIRECTIVE(L(DP_P1))
 
 	.p2align 3
 L(DP_P2): /* double precision polynomial coefficient P2 */
 	.long	0xda752d4f, 0x3fc55550
-	ASM_TYPE_DIRECTIVE(L(DP_P2), @object)
+	.type L(DP_P2), @object
 	ASM_SIZE_DIRECTIVE(L(DP_P2))
 
 	.p2align 3
 L(DP_P0): /* double precision polynomial coefficient P0 */
 	.long	0xffffe7c6, 0x3fefffff
-	ASM_TYPE_DIRECTIVE(L(DP_P0), @object)
+	.type L(DP_P0), @object
 	ASM_SIZE_DIRECTIVE(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 */
-	ASM_TYPE_DIRECTIVE(L(SP_RANGE), @object)
+	.type L(SP_RANGE), @object
 	ASM_SIZE_DIRECTIVE(L(SP_RANGE))
 
 	.p2align 2
 L(SP_INF_0):
 	.long	0x7f800000	/* single precision Inf */
 	.long	0		/* single precision zero */
-	ASM_TYPE_DIRECTIVE(L(SP_INF_0), @object)
+	.type L(SP_INF_0), @object
 	ASM_SIZE_DIRECTIVE(L(SP_INF_0))
 
 	.section .rodata.cst4,"aM",@progbits,4
 	.p2align 2
 L(SP_RS): /* single precision 2^23+2^22 */
 	.long	0x4b400000
-	ASM_TYPE_DIRECTIVE(L(SP_RS), @object)
+	.type L(SP_RS), @object
 	ASM_SIZE_DIRECTIVE(L(SP_RS))
 
 	.p2align 2
 L(SP_SMALL): /* single precision small value 2^(-100) */
 	.long	0x0d800000
-	ASM_TYPE_DIRECTIVE(L(SP_SMALL), @object)
+	.type L(SP_SMALL), @object
 	ASM_SIZE_DIRECTIVE(L(SP_SMALL))
 
 	.p2align 2
 L(SP_LARGE): /* single precision large value 2^100 */
 	.long	0x71800000
-	ASM_TYPE_DIRECTIVE(L(SP_LARGE), @object)
+	.type L(SP_LARGE), @object
 	ASM_SIZE_DIRECTIVE(L(SP_LARGE))
 
 	.p2align 2
 L(SP_ONE): /* single precision 1.0 */
 	.long	0x3f800000
-	ASM_TYPE_DIRECTIVE(L(SP_ONE), @object)
+	.type L(SP_ONE), @object
 	ASM_SIZE_DIRECTIVE(L(SP_ONE))
 
 strong_alias (__ieee754_expf, __expf_finite)
--- libc/sysdeps/x86_64/fpu/e_log10l.S.mp	2012-07-26 19:59:25.310524970 +0200
+++ libc/sysdeps/x86_64/fpu/e_log10l.S	2012-07-27 16:20:15.842208964 +0200
@@ -13,13 +13,13 @@
 	.section .rodata.cst8,"aM",@progbits,8
 
 	.p2align 3
-	ASM_TYPE_DIRECTIVE(one,@object)
+	.type one,@object
 one:	.double 1.0
 	ASM_SIZE_DIRECTIVE(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.  */
-	ASM_TYPE_DIRECTIVE(limit,@object)
+	.type limit,@object
 limit:	.double 0.29
 	ASM_SIZE_DIRECTIVE(limit)
 
--- libc/sysdeps/x86_64/fpu/s_copysignf.S.mp	2012-07-26 19:55:52.558885323 +0200
+++ libc/sysdeps/x86_64/fpu/s_copysignf.S	2012-07-27 16:20:15.842208964 +0200
@@ -22,7 +22,7 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(mask,@object)
+	.type mask,@object
 mask:
 	.byte 0xff, 0xff, 0xff, 0x7f
 	ASM_SIZE_DIRECTIVE(mask)
--- libc/sysdeps/x86_64/fpu/s_copysign.S.mp	2012-07-26 19:56:16.027955883 +0200
+++ libc/sysdeps/x86_64/fpu/s_copysign.S	2012-07-27 16:20:15.843208967 +0200
@@ -22,12 +22,12 @@
 	.section .rodata.cst16,"aM",@progbits,16
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(signmask,@object)
+	.type signmask,@object
 signmask:
 	.byte 0, 0, 0, 0, 0, 0, 0, 0x80
 	.byte 0, 0, 0, 0, 0, 0, 0, 0
 	ASM_SIZE_DIRECTIVE(signmask)
-	ASM_TYPE_DIRECTIVE(othermask,@object)
+	.type othermask,@object
 othermask:
 	.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f
 	.byte 0, 0, 0, 0, 0, 0, 0, 0
--- libc/sysdeps/x86_64/fpu/e_scalbl.S.mp	2012-07-26 19:47:29.063951155 +0200
+++ libc/sysdeps/x86_64/fpu/e_scalbl.S	2012-07-27 16:20:15.843208967 +0200
@@ -13,7 +13,7 @@
 	.section .rodata
 
 	.align ALIGNARG(4)
-	ASM_TYPE_DIRECTIVE(zero_nan,@object)
+	.type zero_nan,@object
 zero_nan:
 	.double 0.0
 nan:	.byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f
--- libc/sysdeps/x86_64/_mcount.S.mp	2012-07-26 19:22:34.803164936 +0200
+++ libc/sysdeps/x86_64/_mcount.S	2012-07-27 16:20:15.844208970 +0200
@@ -25,7 +25,7 @@
 #include <sysdep.h>
 
 	.globl C_SYMBOL_NAME(_mcount)
-	ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), @function)
+	.type C_SYMBOL_NAME(_mcount), @function
 	.align ALIGNARG(4)
 C_LABEL(_mcount)
 	/* Allocate space for 7 registers.  */
@@ -66,7 +66,7 @@ C_LABEL(_mcount)
 weak_alias (_mcount, mcount)
 
 	.globl C_SYMBOL_NAME(__fentry__)
-	ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(__fentry__), @function)
+	.type C_SYMBOL_NAME(__fentry__), @function
 	.align ALIGNARG(4)
 C_LABEL(__fentry__)
 	/* Allocate space for 7 registers.  */
--- libc/sysdeps/x86_64/sysdep.h.mp	2012-07-25 16:50:54.465529293 +0200
+++ libc/sysdeps/x86_64/sysdep.h	2012-07-27 16:20:15.844208970 +0200
@@ -27,15 +27,13 @@
 
 /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */
 #define ALIGNARG(log2) 1<<log2
-/* For ELF we need the `.type' directive to make shared libs work right.  */
-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
 #define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
 
 
 /* Define an entry point visible from C.  */
 #define	ENTRY(name)							      \
-  .globl C_SYMBOL_NAME(name);				      \
-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function)			      \
+  .globl C_SYMBOL_NAME(name);						      \
+  .type C_SYMBOL_NAME(name),@function;					      \
   .align ALIGNARG(4);							      \
   C_LABEL(name)								      \
   cfi_startproc;							      \
--- libc/sysdeps/x86_64/strtok.S.mp	2012-07-26 20:03:26.830251109 +0200
+++ libc/sysdeps/x86_64/strtok.S	2012-07-27 16:20:15.845208973 +0200
@@ -44,7 +44,7 @@
 #else
 	.bss
 	.local save_ptr
-	ASM_TYPE_DIRECTIVE (save_ptr, @object)
+	.type save_ptr, @object
 	.size save_ptr, LP_SIZE
 save_ptr:
 	.space LP_SIZE
--- libc/sysdeps/sh/_mcount.S.mp	2012-07-27 15:34:22.517077313 +0200
+++ libc/sysdeps/sh/_mcount.S	2012-07-27 16:20:15.845208973 +0200
@@ -20,7 +20,7 @@
 #include <sysdep.h>
 
 	.globl C_SYMBOL_NAME(_mcount)
-	ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(_mcount),function)
+	.type C_SYMBOL_NAME(_mcount),@function
 	cfi_startproc
 	.align	5
 C_LABEL(_mcount)
--- libc/sysdeps/sh/sysdep.h.mp	2012-07-27 15:31:28.002625286 +0200
+++ libc/sysdeps/sh/sysdep.h	2012-07-27 16:20:15.846208975 +0200
@@ -23,8 +23,6 @@
 /* Syntactic details of assembler.  */
 
 #define ALIGNARG(log2) log2
-/* For ELF we need the `.type' directive to make shared libs work right.  */
-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,@##typearg;
 #define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 #ifdef SHARED
@@ -36,8 +34,8 @@
 
 /* Define an entry point visible from C.  */
 #define	ENTRY(name)							      \
-  .globl C_SYMBOL_NAME(name);				      \
-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function)			      \
+  .globl C_SYMBOL_NAME(name);						      \
+  .type C_SYMBOL_NAME(name),@function;					      \
   .align ALIGNARG(5);							      \
   C_LABEL(name)								      \
   cfi_startproc;							      \
--- libc/sysdeps/powerpc/sysdep.h.mp	2012-07-27 15:35:10.379201287 +0200
+++ libc/sysdeps/powerpc/sysdep.h	2012-07-27 16:20:15.846208975 +0200
@@ -147,8 +147,6 @@
 
 /* This seems to always be the case on PPC.  */
 #define ALIGNARG(log2) log2
-/* For ELF we need the `.type' directive to make shared libs work right.  */
-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
 #define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 #endif	/* __ASSEMBLER__ */
--- libc/sysdeps/powerpc/powerpc32/sysdep.h.mp	2012-07-27 15:35:57.935324463 +0200
+++ libc/sysdeps/powerpc/powerpc32/sysdep.h	2012-07-27 16:20:15.847208977 +0200
@@ -30,15 +30,15 @@
 # define CALL_MCOUNT							      \
   mflr  r0;								      \
   stw   r0,4(r1);							      \
-  cfi_offset (lr, 4);	       						      \
+  cfi_offset (lr, 4);							      \
   bl    JUMPTARGET(_mcount);
 #else  /* PROF */
 # define CALL_MCOUNT		/* Do nothing.  */
 #endif /* PROF */
 
 #define	ENTRY(name)							      \
-  .globl C_SYMBOL_NAME(name);				      \
-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function)			      \
+  .globl C_SYMBOL_NAME(name);						      \
+  .type C_SYMBOL_NAME(name),@function;					      \
   .align ALIGNARG(2);							      \
   C_LABEL(name)								      \
   cfi_startproc;							      \
@@ -46,7 +46,7 @@
 
 /* helper macro for accessing the 32-bit powerpc GOT. */
 
-#define	SETUP_GOT_ACCESS(regname,GOT_LABEL)			      	      \
+#define	SETUP_GOT_ACCESS(regname,GOT_LABEL)				      \
 	bcl	20,31,GOT_LABEL	;					      \
 GOT_LABEL:			;					      \
 	mflr	(regname)
@@ -64,8 +64,8 @@ GOT_LABEL:			;					      \
    past a 2^align boundary.  */
 #ifdef PROF
 # define EALIGN(name, alignt, words)					      \
-  .globl C_SYMBOL_NAME(name);				      \
-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function)			      \
+  .globl C_SYMBOL_NAME(name);						      \
+  .type C_SYMBOL_NAME(name),@function;					      \
   .align ALIGNARG(2);							      \
   C_LABEL(name)								      \
   cfi_startproc;							      \
@@ -76,8 +76,8 @@ GOT_LABEL:			;					      \
   0:
 #else /* PROF */
 # define EALIGN(name, alignt, words)					      \
-  .globl C_SYMBOL_NAME(name);				      \
-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function)			      \
+  .globl C_SYMBOL_NAME(name);						      \
+  .type C_SYMBOL_NAME(name),@function;					      \
   .align ALIGNARG(alignt);						      \
   EALIGN_W_##words;							      \
   C_LABEL(name)								      \
@@ -89,7 +89,7 @@ GOT_LABEL:			;					      \
   cfi_endproc;								      \
   ASM_SIZE_DIRECTIVE(name)
 
-#define DO_CALL(syscall)				      		      \
+#define DO_CALL(syscall)						      \
     li 0,syscall;							      \
     sc
 
--- libc/configure.in.mp	2012-07-27 16:19:58.601164307 +0200
+++ libc/configure.in	2012-07-27 16:19:21.386067912 +0200
@@ -581,29 +581,7 @@ else
   AC_MSG_RESULT(yes)
 fi
 
-AC_CACHE_CHECK(for assembler .type directive prefix,
-	       libc_cv_asm_type_prefix, [dnl
-libc_cv_asm_type_prefix=no
-for ac_try_prefix in '@' '%' '#'; do
-  cat > conftest.s <<EOF
-	${libc_cv_dot_text}
-	.globl foo
-	.type foo, ${ac_try_prefix}object
-	.size foo, 1
-foo:
-	.byte 1
-EOF
-  if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
-    libc_cv_asm_type_prefix=${ac_try_prefix}
-  fi
-  rm -f conftest*
-  test "x$libc_cv_asm_type_prefix" != xno && break
-done])
-if test "x$libc_cv_asm_type_prefix" != xno; then
-  AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
-fi
-
-if test x"$libc_cv_asm_gnu_indirect_function" != xyes -o x"$libc_cv_asm_type_prefix" = xno; then
+if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
   if test x"$multi_arch" = xyes; then
     AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
   else
@@ -1125,7 +1103,7 @@ AC_CACHE_CHECK(for assembler gnu_unique_
 cat > conftest.s <<EOF
 ${libc_cv_dot_text}
 _sym:
-.type _sym, ${libc_cv_asm_type_prefix}gnu_unique_object
+.type _sym, %gnu_unique_object
 EOF
 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
   libc_cv_asm_unique_object=yes

	Marek


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