svr4.h avoidance: moxie

Anthony Green green@moxielogic.com
Thu Dec 9 12:51:00 GMT 2010


On 12/7/2010 1:15 PM, Joseph S. Myers wrote:
> This patch in the series removing svr4.h from the headers used by
> particular targets in GCC stops moxie-*-elf and moxie-*-uclinux* from
> using svr4.h, defining the macros used from that header in moxie.h
> instead.  The same simplified LINK_SPEC as in the fr30 patch
> <http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00588.html>  is used.
>
> There is a third moxie target that doesn't use svr4.h, moxie-*-rtems*,
> although some RTEMS targets do use svr4.h.  To avoid perturbing that
> target I made moxie/rtems.h undefine the macros added to moxie.h.  At
> least as regards the standard typedefs I wonder if it was actually
> deliberate that RTEMS use different types (through not using svr4.h).
> If not, and if the moxie maintainers consider it OK to break ABI
> compatibility for C++ code (since the choice of int versus long
> affects name mangling), the moxie maintainers might wish to adjust
> this port to use the same types for all target OSes.
>
> Tested building cc1 and xgcc for crosses to moxie-elf, moxie-uclinux
> and moxie-rtems.  OK to commit?


Thanks Joseph.  This change is OK with me.

AG



>
> 2010-12-07  Joseph Myers<joseph@codesourcery.com>
>
> 	* config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
> 	WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
> 	* config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
> 	WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
> 	* config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
>
> diff -rupN --exclude=.svn gcc-mainline-3/gcc/config/moxie/moxie.h gcc-mainline/gcc/config/moxie/moxie.h
> --- gcc-mainline-3/gcc/config/moxie/moxie.h	2010-12-06 10:31:16.000000000 -0800
> +++ gcc-mainline/gcc/config/moxie/moxie.h	2010-12-07 09:43:22.000000000 -0800
> @@ -48,6 +48,10 @@
>   #undef LIB_SPEC
>   #define LIB_SPEC "%{!shared:%{!symbolic:-lc}}"
>
> +#undef  LINK_SPEC
> +#define LINK_SPEC "%{h*} %{v:-V} \
> +		   %{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic}"
> +
>   /* Layout of Source Language Data Types */
>
>   #define INT_TYPE_SIZE 32
> @@ -61,6 +65,18 @@
>
>   #define DEFAULT_SIGNED_CHAR 1
>
> +#undef  SIZE_TYPE
> +#define SIZE_TYPE "unsigned int"
> +
> +#undef  PTRDIFF_TYPE
> +#define PTRDIFF_TYPE "int"
> +
> +#undef  WCHAR_TYPE
> +#define WCHAR_TYPE "long int"
> +
> +#undef  WCHAR_TYPE_SIZE
> +#define WCHAR_TYPE_SIZE BITS_PER_WORD
> +
>   /* Registers...
>
>      $fp  - frame pointer
> diff -rupN --exclude=.svn gcc-mainline-3/gcc/config/moxie/rtems.h gcc-mainline/gcc/config/moxie/rtems.h
> --- gcc-mainline-3/gcc/config/moxie/rtems.h	2010-07-30 10:03:15.000000000 -0700
> +++ gcc-mainline/gcc/config/moxie/rtems.h	2010-12-07 09:42:50.000000000 -0800
> @@ -27,3 +27,9 @@ along with GCC; see the file COPYING3.
>         builtin_assert ("system=rtems");		\
>       }						\
>     while (0)
> +
> +#undef LINK_SPEC
> +#undef SIZE_TYPE
> +#undef PTRDIFF_TYPE
> +#undef WCHAR_TYPE
> +#undef WCHAR_TYPE_SIZE
> diff -rupN --exclude=.svn gcc-mainline-3/gcc/config.gcc gcc-mainline/gcc/config.gcc
> --- gcc-mainline-3/gcc/config.gcc	2010-12-06 03:31:49.000000000 -0800
> +++ gcc-mainline/gcc/config.gcc	2010-12-07 09:49:10.000000000 -0800
> @@ -979,14 +979,14 @@ frv-*-*linux*)
>   moxie-*-elf)
>   	gas=yes
>   	gnu_ld=yes
> -	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
> +	tm_file="dbxelf.h elfos.h ${tm_file}"
>   	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
>   	tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp"
>   	;;
>   moxie-*-uclinux*)
>   	gas=yes
>   	gnu_ld=yes
> -	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h glibc-stdint.h moxie/uclinux.h"
> +	tm_file="dbxelf.h elfos.h ${tm_file} linux.h glibc-stdint.h moxie/uclinux.h"
>   	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
>   	tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp"
>   	tm_defines="${tm_defines} DEFAULT_LIBC=LIBC_UCLIBC"
>



More information about the Gcc-patches mailing list