At Thu, 22 Jan 2015 09:52:09 -0700, Jeff Law wrote: > > On 01/22/15 01:38, Yoshinori Sato wrote: > > Add h8300-*-linux target for h8300 linux kernel and userland. > > > > h8300-*-elf is some difference of standard elf. > > h8300-*-linux is compatible of standard elf rules. > It seems to me that you should have linux.h just define things that > are specific to the linux port rather than copying huge amounts of > h8300.h. > > > diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c > > index e7ed03a..4ec8516 100644 > > --- a/gcc/config/h8300/h8300.c > > +++ b/gcc/config/h8300/h8300.c > > @@ -359,11 +359,13 @@ h8300_option_override (void) > > target_flags |= MASK_H8300S_1; > > } > > > > +#ifndef __h8300_linux__ > > if (TARGET_H8300 && TARGET_INT32) > > { > > error ("-mint32 is not supported for H8300 and H8300L targets"); > > target_flags ^= MASK_INT32; > > } > > +#endif > On precisely what targets is Linux going to be supported on the H8 > series? Presumably it's going to be some H8/S variants and newer? >
H8/300H, H8/S and H8/SX supported. > > > --- /dev/null > > +++ b/gcc/config/h8300/linux.h > This really should just be overriding any generic definitions in > h8300.h rather than copying most of that file. I didn't read through > this in any detail as it's unacceptable as-is. > > > Presumably you're using the standard ABI (parameter passing, register > usage, etc). > > Presumably you're requiring 32 bit integers? > Yes. linux kernel required 32bit integer. > > > > diff --git a/gcc/config/h8300/t-linux b/gcc/config/h8300/t-linux > > new file mode 100644 > > index 0000000..ac8b0cb > > --- /dev/null > > +++ b/gcc/config/h8300/t-linux > > @@ -0,0 +1,20 @@ > > +# Copyright (C) 2015 Free Software Foundation, Inc. > > +# > > +# This file is part of GCC. > > +# > > +# GCC is free software; you can redistribute it and/or modify > > +# it under the terms of the GNU General Public License as published by > > +# the Free Software Foundation; either version 3, or (at your option) > > +# any later version. > > +# > > +# GCC is distributed in the hope that it will be useful, > > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > +# GNU General Public License for more details. > > +# > > +# You should have received a copy of the GNU General Public License > > +# along with GCC; see the file COPYING3. If not see > > +# <http://www.gnu.org/licenses/>. > > + > > +MULTILIB_OPTIONS = mh/ms/msx > > +MULTILIB_DIRNAMES = h8300h h8300s h8sx > So are you really going to support Linux on the old H8/300H? Is there > enough address space on that target for it to work (my recollection of > these processors is fading, but IIRC the H8/300H had a rather limited > address space. > Yes. worked it. > > index 4bfa7be..e3abc89 100644 > > --- a/libgcc/config/h8300/lib1funcs.S > > +++ b/libgcc/config/h8300/lib1funcs.S > > @@ -84,6 +84,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. > > If not, see > > #define A3E e3 > > #endif > > > > +#define CONCAT(A,B) A##B > > +#define LABEL0(U,X) CONCAT(U,__##X) > > +#define LABEL0_DEF(U,X) CONCAT(U,__##X##:) > > +#define LABEL_DEF(X) LABEL0_DEF(__USER_LABEL_PREFIX__,X) > > +#define LABEL(X) LABEL0(__USER_LABEL_PREFIX__,X) > > + > > #ifdef __H8300H__ > > #ifdef __NORMAL_MODE__ > > .h8300hn > > @@ -111,8 +117,8 @@ see the files COPYING3 and COPYING.RUNTIME > > respectively. If not, see > > #ifdef __H8300__ > > .section .text > > .align 2 > > - .global ___cmpsi2 > > -___cmpsi2: > > + .global LABEL(cmpsi2) > > +LABEL_DEF(cmpsi2) > Presumably this is to get consistency in the namespace and ensure that > USER_LABEL_PREFIX is honored? > Yes. h8300-elf have symbol prefix. But h8300-linux don't have prefix. > > You're going to need a copyright assignment with the FSF. You should > get that process started so that when the next stage1 development > cycle opens up, you'll be in a position where we can legally accept > your contributions. OK. > > The patch will need a ChangeLog entry. See gcc/ChangeLog for > examples. Remember the ChangeLog merely describes what changed, not > why. If something needs a "why" explanation, then that explanation > belongs in the code itself. > OK. I forgot it. Thanks. > > Jeff -- Yoshinori Sato <ys...@users.sourceforge.jp>