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