Skip to content

Commit b75b7c5

Browse files
committed
Merge remote-tracking branch 'upstream/master' into gc4
2 parents 06d8be5 + 96943ea commit b75b7c5

38 files changed

+3147
-1743
lines changed

ChangeLog

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,35 @@
55
Clang, to prevent some features to be mistakenly detected as missing
66
(in particular -Wno-pointer-sign and -fstack-clash-protection)
77

8+
2024-09-27 Simon Sobisch <simonsobisch@gnu.org>
9+
10+
* build_aux/ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4:
11+
update libtool from 2.46 to 2.53, dropping all manual patches
12+
* configure.ac: require autoconf 2.70 and drop check for lex-library with
13+
noyywrap option for AC_PROG_LEX
14+
* HACKING: document dependencies autoconf 2.70 and automake 1.16 and
15+
several smaller text updates
16+
* Makefile.am (checkmanual-code-coverage, checkall-code-coverage): new
17+
targets removing the need to do that manually
18+
* DEPENDENCIES: added perl for running NIST85
19+
820
2024-09-19 David Declerck <david.declerck@ocamlpro.com>
921

1022
* configure.ac: replace AC_ARG_VAR by AC_SUBST where appropriate
1123

24+
2024-09-09 Simon Sobisch <simonsobisch@gnu.org>
25+
26+
* README: add documentation for "make checkmanual"
27+
28+
2024-08-10 Simon Sobisch <simonsobisch@gnu.org>
29+
30+
* DEPENDENCIES, NEWS: document usage of libiconv
31+
32+
2024-08-06 Simon Sobisch <simonsobisch@gnu.org>
33+
34+
* configure.ac: new option --with-iconv
35+
* m4/iconv.m4: updated to current version from gnulib
36+
1237
2024-05-14 David Declerck <david.declerck@ocamlpro.com>
1338

1439
* configure.ac: update flags for building dynamic libraries on macOS

DEPENDENCIES

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,27 @@ The following libraries ARE required WHEN :
137137

138138
JSON-C is distributed under Expat License.
139139

140+
5) character encoding support is needed and iconv is not provided
141+
as part of libc
142+
143+
BOTH runtime AND development components required.
144+
145+
libiconv - https://www.gnu.org/software/libiconv/
146+
147+
GNU libiconv is distributed under GNU Lesser General Public License.
148+
149+
Note: Support for partial character encoding is provided directly,
150+
full support for national and utf8 literals and data, as well as
151+
utf8 source encoding needs an implementation of the iconv API.
152+
153+
154+
6) The NIST COBOL85 testsuite sould be used for verification;
155+
the test runner "make test" REQUIRES:
156+
157+
o Perl >= 5.0005 - https://www.perl.org
158+
159+
Perl is licensed under its Artistic License, or the GNU General Public License (GPL).
160+
140161

141162
See HACKING if you wish to hack the GnuCOBOL source or build directly
142163
from version control as this includes the list of additional tools

DEPENDENCIES.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ XML Support
102102

103103
Support for GENERATE XML is provided by:
104104

