Skip to content

Commit bd9ed5b

Browse files
committed
Merge remote-tracking branch 'upstream/master' into gc4
2 parents 7959b24 + 00117de commit bd9ed5b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+5415
-1788
lines changed

.github/workflows/build_nightly.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -467,10 +467,7 @@ jobs:
467467
coverage:
468468
name: Coverage and Warnings
469469
needs: build
470-
# Since the latest Ubuntu image, lcov fails complaining about negative branch counts,
471-
# and using fprofile-update=atomic as suggested does not help, so use the previous image
472-
# runs-on: ubuntu-latest
473-
runs-on: ubuntu-22.04
470+
runs-on: ubuntu-latest
474471
timeout-minutes: 10
475472

476473
steps:

ChangeLog

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

2+
2025-07-28 Simon Sobisch <simonsobisch@gnu.org>
3+
4+
* configure.ac: check timezone and designated initializers with -Werror
5+
* m4/ax_code_coverage.m4, m4/ax_check_define.m4:
6+
updated from autoconf-archive
7+
* Makefile.am (CODE_COVERAGE_LCOV_OPTIONS_DEFAULT): silence some warnings
8+
in lcov2
9+
10+
update gettext infrastructure from gnulib
11+
* m4/gettext.m4, m4/intlmacosx.m4, m4/progtest.m4: updated
12+
* m4/build-to-host.m4, m4/host-cpu-c-abi.m4, m4/intl-thread-locale.m4:
13+
added
14+
* m4/glibc2.m4, m4/glibc21.m4, m4/intdiv0.m4, m4/intl.m4, m4/intldir.m4,
15+
m4/intmax.m4, m4/uintmax_t.m4: removed
16+
17+
2025-06-02 Simon Sobisch <simonsobisch@gnu.org>
18+
19+
* configure.ac: make signal.h optional again, even if this configuration
20+
will fail some tests
21+
222
2025-05-13 David Declerck <david.declerck@ocamlpro.com>
323

424
* configure.ac: testing working diff with the option to override by DIFF

Makefile.am

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,16 @@ EXTRA_DIST = gnucobol.spec DEPENDENCIES DEPENDENCIES.md README.md HACKING
3838
include $(top_srcdir)/aminclude_static.am
3939

4040
clean-local: code-coverage-clean
41-
dist-clean-local: code-coverage-dist-clean
41+
distclean-local: code-coverage-dist-clean
4242

4343
CODE_COVERAGE_BRANCH_COVERAGE=1
4444
CODE_COVERAGE_IGNORE_PATTERN= \
4545
"*/cobc/pplex.c" "*/cobc/ppparse.c" "*/cobc/scanner.c" "*/cobc/parser.c" \
4646
"*/cobc/config.def" "*/cobc/warning.def" \
4747
"*/libcob/statement.def"
48+
# silence some warnings in lcov2
49+
CODE_COVERAGE_LCOV_OPTIONS_DEFAULT= \
50+
--ignore-errors source --rc geninfo_unexecuted_blocks=1
4851

4952
# files shipped with the package that should be 755'ed:
5053
FILES_TO_BE_EXECUTABLE = $(dist_noinst_SCRIPTS) \

NEWS

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ Open Plans:
9999

100100
** cobc now checks for binary and multi-byte encoded files and early exit
101101
parsing those; the error output for format errors (for example invalid
102-
indicator column) is now limitted to 5 per source file
102+
indicator column) is now limited to 5 per source file
103103

104104
** support the COLLATING SEQUENCE clause on indexed files
105105
(currently only with the BDB backend)
@@ -111,11 +111,32 @@ Open Plans:
111111
customization can be done using COB_PROF_FILE, COB_PROF_MAX_DEPTH and
112112
COB_PROF_FORMAT
113113

114+
** initial support for XML PARSE
115+
while this feature is not implemented fully and some events are not
116+
implemented yet, we'd like you to test this feature already;
117+
note that for the XML-EVENT EXCEPTION, the stored exception-values in
118+
XML-CODE and XML-TEXT registers differ from other implementations
119+
114120
** new runtime configuration COB_HIDE_CURSOR, allows to hide the cursor during
115121
extended ScreenIO operations
116122

