This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

Re: Prefixes for libgcc symbols (C6X 9.5/11)


>	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.


> + /* Add a __gnu_ prefix to library functions rather than just __.  */
> +DEFHOOKPOD
> +(libfunc_gnu_prefix,
> + "This hook can be used to override the default prefix given to library\n\
> +routines. Normally, this is just two underscores, @code{__}, but\n\
> +it if changed to true, then for example a name like @code{__gnu_muldi3}\n\
> +is used instead of the default @code{__muldi3}. This applies only to\n\
> +functions defined in @file{libgcc2.c}.",
> +  bool, false)

This documentation needs to be better.  This does not permit
overridding the default
prefix.  I'm not sure what "it if changed to true" is trying to say.
How about something more like:

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}.

> +@defmac LIBGCC2_GNU_PREFIX
> +This macro corresponds to the @code{TARGET_LIBFUNC_GNU_PREFIX} target
> +hook and should be defined if this 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

s/this hook/that hook/

This is OK with those changes.

Thanks.

Ian


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