Subject: kern/23758: >2 PT_LOAD changes to exec_elf32.c break old GCC3 PowerPC bins
To: None <gnats-bugs@gnats.netbsd.org>
From: None <thorpej@shagadelic.org>
List: netbsd-bugs
Date: 12/14/2003 14:26:56
>Number:         23758
>Category:       kern
>Synopsis:       >2 PT_LOAD changes to exec_elf32.c break old GCC3 PowerPC bins
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Dec 14 22:27:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Jason R Thorpe
>Release:        NetBSD 1.6ZG
>Organization:
        -- Jason R. Thorpe <thorpej@shagadelic.org>
>Environment:
	
	
System: NetBSD yeah-baby.shagadelic.org 1.6ZD NetBSD 1.6ZD (YEAH-BABY-XP) #21: Thu Oct 16 15:47:17 PDT 2003 thorpej@yeah-baby.shagadelic.org:/u1/netbsd/src/sys/arch/i386/compile/YEAH-BABY-XP i386
Architecture: i386
Machine: i386
>Description:
	The recent change to support >2 PT_LOAD sections in exec_elf32.c
	has broken older GCC3-compiled binaries on PowerPC.

	Due to a bug in GCC3, the text section was ending up being writable,
	which means that the new Phdr-parsing code in exec_elf32.c will never
	recognize a text segment in binaries compiled with that compiler.

>How-To-Repeat:
	Boot a new kernel on a system with GCC3-built binaries.  The exec
	of init will get ENOMEM.

>Fix:
	The compiler has been fixed, but that does not help people who
	have older binaries on their system.  The code in exec_elf32.c
	should be fixed to handle this situation.  Until then, the change
	in rev 1.96 of exec_elf32.c should be backed out.
>Release-Note:
>Audit-Trail:
>Unformatted: