Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: evbppc/powerpc cant run init




On Dec 12, 2003, at 8:52 AM, Juergen Hannken-Illjes wrote:

With the recent change to kern/exec_elf32.c evbppc/powerpc can't run init:

kern/exec_elf32.c treats every program section with VM_PROT_WRITE as data.

/sbin/init is

Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
  PHDR           0x000034 0x01800034 0x01800034 0x000c0 0x000c0 R E 0x4
  INTERP         0x000114 0x01800114 0x01800114 0x00013 0x00013 R   0x1
LOAD 0x000000 0x01800000 0x01800000 0x0427c 0x0427c RWE 0x10000 LOAD 0x00427c 0x0181427c 0x0181427c 0x00158 0x0066c RWE 0x10000
  DYNAMIC        0x0042e0 0x018142e0 0x018142e0 0x000c8 0x000c8 RW  0x4
  NOTE           0x000128 0x01800128 0x01800128 0x00018 0x00018 R   0x4

Both text and data are rwx and thus treated as data.
--
Juergen Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig (Germany)

This is actually due to a bug in gcc 3.3.2 which was marking the .init and .fini sections as writable. I pulled up a fix from gcc -current which fixes
the problem.

Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
  PHDR           0x000034 0x01800034 0x01800034 0x000c0 0x000c0 R E 0x4
  INTERP         0x000114 0x01800114 0x01800114 0x00013 0x00013 R   0x1
      [Requesting program interpreter: /libexec/ld.elf_so]
LOAD 0x000000 0x01800000 0x01800000 0x042b4 0x042b4 R E 0x10000 LOAD 0x0042b4 0x018142b4 0x018142b4 0x00158 0x00674 RWE 0x10000
  DYNAMIC        0x004318 0x01814318 0x01814318 0x000c8 0x000c8 RW  0x4
  NOTE           0x000128 0x01800128 0x01800128 0x00018 0x00018 R   0x4

So you'll have to do a new full build to get things to work again.
--
Matt Thomas                     email: matt%3am-software.com@localhost
3am Software Foundry              www: http://3am-software.com/bio/matt/
Cupertino, CA disclaimer: I avow all knowledge of this message.




Home | Main Index | Thread Index | Old Index