105-
* [libxml2](http://xmlsoft.org)
105+
* [libxml2](https://xmlsoft.org)
106106

107107
libxml2 is distributed under MIT License.
108108

@@ -119,3 +119,24 @@ Support for GENERATE JSON is provided by *one* of the following:
119119

120120
JSON-C is distributed under Expat License.
121121

122+
123+
character encoding support
124+
----------------------------
125+
126+
Support for partial character encoding is provided directly,
127+
full support for national and utf8 literals and data, as well as
128+
utf8 source encoding needs an implementation of the iconv API.
129+
If this is not provided by libc, it is provided by:
130+
131+
* [libiconv](https://www.gnu.org/software/libiconv/)
132+
133+
GNU libiconv is distributed under GNU Lesser General Public License.
134+
135+
136+
NIST COBOL85 testsuite
137+
----------------------------
138+
To be able to run `make test`:
139+
140+
* [Perl](https://www.perl.org) >= 5.0005
141+
142+
Perl is licensed under its Artistic License, or the GNU General Public License (GPL).

HACKING

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@ an official release, which will commonly be created using a newer toolset).
1818
If you build from VCS the tools in the first 4 lists are always needed.
1919

2020
For running "autogen.sh" (necessary after VCS checkout) / reconfigure:
21-
o autoconf 2.64
22-
o automake 1.13
23-
o libtool 2.2.6
21+
o autoconf 2.70
22+
o automake 1.16
23+
o libtool 2.2.6 (2.5.3 highly+ suggested, can be easily installed locally)
2424
o m4 1.4.12
2525

26-
If you modify top-level configure.ac or Makefile.am in any directory then
27-
you will need to run "autoreconf -I m4" to regenerate the necessary files.
26+
If you modify top-level configure.ac or Makefile.am in any directory and rerun
27+
"make", the build system will regenerate the necessary files.
2828

29-
If you want to update to a newer automake/libtool version or get errors
30-
about wrong version numbers in m4 run "autoreconf -vfi -I m4" instead.
29+
If you want to update to a different automake/libtool version or get errors
30+
about wrong version numbers in m4 run "autogen.sh install" instead.
3131

32-
For compiling (when changing flex/bison sources):
32+
For compiling (when changing pparser/scanner sources):
3333
o Bison 3.6
3434
o Flex 2.5.35
3535

@@ -110,4 +110,4 @@ OR # if you want to compare with an
110110
There should be no difference shown as long as the "old version" passed
111111
the same tests as the new version - given the example above: there was
112112
no support for REPORT WRITER in 2.2 so there would be an expected failure
113-
of the RW tests).
113+
of the RW tests.

Makefile.am

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,18 @@ vcs-update:
192192
distbin distbin-gzip distbin-bzip2 distbin-lzip distbin-xz
193193

194194
test: all
195-
cd tests && $(MAKE) $(AM_MAKEFLAGS) test
195+
cd tests && $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) test
196196
checkmanual: all
197-
cd tests && $(MAKE) $(AM_MAKEFLAGS) checkmanual
197+
cd tests && $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) checkmanual
198198

199199
checkall: check test
200-
200+
201+
@CODE_COVERAGE_ENABLED_TRUE@checkmanual-code-coverage:
202+
@CODE_COVERAGE_ENABLED_TRUE@ -$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -k checkmanual
203+
@CODE_COVERAGE_ENABLED_TRUE@ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) code-coverage-capture
204+
@CODE_COVERAGE_ENABLED_FALSE@checkmanual-code-coverage: check-code-coverage
205+
206+
@CODE_COVERAGE_ENABLED_TRUE@checkall-code-coverage:
207+
@CODE_COVERAGE_ENABLED_TRUE@ -$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -k checkall
208+
@CODE_COVERAGE_ENABLED_TRUE@ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) code-coverage-capture
209+
@CODE_COVERAGE_ENABLED_FALSE@checkall-code-coverage: check-code-coverage

NEWS

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,6 @@ NEWS - user visible changes -*- outline -*-
7676
where the old default GnuCOBOL data files could be unusable if copied between
7777
systems of different hardware architecture.
7878

79-
** use the "default" -shared flag to build dynamic libraries on macOS
80-
so as to fix testuite issues with recent macOS versions
81-
8279
** dialect option to allow ref-mod with zero-length (active with -std=default),
8380
with runtime checks enabled; also set by directives
8481
REF-MOD-ZERO-LENGTH (COBOL202x) and SSRANGE (MF) as appropriate
@@ -100,9 +97,9 @@ Open Plans:
10097

10198
* New GnuCOBOL features
10299

103-
** cobc now checks for binary files and early exit parsing those;
104-
the error output for format errors (for example invalid indicator column)
105-
is now limitted to 5 per source file
100+
** cobc now checks for binary and multi-byte encoded files and early exit
101+
parsing those; the error output for format errors (for example invalid
102+
indicator column) is now limitted to 5 per source file
106103

107104
** support the COLLATING SEQUENCE clause on indexed files
108105
(currently only with the BDB backend)
@@ -173,6 +170,17 @@ Open Plans:
173170
** configure now uses pkg-config/ncurses-config to search for ncurses and
174171
honors NCURSES_LIBS and NCURSES_CFLAGS
175172

173+
** configure now checks for iconv and accepts --with-iconv/--without-iconv;
174+
this is used for character encoding support, which otherwise is only provided
175+
partially
176+
177+
** use the "default" -shared flag to build dynamic libraries on macOS
178+
so as to fix testuite issues with recent macOS versions
179+
180+
** "make checkmanual" was extended to be also usable with tmux and
181+
allows to override the test runner and to attach for screen/tmux sessions,
182+
see README for further details
183+
176184
* Known issues in 3.x
177185

178186
** testsuite:

README

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,23 @@ Tests
145145
make checkall
146146

147147

