On Sat, Dec 14, 2024 at 8:09 AM Iain Sandoe <idsan...@googlemail.com> wrote:
>
>
>
> > On 14 Dec 2024, at 11:56, Iain Sandoe <idsan...@googlemail.com> wrote:
> >
> >
> >
> >> On 14 Dec 2024, at 10:11, Sam James <s...@gentoo.org> wrote:
> >>
> >> David Malcolm <dmalc...@redhat.com> writes:
> >>
> >>> On Thu, 2024-12-12 at 12:56 -0500, James K. Lowden wrote:
> >>>> The following 8 patches constitute the 80 files needed to build and
> >>>> document the COBOL front end.  They assume that following exist:
> >>>>
> >>>>    gcc/cobol/ChangeLog
> >>>>    libgcobol/ChangeLog
> >>>>
> >>>> The messages are grouped by files in a more or less logical order,
> >>>> but groups are somewhat arbitrary.  The primary constraint afaik is
> >>>> to
> >>>> keep them from getting too big, fsvo $too.  We have:
> >>>>
> >>>>    460K hdr  header files
> >>>>    484K par  the parser
> >>>>    760K gen  GENERIC interface
> >>>>    556K cbl  other supporting C++ files
> >>>>    432K cfg  libgcobol/configure
> >>>>    788K lib  libgcobol, all of it
> >>>>     72K doc  man pages, for now
> >>>>     24K bld  "meta" files, such a gcc/cobol/Make-lang.in
> >>>>
> >>>> Except for "bld", these all contain new files, can be applied in any
> >>>> order.
> >>>>
> >>>> If you would like the patches smaller or larger, I'm happy to
> >>>> rearrange
> >>>> them.  Some of exceed the 400 KB mail limit, but I'm assured they'll
> >>>> be
> >>>> moderated through.
> >>>>
> >>>> This patchset excludes tests.  While we do have tests, it's not clear
> >>>> how or if to add them to gcc.  They use a combination of (largely)
> >>>> 3rd
> >>>> party sources and GNU Autotest.
> >>>>
> >>>> A word about C style, always a lively topic.  For any files already
> >>>> present in gcc, the existing style was followed, and any variation
> >>>> from
> >>>> it is unintentional.  Files related to the parser use K&R style.  The
> >>>> GENERIC interface and runtime library use Whitesmiths style.  All C++
> >>>> code uses spaces for indentation.
> >>>>
> >>>> The COBOL front end has been and is being written by two guys with
> >>>> decades of experience.  We hope the code is a testament to that
> >>>> experience.  Our relatively recent experience, these last four years,
> >>>> is that it has been more productive to keep using the styles to which
> >>>> we've long become accustomed.  The position of curly braces is hardly
> >>>> any hindrance to read another's code, but it's a burden to write that
> >>>> way. We think, 83,068 lines later, the proof of the pudding is in the
> >>>> eating.
> >>>>
> >>>> Thank you for your kind consideration of our work.
> >>>
> >>> Please forgive me if you've already said this elsewhere, but is this
> >>> work available in a public git repo somewhere?
> >>>
> >>
> >> https://gitlab.cobolworx.com/COBOLworx/gcc-cobol/
> >
> > But (IIUC) this is the development branch; what would be ideal would be
> > a branch with just the 8 patches.
> >
> > ====
> >
> > NOTE0 : the decision to use different whitespace rules from the rest of GCC
> > means the that patches apply only with a very large number of whitespace
> > errors .. which might be fine - but, of course, you cannot now tell 
> > intentional
> > whitespace errors from actual mistakes ….
> >
> > NOTE1 : patch 8 did not apply for me without editing - there seems to be a
> > duplicate of gcc/cobol/config-lang.in in patches 4 and 8.
> >
> > NOTE2 :  the top level Makefile.in needs to be regenerated.
> >
> > Will try this on  Darwin - (I removed the config-lang.in from patch 8 and
> > regenerated the top level Makefile.in) - hopefully the patch 4 
> > config-lang.in
> > is OK to use.
> >
> > Is it intentional that this requires bison at build-time or is there a 
> > missing
> > “touch” for some generated file?
>
> OK so, unfortunately, this does not build on Darwin/macOS.
>
> It seems
> 1) to introduce new build dependencies on:
>   - bison (we normally commit generated files to the repo not expect the 
> end-user
>    to need bison installed).
>   - a version of gm4 that recognises —gnu
>

Note that if this is due to what I think it is, it corresponds to this
bug in upstream autoconf: https://savannah.gnu.org/support/?111139

>  perhaps this is an oversight and the generated files can be committed ?
>
>  if not ... neither of these tools exist in the Xcode installs that most 
> macOS users have,
>  so that they will need to build them before they can configure GCC 
> —enable-languages=all
>
> 2) the build then failed for me with …
>
> /src-local/gcc-master/gcc/cobol/symbols.h:66:39: error: missing binary 
> operator before token ‘(’
>    66 | #if ! (__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT))
>
> ** You cannot assume that all targets have glibc - e.g. Darwin has it’s own 
> libc, others might
> use muscl etc.
>
> I can hack around this .. but then I get lots more errors ..
>
> /src-local/gcc-master/gcc/cobol/copybook.h:50:40: error: ‘ino_t’ has not been 
> declared; did you mean ‘wint_t’?
>    50 | bool cobol_filename( const char *name, ino_t inode );
>
>                  from /src-local/gcc-master/gcc/cobol/cdf.y:32:
> /src-local/gcc-master/gcc/cobol/symbols.h:71:23: error: ‘output’ was not 
> declared in this scope
>    71 | static_assert( sizeof(output) == sizeof(long double), "long doubles?" 
> );
>       |                       ^~~~~~
> /src-local/gcc-master/gcc/cobol/symbols.h: In function ‘_Float128 
> strtof128(const char*, char**)’:
> /src-local/gcc-master/gcc/cobol/symbols.h:75:18: error: ‘nptr’ was not 
> declared in this scope
>    75 |   return strtold(nptr, endptr);
>       |                  ^~~~
> /src-local/gcc-master/gcc/cobol/symbols.h:75:24: error: ‘endptr’ was not 
> declared in this scope
>
> etc. etc.
>
> Unfortunately, I do not have time to chase all these down.
>
> Did you try building this on Solaris and AIX on the compile farm?
>
>
> Iain
>
>
> >
> > thanks
> > Iain
> >
> >>
> >>> Thanks
> >>> Dave
>

Reply via email to