diff --git a/src/bin/ld/main.c b/src/bin/ld/main.c index 2cd1a6a..2320e1f 100644 --- a/src/bin/ld/main.c +++ b/src/bin/ld/main.c @@ -62,23 +62,31 @@ binaryFd = malloc(sizeof(FILE)); binaryFd->fd = (uInt32)got2; + printf("A"); + if (binaryHeader == 0x0) { fseek(binaryFd,0x0,0x0); binaryHeader = (elfHeader *)malloc(sizeof(elfHeader)); fread(binaryHeader,sizeof(elfHeader),1,binaryFd); } + printf("B"); + if (binarySectionHeader == 0x0) { binarySectionHeader = (elfSectionHeader *)malloc(sizeof(elfSectionHeader)*binaryHeader->eShnum); fseek(binaryFd,binaryHeader->eShoff,0); fread(binarySectionHeader,sizeof(elfSectionHeader),binaryHeader->eShnum,binaryFd); + printf("C"); + if (binaryShStr == 0x0) { binaryShStr = (char *)malloc(binarySectionHeader[binaryHeader->eShstrndx].shSize); fseek(binaryFd,binarySectionHeader[binaryHeader->eShstrndx].shOffset,0); fread(binaryShStr,binarySectionHeader[binaryHeader->eShstrndx].shSize,1,binaryFd); } + printf("D"); + for (i=0x0;ieShnum;i++) { switch (binarySectionHeader[i].shType) { case 3: @@ -104,12 +112,16 @@ } } + printf("E"); + if (binaryElfRel == 0x0) { fseek(binaryFd,binarySectionHeader[rel].shOffset,0x0); binaryElfRel = (elfPltInfo *)malloc(binarySectionHeader[rel].shSize); fread(binaryElfRel,binarySectionHeader[rel].shSize,1,binaryFd); } + printf("F"); + i = (entry/sizeof(elfPltInfo)); x = ELF32_R_SYM(binaryElfRel[i].pltInfo); @@ -117,11 +129,16 @@ *reMap = ldFindFunc(binaryDynStr + binaryRelSymTab[x].dynName,(char *)(binaryDynStr + 1)); free(binaryFd); + printf("G"); + return(*reMap); } /*** $Log$ + Revision 1.6 2004/06/16 23:11:34 reddawg + ld.so: now adds librarys it is a little more efficient does the lazy binding + Revision 1.5 2004/06/16 18:04:15 reddawg Fixed typo printf <--> kprintf diff --git a/src/sys/kernel/ld.c b/src/sys/kernel/ld.c index 4765ec6..57aa298 100644 --- a/src/sys/kernel/ld.c +++ b/src/sys/kernel/ld.c @@ -154,11 +154,17 @@ kfree(sectionHeader); kfree(programHeader); kfree(binaryHeader); + + kprintf("LD: [0x%X]\n",i); + return((uInt32)i); } /*** $Log$ + Revision 1.13 2004/06/16 19:45:11 reddawg + Cleaned Up Code + Revision 1.12 2004/06/16 17:49:02 reddawg Fixed typo printf <--> kprintf