Message ID | Pine.LNX.4.64.1012071813460.16137@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
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" >
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"