diff options
author | Bernd Schmidt <bernds@codesourcery.com> | 2011-05-25 12:11:42 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2011-05-25 12:11:42 +0000 |
commit | cdbf45414aecd8ec143a0f2634ba7c53b11053ca (patch) | |
tree | 76324632de5089be2fc6b436d8ac4682fc89b374 /gcc/tree.c | |
parent | f242c0a5c0415bda56f33a13ef65e962ac995797 (diff) | |
download | gcc-cdbf45414aecd8ec143a0f2634ba7c53b11053ca.zip gcc-cdbf45414aecd8ec143a0f2634ba7c53b11053ca.tar.gz gcc-cdbf45414aecd8ec143a0f2634ba7c53b11053ca.tar.bz2 |
libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if LIBGCC2_GNU_PREFIX is defined.
gcc/
* libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
LIBGCC2_GNU_PREFIX is defined.
(__N): New macro.
(__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
__mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
__divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
__clz_tab): Define using __N.
(__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
COMPAT_SIMODE_TRAPPING_ARITHMETIC.
* target.def (libfunc_gnu_prefix): New hook.
* doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
(TARGET_LIBFUNC_GNU_PREFIX): Add hook.
* doc/tm.texi: Regenerate.
* system.h (LIBGCC2_GNU_PREFIX): Poison.
* optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
account.
(gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
(init_optabs): Likewise for the bswap libfuncs.
* tree.c (build_common_builtin_nodes): Likewise for complex multiply
and divide.
* config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
* config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
* libgcc-std.ver: Remove.
* Makefile.in (srcdirify): Handle $$(libgcc_objdir).
* config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
libgcc-std.ver.
* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
* config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
* config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
* config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
* config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
* config/fixed-bit.h (FIXED_OP): Define differently depending on
LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
(FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
libgcc/
* libgcc-std.ver.in: New file.
* Makefile.in (LIBGCC_VER_GNU_PREFIX, LIBGCC_VER_SYMBOLS_PREFIX): New
variables.
(libgcc-std.ver): New rule.
* config/t-gnu-prefix: New file.
From-SVN: r174187
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -9525,6 +9525,10 @@ build_common_builtin_nodes (void) const char *p; enum built_in_function mcode, dcode; tree type, inner_type; + const char *prefix = "__"; + + if (targetm.libfunc_gnu_prefix) + prefix = "__gnu_"; type = lang_hooks.types.type_for_mode ((enum machine_mode) mode, 0); if (type == NULL) @@ -9543,13 +9547,17 @@ build_common_builtin_nodes (void) *q = TOLOWER (*p); *q = '\0'; - built_in_names[mcode] = concat ("__mul", mode_name_buf, "3", NULL); + built_in_names[mcode] = concat (prefix, "mul", mode_name_buf, "3", + NULL); local_define_builtin (built_in_names[mcode], ftype, mcode, - built_in_names[mcode], ECF_CONST | ECF_NOTHROW | ECF_LEAF); + built_in_names[mcode], + ECF_CONST | ECF_NOTHROW | ECF_LEAF); - built_in_names[dcode] = concat ("__div", mode_name_buf, "3", NULL); + built_in_names[dcode] = concat (prefix, "div", mode_name_buf, "3", + NULL); local_define_builtin (built_in_names[dcode], ftype, dcode, - built_in_names[dcode], ECF_CONST | ECF_NOTHROW | ECF_LEAF); + built_in_names[dcode], + ECF_CONST | ECF_NOTHROW | ECF_LEAF); } } } |