Commit graph

7 commits

Author SHA1 Message Date
Iain Sandoe
95f10974a9 libgcobol: Allow libgcobol to use libquadmath [PR119244].
Many of the changes are mechanical:
 1. 'GCOB_FP128' in place of _Float128.
 2. Using FP128_FUNC to represent the spelling of intrinsics.
 3. Using GCOB_FP128_LITERAL() to choose the suffix for literals.

This allows for:
  __float128 and 'q' as the suffix when libquadmath is configured.
   _Float128 / 'f128' when IEC-60559 is available in libc
 long double / 'l' when long double is ieee753 128b.

Add libquadmath to libgcobol.spec and its dependencies  where the
platform needs it.

	PR cobol/119244

libgcobol/ChangeLog:

	* Makefile.am: Add support for libquadmath.
	* Makefile.in: Regenerate.
	* acinclude.m4: Add support for libquadmath.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Configure libquadmath support.
	* gmath.cc: Use GCOB_FP128 to represent the configured
	128b floating point type.  Use FP128_FUNC to represent
	the naming of intrinsics in the configure 128b floating
	point type. Render literals with GCOB_FP128_LITERAL.
	* intrinsic.cc: Likewise.
	* libgcobol.cc: Likewise.
	* libgcobol.h: Likewise.
	* libgcobol-fp.h: New file.
	* gfileio.cc: Include libgcobol-fp.h.
	* libgcobol.spec.in: Add libquadmath configure output.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
2025-04-10 11:05:07 +01:00
Iain Sandoe
b90364ee1c libgcobol: C++-ify the configuration steps.
Currently, the library is configured as if it was written in C, however
all the sources are C++, so update to use C++ as the configure language
(and check the CXX instead of CC).

Reorder the configuration steps so that we setup the tools and environment
before carrying out tests.

Remove unused configuration machinery.

Also we configured extra ld flags but never used them. There is no need
to make these extra_ldflags darwin-specific, additions could be required
by other hosts.

libgcobol/ChangeLog:

	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.am: Use the configured LIBS and extra_ldflags.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Shift configure to use c++. Order tests for tools
	and environment before other tests.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
2025-04-05 14:22:53 +01:00
Iain Sandoe
b6aafe9a5b libgcobol: Provide fallbacks for C32 strfromf32/64 functions.
strfrom{f,d,l,fN) are all C23 and might not be available in general.
This uses snprintf() to provide fall-backs where the libc does not
yet have support.

libgcobol/ChangeLog:

	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Check for availability of strfromf32 and
	strfromf64.
	* libgcobol.cc (strfromf32, strfromf64): New.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
2025-04-03 14:33:59 +01:00
Iain Sandoe
66a41a0a96 libgcobol: Only use random_r if it is available [PR119295]
We do not have a replacement at the moment, so fall back to using
regular random and friends.

	PR cobol/119295

libgcobol/ChangeLog:

	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Configure random_r and friends
	* intrinsic.cc (__gg__random): Use random_r when available.
	(__gg__random_next): Likewise.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
2025-04-03 14:33:27 +01:00
Iain Sandoe
4f68873e0d libgcobol: Add configure checks for iconv.
Some targets might need to add libraries to get iconv support.

libgcobol/ChangeLog:

	* Makefile.am: Use LIBICONV.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Check for iconv support.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
2025-03-20 19:50:51 +00:00
Jakub Jelinek
799ed87bcf cobol: Regenerate libgcobol/config.h.h
I forgot to regenerate config.h.in when changing configure.ac.

2025-03-11  Jakub Jelinek  <jakub@redhat.com>

	* config.h.in: Regenerate.
2025-03-11 22:47:26 +01:00
James K. Lowden
a075418727 COBOL: libgcobol
libgcobol/
	* Makefile.am: New file.
	* Makefile.in: Autogenerate.
	* acinclude.m4: Likewise.
	* aclocal.m4: Likewise.
	* configure.ac: New file.
	* configure: Autogenerate.
	* configure.tgt: New file.
	* README: New file.
	* charmaps.cc: New file.
	* config.h.in: New file.
	* constants.cc: New file.
	* gfileio.cc: New file.
	* gmath.cc: New file.
	* io.cc: New file.
	* valconv.cc: New file.
	* charmaps.h: New file.
	* common-defs.h: New file.
	* ec.h: New file.
	* exceptl.h: New file.
	* gcobolio.h: New file.
	* gfileio.h: New file.
	* gmath.h: New file.
	* io.h: New file.
	* libgcobol.h: New file.
	* valconv.h: New file.
	* libgcobol.cc: New file.
	* intrinsic.cc: New file.
2025-03-11 07:48:15 +01:00