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