gnucobol-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[open-cobol-list] CVS Update 20050731


From: Roger While
Subject: [open-cobol-list] CVS Update 20050731
Date: Sun Jul 31 02:54:58 2005

CVS Updated.

Some major changes here mainly in configure.

configure -
--with-db               This is now the default when nothing else specified
--without-db            Do not configure with Berkeley DB

--with-db1              This overrides the above options

--with-lfs64            This is now the default when not specified
--without-lfs64         Do not configure with large file system support

--with-patch-level=<n>   Set internal patch level to n. Default 0.
                         This is used for program versioning

Configure will, per default, produce an optimized, non-debugging version
of OC. This means that the compiler options (CFLAGS) for the make
will NOT have the "-g" option and will have other options - typically CFLAGS (with gcc) will look like "-O2 -finline-functions -finline-limit=1200 -fomit-frame-pointer". If on Intel 32-bit, it may also have "-march=pentium[234], athlon". (except on MingW - more later) These options will also get passed to the cobc compiler for use in compiling programs.

A default "./configure" will therefore :
a) Assume Berkely DB >= 3.0  (--with-db)
b) Assume LFS support (--with-lfs64)
c) Produce an optimized, non-debugging compiler and runtime.

CFLAGS can be overridden on the command line eg.
To get what a previous CVS/release default "./configure" was producing -
./configure --without-db --without-lfs64 CFLAGS="-O2 -g"


It is now possible to set the debug option "-g" on the cobc command simultaneously with the "-Os" and "-O2" options. In this case, resultant programs/modules will not be
stripped and will not have the "-fomit-frame-pointer" added.

Cobol program versioning has been implemented.
This is a combination from the OC version (currently "0.33" in CVS) and the
patch-level (default 0, set in configure).
The patch level can be set by using the --patch-level= configure option.
The version checking at runtime is done at program/module initialization time. The version information is at the top of the C code for the generated program.
The program/module will terminate if a mismatch detected and produce
information like this -
libcob: Error - Version mismatch
libcob: acc.cbl has version/patch level 0.33/1
libcob: Library has version/patch level 0.33/0

Two new FUNCTIONS - SIGN and FRACTION-PART
OC tests for these implemented.

Couple of fixes -
Bump the ref count on the field referred to by an 88 level. This will cause a "cob_field" to be generated in the case that only the 88 is referenced in the source code.
Fix a duplicate parameter pass between the parser and the c code.
Change the attribute(__aligned__) yet again -
Let the compiler do it except on Intel 32-bit (__i386__)
AND field length >= 64 where we align to 64 (Intel Optimization Manual).
Fix some Cygwin builds. Seems we had a typo in configure.ac


Experimental code -
Put some assembler in place for move.c/numeric.c
This is not final and will probably be moved out.

And now to MingW.
I had to change a whole bunch of intrinsic tests only because of MingW.
Originally, for some of the tests, we were directly displaying the result
of a returned floating point (double) value.
Much to my surprise, not only was MingW producing differences, it was
chopping off results. And even then, depending on what math function, it
is not even consistent in returning ceiling/floor values.
Geez, what's up - Research on the web shows that (Stable) MingW has borked
floating point and 18 digits is all you get. (That's total digits!)
This may not be too relevant for OC (except that I had to change a
load of OC tests to move the value and test for a range)
BUT be very careful if you are using FP under MingW for anything else.
Hmm. Wonder if GMP is affected.
Also, why can't a simple gcc (gcc xxx.c -o xxx.exe) produce something that is executable without
resorting to extra options.

Tarball is available at :
http://www.sim-basis.de/open-cobol-0.33.tar.gz

Roger




reply via email to

[Prev in Thread] Current Thread [Next in Thread]