This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: libf2c update
>>>>> "Toon" == Toon Moene <toon@moene.indiv.nluug.nl> writes:
Toon> (gdb) run
Toon> Starting program: /Users/toon/Unix/src/a.out
Toon> Program generated(1): Memory access exception on address 0x0
Toon> (protection failure).
Toon> Reading in symbols for ../../../../egcs/libf2c/libI77/rsfe.c...done.
Toon> 0x310e in s_rsfe (a=0x800c) at ../../../../egcs/libf2c/libI77/rsfe.c:63
Toon> ../../../../egcs/libf2c/libI77/rsfe.c:63: No such file or directory.
Looking at this with gdb under x86-linux, I'm confused what's going
on, especially as the compiled version actually ran... However, I
think it's due to a problem merging dmg's changes. I remember looking
at this twice and being convinced the relevant lines had been gone,
but that obviously doesn't make sense. I'll try to figure out what
went wrong.
Toon> The "No such file or directory" error is understandable, because a
Toon> relative path is unlikely to work in debugging info.
FWIW, `dir' in gdb.
I haven't checked in the following. Does it fix the problem OK?
Note that there seems to be something wrong with the libf2c makefile
dependencies (which I haven't looked into), so libg2c.a doesn't get
rebuilt appropriately if you just update these files -- do a clean
first. Also you can't now do a make of the library successfully other
than at the egcs top level. I don't know how it's really meant to be,
but this makes it painful to work on libf2c.
1998-06-29 Dave Love <d.love@dl.ac.uk>
* libI77/wsfe.c (s_wsfe): Fix setting of f__curunit lost in
previous change.
* libI77/rsfe.c (s_rsfe): Likewise.
Index: rsfe.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/libf2c/libI77/rsfe.c,v
retrieving revision 1.2
diff -u -p -r1.2 rsfe.c
--- rsfe.c 1998/06/23 14:37:12 1.2
+++ rsfe.c 1998/06/29 22:10:43
@@ -60,6 +60,7 @@ integer s_rsfe(cilist *a) /* start */
f__cursor=f__recpos=0;
f__scale=0;
f__fmtbuf=a->cifmt;
+ f__curunit= &f__units[a->ciunit];
f__cf=f__curunit->ufd;
if(pars_f(f__fmtbuf)<0) err(a->cierr,100,"startio");
f__getn= x_getc;
Index: wsfe.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/libf2c/libI77/wsfe.c,v
retrieving revision 1.4
diff -u -p -r1.4 wsfe.c
--- wsfe.c 1998/06/23 14:37:15 1.4
+++ wsfe.c 1998/06/29 22:10:43
@@ -57,6 +57,7 @@ integer s_wsfe(cilist *a) /*start*/
f__nonl = 0;
f__scale=0;
f__fmtbuf=a->cifmt;
+ f__curunit = &f__units[a->ciunit];
f__cf=f__curunit->ufd;
if(pars_f(f__fmtbuf)<0) err(a->cierr,100,"startio");
f__putn= x_putc;