cobcurses icon indicating copy to clipboard operation
cobcurses copied to clipboard

Invalid MOVE statement & Ignoring SYNCHRONIZED on libcobcurses.cob

Open gpaterno opened this issue 6 years ago • 12 comments

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

gpaterno avatar Mar 20 '18 13:03 gpaterno

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
:

jlturriff avatar May 14 '18 17:05 jlturriff

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

jlturriff avatar May 15 '18 13:05 jlturriff

@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.

GitMensch avatar May 15 '18 21:05 GitMensch

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.

jlturriff avatar May 16 '18 03:05 jlturriff

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.

jlturriff avatar May 16 '18 03:05 jlturriff

Changing the makefiles to use -std=ibm didn't fix the issue.

jlturriff avatar May 16 '18 04:05 jlturriff

Normally you don't need to specify a dialect at all which results in the GnuCOBOL dialect (-std=default) to be used.

GitMensch avatar May 16 '18 04:05 GitMensch

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 avatar May 16 '18 06:05 jlturriff

@jlturriff this doesn't has anything to do with this issue, therefore the discussion about the Makefiles should be moved to #3

GitMensch avatar May 16 '18 09:05 GitMensch

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

gpaterno avatar May 16 '18 20:05 gpaterno

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.

GitMensch avatar May 17 '18 06:05 GitMensch

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

ve3wwg avatar May 17 '18 12:05 ve3wwg