117123
** added multiple window functionality with new system function CBL_GC_WINDOW
118124

125+
** New system functions
126+
127+
CBL_OPEN_VFILE opens a "virtual file" (heap)
128+
CBL_WRITE_VFILE writes bytes to heap; offset 4 byte binary
129+
CBL_READ_VFILE reads bytes from heap; offset 4 byte binary
130+
CBL_CLOSE_VFILE closes the heap handle
131+
CBL_GC_OPEN_VFILE64 opens a "virtual file" (heap)
132+
CBL_GC_WRITE_VFILE64 writes bytes to heap; offset 8 byte binary
133+
CBL_GC_READ_VFILE64 reads bytes from heap; offset 8 byte binary
134+
CBL_GC_CLOSE_VFILE64 closes the heap handle
135+
The VFILE functions provide functionality consistent with Microfocus /
136+
Fujitsu, but the heap is never paged to disk.
137+
The VFILE64 functions are a GnuCOBOL extension to allow for access beyond the
138+
4 GB offset when using the 64 bit environment.
139+
119140
more work in progress
120141

121142
* Changes that potentially effect recompilation of existing programs:
@@ -154,7 +175,7 @@ Open Plans:
154175
to this compiler option.
155176

156177
** output of unlimited errors may be requested by -fmax-errors=0,
157-
to stop compiliation at first error use -Wfatal-errors
178+
to stop compilation at first error use -Wfatal-errors
158179
** default value for -fmax-errors was changed from 128 to 20
159180

160181
** New option -fdiagnostics-absolute-paths to print the full path of
@@ -205,7 +226,7 @@ Open Plans:
205226
package manager version)
206227

207228
** use the "default" -shared flag to build dynamic libraries on macOS
208-
so as to fix testuite issues with recent macOS versions
229+
so as to fix testsuite issues with recent macOS versions
209230

210231
** "make checkmanual" was extended to be also usable with tmux and
211232
allows to override the test runner and to attach for screen/tmux sessions,
@@ -279,8 +300,8 @@ For more known issues see the bug tracker.
279300

280301
** Support for additional $SET directives: ODOSLIDE
281302

282-
** Support for the EXTFH interface was heavily improved, now also supporting
283-
FH--FCD and FH--KEYDEF, fixed use of different attributes and changing
303+
** Support for the EXTFH has been greatly enhanced and now includes support
304+
for FH--FCD and FH--KEYDEF, fixed use of different attributes and changing
284305
pointers and now supports - for 32-bit builds - an internal conversion
285306
between FCD2 and FCD3 for cases where existing programs are coded with FCD2
286307

@@ -327,6 +348,19 @@ For more known issues see the bug tracker.
327348
this isn't done anymore so if you need the memory to be initialized
328349
specify that explicit in the source and recompile
329350

351+
** variable-length RECORD SEQUENTIAL files, data validation on READ:
352+
the length of the record as stored in the file is now checked for correct
353+
format and is then compared against the record size defined in the program;
354+
if the minimal record size specified is bigger, then the data is only
355+
written up to the record length for that record, the other data is
356+
undefined and io status 04 returned; if the record length is bigger than
357+
the record size the record from the file is truncated, io status 04 set
358+
and the following READ will start at the next record;
359+
additionally on OPEN the length of the first record is read and if it
360+
isn't within the above rules, an io status 39 is returned; as the default
361+
format "COB_VARSEQ_TYPE = 0" contains two NULL bytes this will likely
362+
make most LINE SEQUENTIAL files not declared as this type fail on OPEN
363+
330364
** LINE SEQUENTIAL files, data validation: in case of bad printable data
331365
(less than SPACE) a READ may result in io status 09 and WRITE may error
332366
with io status 71; see the new runtime option COB_LS_VALIDATE to disable
@@ -569,6 +603,9 @@ For more known issues see the bug tracker.
569603
** new compiler command line option to list the known runtime exception names
570604
and fatality `cobc --list-exceptions`
571605