148+
You may also optionally perform a series of semi-manual tests to
149+
verify a working extended screenio.
150+
make checkmanual
151+
The test execution is automatic but the user needs to check for
152+
the expected result. See tests/run_prog_manual.sh for tweaking the
153+
test runner used (which is otherwise deduced from the environment),
154+
either in that script or via TESTRUNNER environment variable.
155+
156+
** NOTE **
157+
The semi-manual tests need either "xterm", GNU "screen" or "tmux"
158+
installed and will run within a detached "cmd" on MSYS based
159+
systems otherwise.
160+
For running with screen or tmux execute the following from
161+
a separate terminal, directly after running the testsuite:
162+
tests/run_prog_manual.sh attach
163+
... and leave that using "exit" at the end of the tests
164+
148165
============
149166

150167
The following is only interesting for advanced use.

README.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,33 @@ If the the COBOL85 testsuite is not already in the build- or source-tree,
8888
`make test` will download it. For details see tests/cobol85/README.
8989

9090
** NOTE **
91-
The language interpreter "perl" is required to run COBOL85 tests.
91+
The language interpreter `perl` is required to run COBOL85 tests.
9292

9393

9494
If you want to run both testsuites you can run
9595

9696
* `make checkall`
9797

98+
99+
You may also optionally perform a series of semi-manual tests to
100+
verify a working extended screenio.
101+
102+
* `make checkmanual`
103+
104+
The test execution is automatic but the user needs to check for
105+
the expected result. See `tests/run_prog_manual.sh` for tweaking the
106+
test runner used (which is otherwise deduced from the environment),
107+
either in that script or via TESTRUNNER environment variable.
108+
109+
** NOTE **
110+
The semi-manual tests need either `xterm`, GNU `screen` or `tmux`
111+
installed and will run within a detached `cmd.exe` on MSYS based
112+
systems otherwise.
113+
For running with screen or tmux execute the following from
114+
a separate terminal, directly after running the testsuite:
115+
`tests/run_prog_manual.sh attach`
116+
... and leave that using `exit` at the end of the tests
117+
98118
Installation
99119
============
100120

TODO

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,8 @@ https://sourceforge.net/p/gnucobol/code/HEAD/tree/external-doc/guide/
216216

217217
- Check how to deal with IMPEXP in coblocal.h (should probably be in the "lib" directory as a static library to link with the other libraries)
218218

219+
- Testsuite: run the DB and IX modules multiple times if configured for multiple backends
220+
219221
7.2 CHECKMEs, TODOs and #if-0'ed code
220222

221223
- Investigate the two CHECKMEs about bdb_close_cursor in fbdb.c:ix_bdb_write_internal

build_aux/ChangeLog

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11

2+
2024-09-02 Simon Sobisch <simonsobisch@gnu.org>
3+
4+
* ar-lib, config.guess, config.rpath, config.sub, texinfo.tex: updated
5+
to recent versions from
6+
https://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/
7+
28
2023-06-03 Simon Sobisch <simonsobisch@gnu.org>
39

410
* config.sub, texinfo.tex: updated to recent versions from
@@ -28,13 +34,13 @@
2834

2935
* bootstrap: drop tarstamp.h generation, done via make
3036
* config.guess, config.sub: updated to recent versions from
31-
git.savannah.gnu.org/gitweb/?p=config.git
37+
https://git.savannah.gnu.org/cgit/config.git
3238

3339
2022-06-30 Simon Sobisch <simonsobisch@gnu.org>
3440

3541
* config.guess, config.rpath, install-sh, mkinstalldirs, texinfo.tex:
3642
updated to recent versions from
37-
git.savannah.gnu.org/gitweb/?p=config.git
43+
https://git.savannah.gnu.org/cgit/config.git
3844

3945
2022-05-30 Simon Sobisch <simonsobisch@gnu.org>
4046

@@ -54,7 +60,7 @@
5460
2022-01-07 Simon Sobisch <simonsobisch@gnu.org>
5561

5662
* config.sub, config.guess: updated to recent versions from
57-
git.savannah.gnu.org/gitweb/?p=config.git to solve build issues
63+
https://git.savannah.gnu.org/cgit/config.git to solve build issues
5864
on different machines
5965

6066
2021-10-11 Simon Sobisch <simonsobisch@gnu.org>
@@ -191,7 +197,7 @@
191197
without uname(1) [removed 2014-01-25] from old version
192198

193199

194-
Copyright 2015-2023 Free Software Foundation, Inc.
200+
Copyright 2015-2024 Free Software Foundation, Inc.
195201

196202
Copying and distribution of this file, with or without modification, are
197203
permitted provided the copyright notice and this notice are preserved.

0 commit comments

Comments
 (0)