cobcurses
cobcurses copied to clipboard
Invalid MOVE statement & Ignoring SYNCHRONIZED on libcobcurses.cob
When I compile cobcurses under linux (Ubuntu 16.04 amd64) with OpenCobol 2.0, I got the following error. Maybe my mistake, but I don't know where to look at. I appreciate any suggestion you can make. Thanks.
cobc -b -Wall -Wno-call-params -std=cobol85 -I../copybk -free libcobcurses.cob cobcurses.o terminal.o term_curses.o term_curses_conv.o term_curses_menu.o cc_menu.o environ.o misc.o dynstr.o pathname.o fcomp2.o ecomp1.o ecomp2.o expon.o ecvt.o units.o eunits.o enumber.o cobmenu.o cobtrace.o -L/usr/local/lib -lncurses
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
libcobcurses.cob: In paragraph 'NC-3270-UP':
libcobcurses.cob: 2057: Error: Invalid MOVE statement
libcobcurses.cob: 2057: Error: Invalid MOVE statement
libcobcurses.cob: In paragraph 'NC-3270-NEXT':
libcobcurses.cob: 2076: Error: Invalid MOVE statement
libcobcurses.cob: 2076: Error: Invalid MOVE statement
libcobcurses.cob: In paragraph 'NC-3270-TAB':
libcobcurses.cob: 2094: Error: Invalid MOVE statement
libcobcurses.cob: 2094: Error: Invalid MOVE statement
libcobcurses.cob: In paragraph 'NC-3270-TAB-EQ':
libcobcurses.cob: 2205: Error: Invalid MOVE statement
libcobcurses.cob: 2205: Error: Invalid MOVE statement
libcobcurses.cob: In paragraph 'NC-3270-BTAB':
libcobcurses.cob: 2237: Error: Invalid MOVE statement
libcobcurses.cob: 2237: Error: Invalid MOVE statement
libcobcurses.cob: In paragraph 'NC-3270-BTAB-EQ':
libcobcurses.cob: 2305: Error: Invalid MOVE statement
libcobcurses.cob: 2305: Error: Invalid MOVE statement
libcobcurses.cob: 78: Warning: Ignoring SYNCHRONIZED for group item 'FILLER'
Makefile:449: recipe for target 'libcobcurses.so' failed
make: *** [libcobcurses.so] Error 1
I'd like to use cobcurses, but I'm getting similar errors when I try to compile it. My GnuCOBOL is ``$ cobc --version
cobc (GnuCOBOL) 3.0-rc1.0
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Keisuke Nishida, Roger While, Ron Norman, Simon Sobisch, Edward Hart
Built May 14 2018 12:16:55
Packaged Apr 22 2018 22:26:37 UTC
C version "4.8.5"
running on
$ uname -a
Linux 4.4.126-48-default #1 SMP Sat Apr 7 05:22:50 UTC 2018 (f24992c) x86_64 x86_64 x86_64 GNU/Linux
and I'm seeing messages like
cobc -b -Wall -Wno-call-params -std=cobol85 -I../copybk -free libcobcurses.cob cobcurses.o terminal.o term_curses.o term_curses_conv.o term_curses_menu.o cc_menu.o environ.o misc.o dynstr.o pathname.o fcomp2.o ecomp1.o ecomp2.o expon.o ecvt.o units.o eunits.o enumber.o cobmenu.o cobtrace.o -L/usr/local/lib64 -lncurses
libcobcurses.cob:20: error: syntax error, unexpected Identifier, expecting EXTERNAL or EXTERNAL-FORM or GLOBAL or IDENTIFIED
libcobcurses.cob:21: error: syntax error, unexpected Identifier
../copybk/COBCURSG.cbl:12: error: syntax error, unexpected Identifier, expecting EXTERNAL or EXTERNAL-FORM or GLOBAL or IDENTIFIED
../copybk/COBCURSG.cbl:14: error: syntax error, unexpected Identifier, expecting EXTERNAL or EXTERNAL-FORM or GLOBAL or IDENTIFIED
:
I probably should have said that after about fifty of these syntax error messages the compiler quits and the build fails:
../copybk/COBCURSG.cbl:182: error: syntax error, unexpected Identifier
../copybk/COBCURSG.cbl:184: error: syntax error, unexpected Identifier
../copybk/COBCURSG.cbl:190: error: syntax error, unexpected Identifier
cobc: too many errors
cobc: aborting compile of ../copybk/COBCURSG.cbl at line 190 (PROGRAM-ID: COBCURSES-OPEN)
Makefile:449: recipe for target 'libcobcurses.so' failed
make[2]: *** [libcobcurses.so] Error 97
make[2]: Leaving directory '/home/leslie/Downloads/Packages/Non-RPMs/Linux/cobcurses/src/lib'
Makefile:262: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/leslie/Downloads/Packages/Non-RPMs/Linux/cobcurses/src'
Makefile:183: recipe for target 'all' failed
make: *** [all] Error 2
@gpaterno There is no OpenCOBOL 2.x release version and the result of the (by standard) invalid MOVE
is adjustable with recent versions... I highly suggest in general to upgrade to GnuCOBOL 3.0 RC1 (meaning you have to recompile all COBOL sources [but the good news: just need to do this once as GC 2.2 modules can be used with later versions without recompiling])
@ve3wwg
You may consider to change
MOVE HIGH-VALUES TO NC-DIFF-Y, NC-DIFF-X.
to one of these:
MOVE 9999 TO NC-DIFF-Y, NC-DIFF-X. *> most portable
MOVE FUNCTION HIGHEST-ALGEBRAIC (NC-DIFF-Y) *> dynamic and according to COBOL2002
TO NC-DIFF-Y, NC-DIFF-X.
Um, GnuCobol 3.0 RC1 is in fact what I'm using. I scanned the make files in the source directory and cobol85 does not appear in them anywhere, so maybe since Open COBOL 1.1 the default dialect has changed? I'll check with the GnuCOBOL folks and see if that's the case.
Aha! cobol85 is specified in the makefiles in the subdirectories. Is there a way to override that with configure?
Now that you've pointed out that COMP-5 is not a COBOL85 type, I'm thinking that -std=ibm or -std=mvs might work. The only dialect that i have experience with is IBM's so this was a bit of a mystery to me.
Changing the makefiles to use -std=ibm didn't fix the issue.
Normally you don't need to specify a dialect at all which results in the GnuCOBOL dialect (-std=default) to be used.
Hmmm... obviously I don't know how to make this change. I modify the line COBSTD=-std=cobol85 to COBSTD=-std=ibm or COBSTD=-std=default but when I make it still says it's using -std=cobol85; so somewhere something is resetting it for me.
@jlturriff this doesn't has anything to do with this issue, therefore the discussion about the Makefiles should be moved to #3
Thanks to GNU Cobol 3 RC and the instructions on #3 I progressed a bit. But I'm still stuck here:
cobc -b -Wall -Wno-call-params -std=default -I../copybk -free libcobcurses.cob cobcurses.o terminal.o term_curses.o term_curses_conv.o term_curses_menu.o cc_menu.o environ.o misc.o dynstr.o pathname.o fcomp2.o ecomp1.o ecomp2.o expon.o ecvt.o units.o eunits.o enumber.o cobmenu.o cobtrace.o -L/usr/local/lib -lncurses
../copybk/COBCURSG.cbl:78: warning: ignoring SYNCHRONIZED for group item 'FILLER'
../copybk/COBCURSG.cbl:78: warning: ignoring SYNCHRONIZED for group item 'FILLER'
../copybk/COBCURSL.cbl:47: error: TO phrase without DEPENDING phrase
../copybk/COBCURSL.cbl:53: error: TO phrase without DEPENDING phrase
../copybk/COBCURSL.cbl:110: error: TO phrase without DEPENDING phrase
[....]
Any idea? Thanks
Any idea?
@gpaterno Yes - check cobc --help
and/or its manual... I just did cobc --help | grep DEPEND
and found the following:
attach -fodo-without-to=ok
to your command.
On Thu, May 17, 2018 at 2:51 AM, Simon Sobisch [email protected] wrote:
Any idea?
Yes - check cobc --help and/or the manual.. I just did cobc --help | grep DEPEND and found the following:
attach -fodo-without-to=warning to your command
I am willing to hand this project over to a new maintainer since I don't have the time to keep up with the frequent changes of the OpenCobol compiler. Please let me know, if anyone is interested.
Warren