606+
** new compiler command line option to output the exact version number
607+
`cobc -dumpversion`
608+
572609
** new compiler command line option -ftcmd to enable printing of the command
573610
line in the source listing, -fno-timestamp to suppress printing of the time
574611
and -ftittle to set a title instead of GnuCOBOL and version (_ chars are

TODO

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,3 +263,8 @@ https://sourceforge.net/p/gnucobol/code/HEAD/tree/external-doc/guide/
263263
- Check use of new integer optimization in cb_build_optim_sub and cb_build_optim_add - those may be slower than cob_add_packed_int/cob_add_packed_int64
264264

265265
- If there's a reasonable performance benefit for the integer optimizations for BCD/DISPLAY: add an option -funsigned-zero which never stores a sign in those (or in one of those, depending on a perf stat result) to provide the option to still use this optimization
266+
267+
268+
For vfile routines: document return-codes per fileio.c and different
269+
handling of cancel and heap-status variable used in CBL_OPEN_VFILE only
270+
and no use of backup file, limitation of i/o area length.

bin/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ cobfile_LDADD =$(COMMON_LIBS)
4040
include $(top_srcdir)/aminclude_static.am
4141

4242
clean-local: code-coverage-clean
43-
dist-clean-local: code-coverage-dist-clean
43+
distclean-local: code-coverage-dist-clean
4444

4545
CODE_COVERAGE_BRANCH_COVERAGE=1
4646
CODE_COVERAGE_LCOV_OPTIONS = --no-external

build_aux/ChangeLog

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

2+
2025-07-28 Simon Sobisch <simonsobisch@gnu.org>
3+
4+
* config.guess, config.sub, texinfo.tex: updated to recent versions from
5+
https://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/
6+
27
2025-02-13 Simon Sobisch <simonsobisch@gnu.org>
38

49
* pre-inst-env.in: drop COB_ON_CYGWIN as it is set via atlocal for

build_aux/config.guess

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#! /bin/sh
22
# Attempt to guess a canonical system name.
3-
# Copyright 1992-2024 Free Software Foundation, Inc.
3+
# Copyright 1992-2025 Free Software Foundation, Inc.
44

55
# shellcheck disable=SC2006,SC2268 # see below for rationale
66

7-
timestamp='2024-07-27'
7+
timestamp='2025-07-10'
88

99
# This file is free software; you can redistribute it and/or modify it
1010
# under the terms of the GNU General Public License as published by
@@ -60,7 +60,7 @@ version="\
6060
GNU config.guess ($timestamp)
6161
6262
Originally written by Per Bothner.
63-
Copyright 1992-2024 Free Software Foundation, Inc.
63+
Copyright 1992-2025 Free Software Foundation, Inc.
6464
6565
This is free software; see the source for copying conditions. There is NO
6666
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -1597,8 +1597,11 @@ EOF
15971597
*:Unleashed:*:*)
15981598
GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
15991599
;;
1600-
*:Ironclad:*:*)
1601-
GUESS=$UNAME_MACHINE-unknown-ironclad
1600+
x86_64:[Ii]ronclad:*:*|i?86:[Ii]ronclad:*:*)
1601+
GUESS=$UNAME_MACHINE-pc-ironclad-mlibc
1602+
;;
1603+
*:[Ii]ronclad:*:*)
1604+
GUESS=$UNAME_MACHINE-unknown-ironclad-mlibc
16021605
;;
16031606
esac
16041607

@@ -1808,8 +1811,8 @@ fi
18081811
exit 1
18091812

18101813
# Local variables:
1811-
# eval: (add-hook 'before-save-hook 'time-stamp)
1814+
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
18121815
# time-stamp-start: "timestamp='"
1813-
# time-stamp-format: "%:y-%02m-%02d"
1816+
# time-stamp-format: "%Y-%02m-%02d"
18141817
# time-stamp-end: "'"
18151818
# End:

build_aux/config.sub

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#! /bin/sh
22
# Configuration validation subroutine script.
3-
# Copyright 1992-2024 Free Software Foundation, Inc.
3+
# Copyright 1992-2025 Free Software Foundation, Inc.
44

55
# shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale
66

7-
timestamp='2024-05-27'
7+
timestamp='2025-07-10'
88

