layer@Franz.COM (Kevin Layer) (03/29/91)
A problem with DUMPLISP has been found and fixed, with the patch below, which is contained in a `shar' file. Basically, after you get your ACL loaded, but before you run `config' to install it, extract (in the `build' directory) and apply the patch as described in the README file. It will permanantly patch an object file in the ACL distribution and you may run `config' any number of times after doing so. =============================================================================== #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # README # install_patch.sh # fixit.c # patch.uu # This archive created: Wed Mar 27 19:13:35 1991 export PATH; PATH=/bin:$PATH if test -f 'README' then echo shar: will not over-write existing file "'README'" else cat << \SHAR_EOF > 'README' This patch fixes problems with DUMPLISP in NeXT ACL 3.1.20. Unpack the shar file in the `build' directory and run the shell script named `install_patch.sh'. This will patch ucl.o. Reinstall Allegro CL using config. If you have questions, contact customer support at Franz Inc. at bugs@franz.com or (415) 548-3600. SHAR_EOF fi # end of overwriting check if test -f 'install_patch.sh' then echo shar: will not over-write existing file "'install_patch.sh'" else cat << \SHAR_EOF > 'install_patch.sh' #! /bin/sh if test ! -f ucl_orig.o; then echo save ucl.o to ucl_orig.o... mv ucl.o ucl_orig.o fi if test ! -f patch.o; then echo unpack patch.o... uudecode patch.uu fi if test ! -f fixit; then echo make fixit... cc -o fixit fixit.c fi echo make ucl_temp.o... ld -r -o ucl_temp.o patch.o ucl_orig.o ############################################################################### set - `nm ucl_temp.o | grep dodump` dodump=0x$1 set - `nm ucl_temp.o | grep new_mach_dumplisp` new=0x$1 set - `otool -h ucl_temp.o | tail -1` # 28 is the size of the Mach header # $6 is the offset to the text segment in the Mach-O file offset=`expr 28 + $6` foo="./fixit ucl_temp.o $offset $dodump 38 $new" echo $foo $foo ############################################################################### set - `nm ucl_temp.o | grep mach_check_shlib_versions` mcsv=0x$1 set - `nm ucl_temp.o | grep new_find_vmlib` new=0x$1 set - `otool -h ucl_temp.o | tail -1` # 28 is the size of the Mach header # $6 is the offset to the text segment in the Mach-O file offset=`expr 28 + $6` foo="./fixit ucl_temp.o $offset $mcsv 146 $new" echo $foo $foo ############################################################################### mv ucl_temp.o ucl.o SHAR_EOF chmod +x 'install_patch.sh' fi # end of overwriting check if test -f 'fixit.c' then echo shar: will not over-write existing file "'fixit.c'" else cat << \SHAR_EOF > 'fixit.c' /* -[Wed Mar 27 18:02:49 1991 by layer]- */ #include <stdio.h> #include <sys/fcntl.h> main(argc, argv) char **argv; { char *file; int fd; long base; long offset; long foff; long new; long newval; long fixaddr; if (argc != 6) { fprintf(stderr, "usage: %s file foff base offset new\n", argv[0]); exit(1); } file = argv[1]; if ((fd = open(file, O_RDWR)) < 0) { fprintf(stderr, "can't open %s\n", file); exit(1); } foff = strtol(argv[2], NULL, 0); base = strtol(argv[3], NULL, 0); offset = strtol(argv[4], NULL, 0); new = strtol(argv[5], NULL, 0); fixaddr = base + offset; if (lseek(fd, fixaddr + foff, 0) != (fixaddr + foff)) { fprintf(stderr, "couldn't seek to %d in %s\n", fixaddr + foff, file); exit(1); } if (fixaddr > new) newval = new - fixaddr; else newval = fixaddr - new; if (write(fd, &newval, 4) != 4) { perror("write failed"); exit(1); } close(fd); exit(0); } SHAR_EOF fi # end of overwriting check if test -f 'patch.uu' then echo shar: will not over-write existing file "'patch.uu'" else cat << \SHAR_EOF > 'patch.uu' begin 644 patch.o M_NWZS@````8````!`````0````(```%@``````````$```%(```````````` M``````````````````LX```!?```"R0````'````!P````0`````7U]T97AT M`````````````%]?5$585``````````````````````),````7P````!```, MM````)H```````````````!?7V-S=')I;F<`````````7U]415A4```````` M````````"3````'T```*K````````!&$``````````(``````````%]?9&%T M80````````````!?7T1!5$$````````````````+)`````````R@`````@`` M$80`````````````````````7U]B<W,``````````````%]?1$%400`````` M``````````LD````%```#*`````"```1A``````````!```````````````" M````&```$80````O```3N````LA.5OP`2.<_`"HN``@D+@`0+BX`%$AX``%" MIR\%8?_____B+`#>_``,;`Q(>``"8?_____06$]"IR\N``PO!6'_____P-[\ M``Q*@&P,2'@``F'_____KEA/2H)O5"@.!H3___P`#((```0`;P@@/```!`!@ M`B`"+P`O!"\%8?____^")@#>_``,;R8O`R\$+P=A_____V[>_``,2H!L#$AX M``1A_____UQ83Y2#2H)NM$J#;`Q(>``$8?____]&6$]"IR\&+P5A_____SC> M_``,2H!L"DAX``)A_____R9"@$SN`/S[Z$Y>3G5.5O_D2.<\`"HN``@H+@`, M)BX`$$AN__QA_____OPM0/_\<`%83R0\````%&```0!*N0````!G/DJN_^QF M""`\```),&`&(#P```DU+P`O+O_H+R[_\"\N__0O+O_X2'D```DV8?____ZP M+P)A_____JC>_``<(B[_^+*N__QF$DJY`````&<``*1(>0``"6Y@("\N__AA M_____GY83TJ`9R)*N0````!G``""2'D```F38?____YB+P)A_____EI03V!H M2J[_[&<,2'@`!V'____^1EA/+R[_^&'____^.B\`2'D```FY8?____XLWOP` M#$J`9A(C[O_X`````"/N__``````8"0O+O_D+R[_Z"\N__`O+O_T+R[_^"\# M+P0O!6'____]\M[\`"!"@$AN_^1(;O_H2&[_[$AN__!(;O_T2&[_^"\`8?__ M__W,WOP`'$J`9@#^VDSN`#S_U$Y>3G5.5M[X2.<\,$*N_T!"KO\\0J[_.$*Y M`````'(!(\$`````2KD`````9S(@.0```!0&@```(``M0/\P!H```"``(\`` M````(@`&@?__X``CP0````!"N0````!@$"(Y``````:!___@`"U!_S!(>0`` M``!A_____4`M0/\T6$]G``":2J[_.&<,+R[_.&'____])EA/2J[_0&<,+R[_ M0&'____]%%A/2J[_/&<6(B[_/+*N_T!G#"\N_SQA_____/A83TJY`````&<. M2'D````48?____SB6$]R";*N_S1G!DJN_S1F!D*`8``%/DJY`````&<F+R[_ M-$AY```)Q&'____\M$AY````%&'____\J&'____\HM[\``QA_____)@D`&8, M2'@``6'____\BEA/0J<O`F'____\?BU`_T!03VT:2'@`'$AN_W@O+O]`8?__ M__QDWOP`#$J`;`Q(>``"8?____Q26$]"KO^(0J[_C"UN_T#_/$AX`?\O+@`( M8?____PT+4#_.%!/;`Q(>``#8?____PB6$](>``!2'@`'"\N_SAA_____`[> M_``,2H!L#$AX``1A____^_Q83R\N_T!A____^_`O.0````!A____^^0CP``` M``!(;O]X2&[_,"\N_SAA_____+;>_``42KD`````9PY(>0``">%A____^[18 M3W`!1>[^^&```>YR`[*09B1(>0``"@1(>0```"AA____^Y!(>``"8?____N& MWOP`#&```<)R`K*09@`!NB9(2KD`````9B!(>0``"BY(>0```"AA____^UI( M>``"8?____M0WOP`#"/N_S``````("L`#..`T*L`#.6`T*L`%"/``````'(! M+4'^^'(X+4'^_$AY```)N4AJ``AA____^Q(M>0````#_$"UY`````/\4+7D` M````_Q@M>0````#_''('+4'_('(%+4'_)$*N_RAR!"U!_RQ(>``X+PHO+O\X M8?____K,WOP`%'(XLH!G#$AX``1A____^KA83U*N_X@B+O[\TZ[_C$JY```` M`&<R(BL`$)*K``@O`4AY```*147Y`````$Z2("L`#..`T*L`#.6`+P!(>0`` M"G%.DM[\`!!"IR\N_S`O+O\X8?____I@+R[_."`K``SC@-"K``SE@"\`+RL` M""\N_SQ%^0````!.DB\N_S@O*P`4+RL`$"\N_SQ.DM[\`"PO+O\X8?____H> M)V[_,``(("L`#..`T*L`#.6`T*[_,"=``!!(>``8+PLO+O\X8?____GTWOP` M$'(8LH!G#$AX``1A____^>!83R`K``SC@-"K``SE@-"K`!31KO\P4J[_B'(8 MTZ[_C&`>0H!(;O]$+P`O+O\\8?____FL($#>_``,2HAF`/WZ=*C4CB\"8?__ M__F44J[_B"(N_ZS3KO^,2'@`6"\"+R[_.&'____Y>-[\`!!R6+*`9PQ(>``$ M8?____ED6$]P`7H4)@X&@___WOA@``$J)"[_F)2%2KD`````9RXO+O^42'D` M``J<1?D`````3I(O+O^82'D```JT3I(O+O^<2'D```K&3I+>_``8*"[_G'(4 M+4'_G"\%2&[_E"\N_SAA____^/S>_``,NH!G#$AX``1A____^.I83TAX``$B M`D2!+P$O+O]`8?____C4+P(O`R\N_T!A____^,;>_``8M(!G#$AX``)A____ M^+183TJY`````&<0+P-(>0``"MMA____^)Q03R\#+P1A____^)!03TJ`9RA* MN0````!G%"\#+P1(>0``"NQA____^'+>_``,2'@``F'____X9%A/+P(O`R\N M_SAA____^%3>_``,M(!G#$AX``1A____^$)83U*N_X@B+O^8TZ[_C"(N_YC3 MKO\P0H`O`$AN_Y0O+O]`8?____@:WOP`#$J`9@#^P"(N_XRRN0````!C#$AX M``AA____]_I83T*G0J<O+O\X8?____?JWOP`#$J`;")*N0````!G#DAY```+ M`V'____WSEA/2'@`!&'____WPEA/2'@`'$AN_W@O+O\X8?____>NWOP`#$J` M;`Q(>``$8?____><6$](>``)8?____>03.X,/-[@3EY.=4Y6```O"DJN``AG M)B/Y````$```"RAR'`:!`````"/!```+)$JY`````&P&0KD`````1?D```LL M8%P@>0``"R1R!K*09P9R![*09CI(>``,2'D```LL(CD```LD4($O`6'____W M($JY`````&<0<O\CP0`````B.0``"R33DB`\```++&`B('D```LD(B@`!-.Y M```+)%.Y```+*'+_LKD```LH9I1"@"1N__Q.7DYU3G%N;W0@``!R96=I;VX@ M,'@E>"QS:7IE(#!X)7@L=FUS:7IE(#!X)7@L<')O="`P>"5X("@E<W-H87)E M9"D*`"`@(')E9VEO;B!A8F]V92!S=&%C:R`H:6=N;W)I;F<@:70I"@`@("!H M879E('-H87)E9"!L:6)R87)Y("AI9VYO<FEN9R!I="D*`%]?3$E.2T5$250` M9'5M<&QI<W`Z(&5R<F]R(&]C8W5R960Z("5D"@!L;V]K:6YG(&9O<B!S>6UB M;VP@=&%B;&4@8V]M;6%N9',*`$Q#7U-935-%1R!I<R!O8G-O;&5T92TM8V%N M)W0@:&%N9&QE('1H:7,*`$YO(%]?3$E.2T5$250@<V5G;65N=`H`<')E=FEO M=7,@9&EF9B!B971W965N('-Y;6]F9B!A;F0@<W1R;V9F("5D"@!C=7)R96YT M(&1I9F8@8F5T=V5E;B!S>6UO9F8@86YD('-T<F]F9B`E9`H`:&%V92!V;6QI M8B!C;VUM86YD.B`E9`H`("`@8VUD<VEZ92!I<R`E9`H`("`@;VQD(&]F9G-E M="!I<R`E9`H`9V]T('!A=&AN86UE("5S"@!N86UE(&ES("5S+"!B=68@:7,@ M)7,*`&-O=6QD;B=T('-E="!F:6QE('!O:6YT97(@=&\@,`H````````````` M```````````````````(X```+M````AP```"T```"&0```+0```(4@``!-`` M``@^```"T```"#(```G0```(%@```=````@&```"T```!^8``"G0```'O@`` M`M````>L```$T```!YP```+0```'C@``"=````=P```-T```!V0```G0```' M3````M````<Z```#T```!RP```'0```'%@```M````<$```$T```!IP```+0 M```&B```!-````9L```HT```!E0``"?0```&(````M````8,```$T```!>(` M`";0```%H```)=````5(```"T```!30```30```$[@``)-````2P```"T``` M!*8``"'0```$>@```M````1P```AT```!$P```G0```$-````<````0<```& MT```!!```!_0```$!````M````/R```!T````]X```+0```#S```'M````.N M```"T````YP```/0```#@@``'=````-V```"T````V@``!S0```#7@``&]`` M``-8```*T````TP```G0```#'@``"M````,(```:T````NP``!K0```"V@`` M&M````+````9T````C0``!'0```"#@``$-````'4```-T````<8```S0```! MN@```M````&F```*T````9X```G0```!@@``"]````%8```*T````5````G0 M```!!```!M````#:```"T````,@```'0````N@```M````"D```"T````)(` M``30````?@```]````!2```"T````$````'0````,````M`````>```!T``` M"1X```1````)%@``!$````D0```$0```"08```1````(_@``!$````CV```$ M0```"/```!-0```(Y@``$U````C6```$0```"-````1````(N@``!$````BR M```$0```"*P``!-0```(I```$U````B>```$0```")@``!50```(D```!$`` M``B,```54```""P```)````()```"%````?Z```74```!X@```)````'?``` M"%````=>```"0```!U0```A0```&Y````D````;8```"0```!LP```E0```& MQ@```D````:Z```(4```!<````%````%B@```D````5T```)4```!6X```)` M```%7```"%````4,```C4```!00``")0```$_```#U````3T```.4```!.0` M``)````$T@``(U````2\```B4```!*````=0```$F@```D````22```.4``` M!&H```=0```$9````D````1&```"0```!#X```A0```$(@``(%````06```@ M4````U(```=0```#1@```D````,Z```(4````Q@```=0```#$```"%````*Z M```84````JH``!90```"H@``%%````*<```74````HX``!90```">```%5`` M``)P```44````FH``!-0```"8@``#E````'L```/4````>0```Y0```!S@`` M`D````&8```"0````8X```A0```!=@```D````%L```(4````4H```)````! M,@```D````$J```"0````1P```A0```!$@``!U`````$#@$````````````7 M`0`````````````>`0`````````````O`0`````````````U`0`````````` M```\#@$``````.H```!1`0````````````!J`0````````````!P`0`````` M``````"``0````````````"(`0````````````"0`0````````````"G`0`` M``````````"\`0````````````#$`0````````0```#<`0````````0```#S M`0````````````$``0````````````$,#P$``````DP```$?`0````````0` M``$[`0````````````%0`0````````````%D`0````````````%U`0`````` M``````&'`0````````````&8`0````````````&A`0````````````&H`0`` M``````````&O`0````````````&[`0````````````'!`0````````````'( M`0````````````'>`0````````````'Q`0````````````'Z`0````````0` M``(4`0````````0```(O`0````````````(W`0````````````)#`0`````` M``````)4`0````````````)S`0````````````*%`0````````````*4#@0` M````"R0```*;#@0`````"R@```*J#@0`````"RP```*Q#P$`````"'X```+! M`0``````````````7V9I;&5?8V]P>5]S96=M96YT`%]L<V5E:P!?9'5M<&QI M<W!?<F5T=7)N`%]R96%D`%]W<FET90!?;6%C:%]O=71P=71?<F5G:6]N<P!? M861D<F5S<U]T;U]R96=I;VY?<W1A<G0`7U]I;V(`7V1E8G5G7V1U;7!L:7-P M`%]P<FEN=&8`7V9F;'5S:`!?9G)O;5]S:&%R961?;&EB<F%R>5]P`%]G971S M96=N86UE8GEA9&1R97-S`%]S=')C;7``7VQI;FME9&ET7W-E9VUE;G1?<W1A M<G0`7VQI;FME9&ET7W-E9VUE;G1?<VEZ90!?;6%C:%]D;U]S96<`7V=E=%]R M96=I;VX`7VYE=U]M86-H7V1U;7!L:7-P`%]F:6YD7W9M;&EB7V-O;G9E<G1? M;V9F<V5T<P!?9'5M<&QI<W!?9FER<W1?=&EM90!?7VUH7V5X96-U=&5?:&5A M9&5R`%]R96%L7W1E>'1?<W1A<G0`7W)E86Q?:&5A9&5R7W-I>F4`7V1U;7!L M:7-P7VIM<&)U9@!?7W-E=&IM<`!?8VQO<V4`7V%B;W)T`%]C=7)P9VUN86UE M`%]O<&5N`%]C<F5A=`!?:6YI=%]M86-H7W)E9VEO;E]M87``7W-B<FM?<F5G M:6]N7W-T87)T`%]F<')I;G1F`%]L:6YK961I=%]S96=M96YT7V9I;&5O9F8` M7VQI;FME9&ET7W-E9VUE;G1?9FEL97-I>F4`7W-T<F-P>0!?;'-E96M?<V%V M90!?<F5S=&]R95]F:6QE<&]S`%]F:6YD7W-Y;71A8E]O<E]S>6US96=?8V]M M;6%N9`!?;6%C:%]M86ME7W1H<F5A9`!?9F1?9FEN9%]V;6QI8@!?8VUD+C`` M7W-A=F5D7VYC;61S+C$`7V9V;2XR`%]N97=?9FEN9%]V;6QI8@!?8F-O<'D` ` end SHAR_EOF fi # end of overwriting check # End of shell archive exit 0 -- Kevin Layer, Franz Inc. 1995 University Avenue, Suite 275 layer@Franz.COM (internet) Berkeley, CA 94704 uunet!franz!layer (uucp) Phone: (415) 548-3600; FAX: (415) 548-8253