X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rln;a=blobdiff_plain;f=rln.c;fp=rln.c;h=212a05cf8a48c04736e5921133946f061552f37a;hp=4ae8d4435f75b6799ff9b9d59a2d609818735f22;hb=0fd021e7f8c8efa56c768945f71144f61b3ef2cf;hpb=0d71dcf00270f75a7692c788e2834e47231780ef diff --git a/rln.c b/rln.c index 4ae8d44..212a05c 100644 --- a/rln.c +++ b/rln.c @@ -33,7 +33,6 @@ unsigned dataoffset = 0; // COF DATA segment offset unsigned bssoffset = 0; // COF BSS segment offset unsigned displaybanner = 1; // Display version banner unsigned symoffset = 0; // Symbol table offset in output file -unsigned dbgsymbase = 0; // Debug symbol base address int noheaderflag = 0; // No header flag for ABS files int hflags; // Value of the arg to -h option int ttype, dtype, btype; // Type flag: 0, -1, -2, -3, -4 @@ -245,26 +244,21 @@ int DoSymbols(struct OFILE * ofile) if (type & 0xF0000000) { // DEBUG SYMBOL - // Set the correct debug symbol base address (TEXT segment) -#if 0 - dbgsymbase = 0; - - for(j=0; (unsigned)jsegBase[TEXT]; -#endif - switch (type & 0xFF000000) { - case 0x64000000: - value = tval + dbgsymbase; + case 0x64000000: // Primary source file path and/or name + case 0x84000000: // Included source file path and/or name + case 0x44000000: // Text line number + value = tbase + tsegoffset + value; + break; + case 0x46000000: // Data line number (Not used by GCC/rmac) + value = dbase + dsegoffset + value; break; - case 0x44000000: - case 0x46000000: - case 0x48000000: - value = tval + dbgsymbase + value; + case 0x48000000: // BSS line number (Not used by GCC/rmac) + value = bbase + bsegoffset + value; default: + // All other debug symbols don't need to be relocated + // XXX Not true, but matches ALN behavior. break; } @@ -3133,12 +3127,8 @@ int doargs(int argc, char * argv[]) break; case 'g': case 'G': // Output source level debugging - printf("\'g\' flag not currently implemented\n"); - gflag = 0; - /* if (gflag) warn('g', 1); gflag = 1; - */ break; case 'i': case 'I': // Include binary file