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/doc | |
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/doc')
-rw-r--r-- | gcc/doc/tm.texi | 18 | ||||
-rw-r--r-- | gcc/doc/tm.texi.in | 11 |
2 files changed, 29 insertions, 0 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 68d1bb0..c2aa216 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -1581,6 +1581,15 @@ anyway. If you don't define this and @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is 128 then the default is 1, otherwise it is 0. @end defmac +@defmac LIBGCC2_GNU_PREFIX +This macro corresponds to the @code{TARGET_LIBFUNC_GNU_PREFIX} target +hook and should be defined if that hook is overriden to be true. It +causes function names in libgcc to be changed to use a @code{__gnu_} +prefix for their name rather than the default @code{__}. A port which +uses this macro should also arrange to use @file{t-gnu-prefix} in +the libgcc @file{config.host}. +@end defmac + @defmac SF_SIZE @defmacx DF_SIZE @defmacx XF_SIZE @@ -5245,6 +5254,15 @@ library routines. The default is to do nothing. Most ports don't need to define this hook. @end deftypefn +@deftypevr {Target Hook} bool TARGET_LIBFUNC_GNU_PREFIX +If false (the default), internal library routines start with two +underscores. If set to true, these routines start with @code{__gnu_} +instead. E.g., @code{__muldi3} changes to @code{__gnu_muldi3}. This +currently only affects functions defined in @file{libgcc2.c}. If this +is set to true, the @file{tm.h} file must also +@code{#define LIBGCC2_GNU_PREFIX}. +@end deftypevr + @defmac FLOAT_LIB_COMPARE_RETURNS_BOOL (@var{mode}, @var{comparison}) This macro should return @code{true} if the library routine that implements the floating point comparison operator @var{comparison} in diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index d31e5e3..ab0b39b 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -1571,6 +1571,15 @@ anyway. If you don't define this and @code{LIBGCC2_LONG_DOUBLE_TYPE_SIZE} is 128 then the default is 1, otherwise it is 0. @end defmac +@defmac LIBGCC2_GNU_PREFIX +This macro corresponds to the @code{TARGET_LIBFUNC_GNU_PREFIX} target +hook and should be defined if that hook is overriden to be true. It +causes function names in libgcc to be changed to use a @code{__gnu_} +prefix for their name rather than the default @code{__}. A port which +uses this macro should also arrange to use @file{t-gnu-prefix} in +the libgcc @file{config.host}. +@end defmac + @defmac SF_SIZE @defmacx DF_SIZE @defmacx XF_SIZE @@ -5197,6 +5206,8 @@ library routines. The default is to do nothing. Most ports don't need to define this hook. @end deftypefn +@hook TARGET_LIBFUNC_GNU_PREFIX + @defmac FLOAT_LIB_COMPARE_RETURNS_BOOL (@var{mode}, @var{comparison}) This macro should return @code{true} if the library routine that implements the floating point comparison operator @var{comparison} in |