From: muta...@gmail.com   
      
   Here is the fix to the linker (ld86):   
      
   C:\devel\ld86>git show a53d705d941cf7ef2fb5e5178989715c1226162c   
   commit a53d705d941cf7ef2fb5e5178989715c1226162c (HEAD -> master,   
   origin/master, origin/HEAD)   
   Author: Robert Pengelly    
   Date: Mon Apr 3 16:48:25 2023 +0100   
      
    Also check for if text symbol   
      
   diff --git a/aout.c b/aout.c   
   index c464f6c..b3b088f 100644   
   --- a/aout.c   
   +++ b/aout.c   
   @@ -671,7 +671,7 @@ static int relocate (struct aout_object *object, struct   
   relocation_info *r, int   
      
    }   
      
   - if (opcode == 0x9A) {   
   + if (opcode == 0x9A && symbolnum == 4) {   
      
    uint32_t temp = *(int32_t *) ((char *) output + header_size +   
   GET_INT32 (r->r_address));   
      
   @@ -730,7 +730,7 @@ static int relocate (struct aout_object *object, struct   
   relocation_info *r, int   
      
    }   
      
   - if (opcode == 0x9A) {   
   + if (opcode == 0x9A && symbolnum == 4) {   
      
    int32_t i;   
      
      
   It's not the solution I suggested (provide memory model as   
   a parameter, don't guess based on opcode).   
      
   But my own suggestion hasn't necessarily been thought   
   through properly, and I'm not sure if I can (and not willing   
   to spend the effort currently) to try to construct a test   
   case that demonstrates a problem (and there may not   
   be a problem), so this is the fix that will remain until I   
   discover a real problem, rather than a possible problem.   
      
   BFN. Paul.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|