99
# This file is free software; you can redistribute it and/or modify it
1010
# under the terms of the GNU General Public License as published by
@@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
7676
version="\
7777
GNU config.sub ($timestamp)
7878
79-
Copyright 1992-2024 Free Software Foundation, Inc.
79+
Copyright 1992-2025 Free Software Foundation, Inc.
8080
8181
This is free software; see the source for copying conditions. There is NO
8282
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -145,6 +145,7 @@ case $1 in
145145
| kfreebsd*-gnu* \
146146
| knetbsd*-gnu* \
147147
| kopensolaris*-gnu* \
148+
| ironclad-* \
148149
| linux-* \
149150
| managarm-* \
150151
| netbsd*-eabi* \
@@ -242,7 +243,6 @@ case $1 in
242243
| rombug \
243244
| semi \
244245
| sequent* \
245-
| siemens \
246246
| sgi* \
247247
| siemens \
248248
| sim \
@@ -261,7 +261,7 @@ case $1 in
261261
basic_machine=$field1-$field2
262262
basic_os=
263263
;;
264-
zephyr*)
264+
tock* | zephyr*)
265265
basic_machine=$field1-unknown
266266
basic_os=$field2
267267
;;
@@ -1194,7 +1194,7 @@ case $cpu-$vendor in
11941194
xscale-* | xscalee[bl]-*)
11951195
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
11961196
;;
1197-
arm64-* | aarch64le-*)
1197+
arm64-* | aarch64le-* | arm64_32-*)
11981198
cpu=aarch64
11991199
;;
12001200

@@ -1321,6 +1321,7 @@ case $cpu-$vendor in
13211321
| i960 \
13221322
| ia16 \
13231323
| ia64 \
1324+
| intelgt \
13241325
| ip2k \
13251326
| iq2000 \
13261327
| javascript \
@@ -1522,6 +1523,10 @@ EOF
15221523
kernel=nto
15231524
os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
15241525
;;
1526+
ironclad*)
1527+
kernel=ironclad
1528+
os=`echo "$basic_os" | sed -e 's|ironclad|mlibc|'`
1529+
;;
15251530
linux*)
15261531
kernel=linux
15271532
os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
@@ -1976,6 +1981,7 @@ case $os in
19761981
| atheos* \
19771982
| auroraux* \
19781983
| aux* \
1984+
| banan_os* \
19791985
| beos* \
19801986
| bitrig* \
19811987
| bme* \
@@ -2022,7 +2028,6 @@ case $os in
20222028
| ios* \
20232029
| iris* \
20242030
| irix* \
2025-
| ironclad* \
20262031
| isc* \
20272032
| its* \
20282033
| l4re* \
@@ -2118,6 +2123,7 @@ case $os in
21182123
| sysv* \
21192124
| tenex* \
21202125
| tirtos* \
2126+
| tock* \
21212127
| toppers* \
21222128
| tops10* \
21232129
| tops20* \
@@ -2214,6 +2220,8 @@ case $kernel-$os-$obj in
22142220
;;
22152221
uclinux-uclibc*- | uclinux-gnu*- )
22162222
;;
2223+
ironclad-mlibc*-)
2224+
;;
22172225
managarm-mlibc*- | managarm-kernel*- )
22182226
;;
22192227
windows*-msvc*-)
@@ -2249,6 +2257,8 @@ case $kernel-$os-$obj in
22492257
;;
22502258
*-eabi*- | *-gnueabi*-)
22512259
;;
2260+
ios*-simulator- | tvos*-simulator- | watchos*-simulator- )
2261+
;;
22522262
none--*)
22532263
# None (no kernel, i.e. freestanding / bare metal),
22542264
# can be paired with an machine code file format
@@ -2347,8 +2357,8 @@ echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
23472357
exit
23482358

23492359
# Local variables:
2350-
# eval: (add-hook 'before-save-hook 'time-stamp)
2360+
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
23512361
# time-stamp-start: "timestamp='"
2352-
# time-stamp-format: "%:y-%02m-%02d"
2362+
# time-stamp-format: "%Y-%02m-%02d"
23532363
# time-stamp-end: "'"
23542364
# End:

0 commit comments

Comments
 (0)