From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10334 invoked by alias); 27 Jul 2012 19:20:52 -0000 Received: (qmail 9717 invoked by uid 22791); 27 Jul 2012 19:20:25 -0000 X-SWARE-Spam-Status: No, hits=-5.4 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,SARE_SUB_GETRID,SPF_HELO_PASS,TW_XB,TW_XF,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 27 Jul 2012 19:19:44 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q6RJIuX7011507 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 27 Jul 2012 15:18:57 -0400 Received: from redhat.com (vpn-11-123.rdu.redhat.com [10.11.11.123]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q6RJInRP001056 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Fri, 27 Jul 2012 15:18:52 -0400 Date: Fri, 27 Jul 2012 19:20:00 -0000 From: Marek Polacek To: libc-alpha@sourceware.org Cc: libc-ports , Kaz Kojima , Andreas Krebbel , David Miller Subject: [PATCH] Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX} Message-ID: <20120727191849.GJ3311@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-IsSubscribed: yes Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2012-07/txt/msg00070.txt.bz2 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 [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 <&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 <&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 #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 #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 #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 #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<, 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<=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 , 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 .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< .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 <&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 <&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then libc_cv_asm_unique_object=yes Marek