Patch-ID# 100098-03
Keywords: libF77, 16k records, yacc, lex, _yyparse, _yyerror, _yylex, _yyact, etc
Synopsis: multiple fixes: 16k record limit; yacc;lex symbol name clash
Date: 15-Mar-91
 
SunOS release: 4.0.2, 4.0.3, 4.1, 4.1.1
 
Unbundled Product: Fortran
 
Unbundled Release: 1.3.1
 
Topic: Fortran 1.3.1 libF77 patch
 
BugId's fixed with this patch: 1044552, 1042114

Architectures for which this patch is available: sun386i, sun3, sun3x, sun4, sun4c

Patches which may conflict with this patch: obsoletes 100098-02 and 100238-01

Obsoleted by:

Problem Description: 

This patch fixes multiple problems in one set of libF77 replacements.


NOTE: the yacc/lex name fixes are in the SUN3 and SUN4 versions only
      the 16k record limit fix is in ALL versions


1) yacc/lex symbol name collisions (1004552):

	Fortran 1.3.1 libF77 contains yacc and lex names _yyparse, 
	_yyerror, _yylex, _yyact etc. This is causing a conflict when 
	users try to link their own code generated by lex and yacc.


2) 16k record limit problem (1042114):

        Fortran programs get segmentation violation errors (with core
	dumps) when writing records of 16kb or greater.  This problem effects
	all styles of I/O except list-directed.

	The 1.3.1 RTF mentions I/O records longer than 8k fail unless compiled
	with -Bstatic. Even with -Bstatic, records larger than 16k fail.


INSTALL: 

Note: this assumes your Fortran 1.3.1 is installed under /usr/lang.
      you will also need to be logged in as root before issuing the
      following commands.

	These first 4 commands preserve the original static libraries

	mv /usr/lang/SC0.0/libF77.a /usr/lang/SC0.0/libF77.a.FCS		
	mv /usr/lang/SC0.0/libF77_p.a /usr/lang/SC0.0/libF77_p.a.FCS
	mv /usr/lang/SC0.0/misalign/libF77.a /usr/lang/SC0.0/misalign/libF77.a.FCS
	mv /usr/lang/SC0.0/misalign/libF77_p.a /usr/lang/SC0.0/misalign/libF77_p.a.FCS

	This next sequence copies the patch to the appropriate places

	cp sun{3,4}/libF77.a /usr/lang/SC0.0/libF77.a
	cp -p sun{3.4}/libF77.sa.1.1 /usr/lang/SC0.0/libF77.sa.1.2
	cp -p sun{3.4}/libF77.so.1.1 /usr/lang/SC0.0/libF77.so.1.2
	cp sun{3.4}/libF77_p.a /usr/lang/SC0.0/libF77_p.a
	cp sun{3.4}/misalign/libF77.a /usr/lang/SC0.0/misalign/libF77.a
	cp -p sun{3.4}/misalign/libF77.sa.1.1 /usr/lang/SC0.0/misalign/libF77.sa.1.2
	cp -p sun{3.4}/misalign/libF77.so.1.1 /usr/lang/SC0.0/misalign/libF77.so.1.2
	cp sun{3.4}/misalign/libF77_p.a /usr/lang/SC0.0/misalign/libF77_p.a

	ranlib /usr/lang/SC0.0/libF77.a
	The patch is installed
