> 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

 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