diff --git a/src/sys/kernel/ld.c b/src/sys/kernel/ld.c index 57aa298..606c288 100644 --- a/src/sys/kernel/ld.c +++ b/src/sys/kernel/ld.c @@ -53,28 +53,39 @@ elfDynSym *relSymTab = 0x0; elfPltInfo *elfRel = 0x0; + kprintf("1"); + ldFd = fopen("ld.so","rb"); if (ldFd == 0x0) { kprintf("Can not open ld.so\n"); } + + kprintf("2"); fseek(ldFd,0x0,0x0); binaryHeader = (elfHeader *)kmalloc(sizeof(elfHeader)); fread(binaryHeader,sizeof(elfHeader),1,ldFd); + kprintf("3"); + programHeader = (elfProgramHeader *)kmalloc(sizeof(elfProgramHeader)*binaryHeader->ePhnum); fseek(ldFd,binaryHeader->ePhoff,0); fread(programHeader,sizeof(elfSectionHeader),binaryHeader->ePhnum,ldFd); + kprintf("4"); + sectionHeader = (elfSectionHeader *)kmalloc(sizeof(elfSectionHeader)*binaryHeader->eShnum); fseek(ldFd,binaryHeader->eShoff,0); fread(sectionHeader,sizeof(elfSectionHeader),binaryHeader->eShnum,ldFd); + kprintf("5"); + shStr = (char *)kmalloc(sectionHeader[binaryHeader->eShstrndx].shSize); fseek(ldFd,sectionHeader[binaryHeader->eShstrndx].shOffset,0); fread(shStr,sectionHeader[binaryHeader->eShstrndx].shSize,1,ldFd); + kprintf("6"); for (i=0;iePhnum;i++) { switch (programHeader[i].phType) { @@ -98,6 +109,8 @@ } } + kprintf("7"); + for (i=0x0;ieShnum;i++) { switch (sectionHeader[i].shType) { case 3: @@ -119,10 +132,14 @@ } } + kprintf("8"); + elfRel = (elfPltInfo *)kmalloc(sectionHeader[rel].shSize); fseek(ldFd,sectionHeader[rel].shOffset,0x0); fread(elfRel,sectionHeader[rel].shSize,1,ldFd); + kprintf("9"); + for (i=0x0;ieEntry + LD_START; + kprintf("11"); + fclose(ldFd); kfree(dynStr); kfree(shStr); @@ -162,6 +182,9 @@ /*** $Log$ + Revision 1.14 2004/06/17 01:09:25 reddawg + TCA: cvs update make and give me output + Revision 1.13 2004/06/16 19:45:11 reddawg Cleaned Up Code