From d4a7b16d8d02a1f9232566b442b6a3cdc1d23db7 Mon Sep 17 00:00:00 2001 From: Elliot Nunn Date: Mon, 13 Nov 2017 21:50:16 +0800 Subject: [PATCH] Declare between-file branches The unlink tool now REFGUESSes branches between object files, with some manual guidance. If you patch the ROM enough to change its function offsets, it should still work fine. (One potential exception: if the linker needs to put a new "BSR.L" island module *within* a pre-built object file, that module file's internal references *may* be disrupted. This situation is fairly unlikely, but with improved reversal it will be addressed.) --- BuildResults/RISC/Lib/ATAMgr.lib | Bin 6492 -> 8008 bytes BuildResults/RISC/Lib/AliasMgr.lib | Bin 69554 -> 87622 bytes BuildResults/RISC/Lib/ComponentMgr.lib | Bin 39066 -> 44600 bytes BuildResults/RISC/Lib/DialogMgr.lib | Bin 31692 -> 37732 bytes BuildResults/RISC/Lib/DisplayMgr.lib | Bin 121872 -> 147670 bytes BuildResults/RISC/Lib/ExpansionBusMgr.lib | Bin 89524 -> 120186 bytes BuildResults/RISC/Lib/FontMgr.lib | Bin 226590 -> 282386 bytes BuildResults/RISC/Lib/Gestalt.lib | Bin 8812 -> 10846 bytes BuildResults/RISC/Lib/HFS.lib | Bin 126638 -> 170700 bytes BuildResults/RISC/Lib/IoPrimitives.lib | Bin 5980 -> 7562 bytes BuildResults/RISC/Lib/Lastly.lib | Bin 15526 -> 21276 bytes BuildResults/RISC/Lib/MMU.lib | Bin 3006 -> 3498 bytes BuildResults/RISC/Lib/MemoryMgr.lib | Bin 61572 -> 74802 bytes BuildResults/RISC/Lib/MenuMgr.lib | Bin 45884 -> 58070 bytes BuildResults/RISC/Lib/MoreCQD.lib | Bin 30710 -> 34852 bytes BuildResults/RISC/Lib/NotificationMgr.lib | Bin 15906 -> 19716 bytes BuildResults/RISC/Lib/SCSI.lib | Bin 44586 -> 52364 bytes BuildResults/RISC/Lib/ScriptMgr.lib | Bin 70512 -> 71124 bytes BuildResults/RISC/Lib/SlotMgr.lib | Bin 23800 -> 24774 bytes BuildResults/RISC/Lib/WindowMgr.lib | Bin 72164 -> 90560 bytes BuildResults/RISC/Obj/BCScreenRelated.o | Bin 1620 -> 1638 bytes BuildResults/RISC/Obj/DeviceMgr.a.o | Bin 60012 -> 75698 bytes BuildResults/RISC/Obj/DeviceRelatedMgr.o | Bin 1046 -> 1066 bytes BuildResults/RISC/Obj/InterruptHandlers.a.o | Bin 4838 -> 5266 bytes BuildResults/RISC/Obj/NKEventGroupRelated.a.o | Bin 1718 -> 2276 bytes BuildResults/RISC/Obj/PowerMgr.o | Bin 14638 -> 18422 bytes BuildResults/RISC/Obj/PrintingExtra.a.o | Bin 982 -> 1074 bytes BuildResults/RISC/Obj/ScrapMgr.a.o | Bin 1298 -> 1324 bytes BuildResults/RISC/Obj/ShutDownMgr.c.o | Bin 8328 -> 9856 bytes BuildResults/RISC/Obj/StartInterstix.c.o | Bin 25684 -> 32932 bytes BuildResults/RISC/Obj/StartLibGlue.c.o | Bin 1704 -> 1732 bytes BuildResults/RISC/Obj/UniversalTables.a.o | Bin 1268 -> 1290 bytes Misc/GoNativeROMLib.o | Bin 75856 -> 102400 bytes 33 files changed, 0 insertions(+), 0 deletions(-) diff --git a/BuildResults/RISC/Lib/ATAMgr.lib b/BuildResults/RISC/Lib/ATAMgr.lib index c9b5f1c06b33966e07ab87cb58f1e4ce99d216a6..4559bd435612457f90792c36c4f1a793984c82a5 100644 GIT binary patch literal 8008 zcmc&(e{56N6+U)@aTAxe5Oo<)xC$ssAhBPJ2@Z20&wkHwT*rSl(q;lgsR+~d!K(h zQJsmpj-KCh-hKDod%o{{_ndQ8Do{THVC{Ch+TG8{60v(d9i&6F5lcDdR; zKJqKEi#TMj{1_qR*Q=#wL8vFIWx;5wBV_;;aHg!oKNtb*ZDQGv@nP>}N5^pgNI0;T zh}}Lyo^>vZ>Kp;Y*{{H^KNQlq665e|(XB=~O!+UUM zF5t(k)j}(~aQ6Thbk%y$k_hO?0GMkBKus(Fl%D!sHT0=#eMA@196JKK;9a7tjnMDi z&$&m?lJ=a=Ng&dnHH(-(LIxx8VG;?9#>rN0mU?0)k&$qC8;QpTw{FGO*vq*e1CC|6 zHby*rVn>^o!C?|O941B(saX_%2#x|PEimwq8%-Lf&&Pj@6%Oi!jJ)>E^+DcRF!(D$4{XVAD$P;E^ssp#~C zoXDF;=|qd2-e#>DkZW|ZVa(+bC3+{SLayD5!Tgo5utB5`ka1Jp74C zjmBJBGUYg38eXQATwKG6i6| zKn6s?0M^i+Ai(HBiJU6=VH8fkh^(qNQPS%IQQ|F}}==Z?(w}U15tXn5VC|fa=he4W2$t z6zW=GKzu+obq+|N?(X9{-^z8K#SBeOruG6H!SSl$0BXDzHGYiJY?aSfa-S!<+5qko zQx`UPT$4}ipf509YqW5I%^KAu6F)H06hrSkq5cVU+A48+-VCTq_ zkCHsei>6Ix)y3LT)#8}YSLOISQT==Og_lXIb5BqssO+tM<$}s9z9UAyj>7cOG@C#% zrY_WR)s509NqS90XJp|tp17^;wpmL_!J3$I-=dLqheL#cNr|lZw=J&wkuGro`=QB@fuM* zG51U?!u59ty}@)!t4GtjhW-8cAS{88e>Ma9Jofw;ZL$R0Jq4E@&%>GDzl8VAcz*$W zl35!NQQ&t!!MnS2qb)}LV!YH;5V@);U5X=0^go=~~rL>l!Z*!OwEtMK)50hf(oI=p7)KtN&F@u?> zQ+7+<_8!?g4PupWB};{H^oZD%84-IDJ}b|3r{MJ&wpZ}VF+wq3l@A!Aex}rT85O*Y zid$J{U#OS{FXVP5T+Oztk=gZX(yo6%PuR;m!QC@;oT+>JBt2zq6CZ%ncB%Rb`+I$1 zjU%J>-Q$@3TcW>-ZjP!9fLeMSkCTqb)NvkLK8vdQOk$BRm#OO15vHo;%z69~e<;Aq zRqSQ>VRb^5HPv91ur>nPsy{my2Okj3NN382Bs5P^NdEK@BL<1w^K1%|((FC2Ad2BQ zex8k^jp6ut633?y$0aGdR--+mSZVd{aQ-~_pfIy!!z;>?c_N0H<&M($M0%xBGD}Ix zEM#^Y#KOQ$eqQ#QArzERbd_=+i?wX&NKE39 zm~73C#PSnOoODj2X=JO~QurckRm;gVjV#mrLg9m|T&q>hSNK5pI&MC$MZdmZd(t2G zGoMXF;qa|dz&sGEUif=&bnf9>di)&(cw=miL5DHfffeBWy#cQ=W;%gwj2dsijsC-`r~kx^^(SCvd zlzDeX)o<_I1hk3i&J*9#-Hh`XoI`(L`{3q4Z~V8>0ALpSFJ=)`_DmLvMlQ+~@`^0z z3G+(k38GtU!vzx~F4@in#g6GoioePRQNgB9L8&k|;wqN)CdPWZV9Fw~F`bk6V*V%* zMLVm2JPFsh&MRYOOuUv-Cl)2!#n~_CY3(YkOfG;gGdh5;U>5%} zY4JE(d`z)8#Y(@jGsG*CL&|PkAKM?Q3`tn)sYK5?0J@O5?KUiS4q@F#A1ym|80Lj) zoQJXgLt2v?8tC1Z@X9x{{zG2 BPqqL6 delta 1436 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