Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Sep 2000 19:05:46 -0300 (BRT)
From:      vazquez@panic.iqm.unicamp.br
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   gnu/21276: libI77 is unable to handle files >2Gbytes
Message-ID:  <20000914220546.0BD642072@panic.iqm.unicamp.br>

next in thread | raw e-mail | index | archive | help


>Number:         21276
>Category:       gnu
>Synopsis:       libI77 is unable to handle files >2Gbytes
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 14 15:10:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Pedro Vazquez
>Release:        FreeBSD 4.1-STABLE i386
>Organization:
>Environment:

FreeBSD panic.iqm.unicamp.br 4.1-STABLE FreeBSD 4.1-STABLE #7: Fri Jul 28 14:54:48 BRT 2000     cordeiro@panic.iqm.unicamp.br:/usr/src/sys/compile/PANIC  i386


>Description:

libI77 is unable to handle files greater than 2147627376 bytes (2G),
this makes the g77 (and f2c/gcc too on the latest freebsd versions )
generated binaries unable to deal with large quantum chemistry
calculations, for example

>How-To-Repeat:

Try to create a file bigger than 2G using fortran.
Run any big quantum chemistry ab-initio calculation , I've
old binaries (from 1996) of gaussian (www.gaussian.com)
compiled on FreeBSD2.x that run fine with big files, I found
this when building new binaries with FreeBSD4.x

>Fix:

I'm not sure but it seems this bug may be related to this modification:

/usr/src/contrib/libf2c/libI77/Version.c

/* 19 Jan. 1998: backspace.c: for b->ufmt==0, change sizeof(int) to
                 sizeof(uiolen).  On machines where this would make a
                 difference, it is best for portability to compile libI77 with
                 -DUIOLEN_int (which will render the change invisible). */


According to 
/usr/src/contrib/libf2c/libI77/README.netlib

Unformatted sequential records consist of a length of record
contents, the record contents themselves, and the length of
record contents again (for backspace).  Prior to 17 Oct. 1991,
the length was of type int; now it is of type long, but you
can change it back to int by inserting

#define UIOLEN_int

at the beginning of fio.h.  This affects only sue.c and uio.c .

I'm not an expert on the recent Make buildworld structure to follow
all steps from the import of libf2c into egcs to trace this problem
but I believe somewhere from 1996 to now something was changed
and limited the IO routines to 2G.

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000914220546.0BD642072>