Andi, thanks for the response.
The code forks immediately and the new process segfaults immediately.
From an inspection of 'strace -f' on a working version, the next callwould have been setsid() . (The library call in the code is daemon(0,0)).
The original Makefile has an LDFLAG of -N (OMAGIC: make text secion writable, don't page-align the data section.... No idea why).
If I compile with ancient gcc/ld, it works after compiling without -N and segfaults when compiling with -N. If I compile with a recent gcc/ld, it works fine.
here's an objump of the segfaulting portmap ------------------------------------------------
objdump -x /usr/sbin/portmap
/usr/sbin/portmap: file format a.out-i386-linux /usr/sbin/portmap architecture: i386, flags 0x00000002: EXEC_P start address 0x00000000
Sections: Idx Name Size VMA LMA File off Algn 0 .text 00000f7c 00000000 00000000 00000020 2**2 CONTENTS, ALLOC, LOAD, CODE 1 .data 00000110 00000f7c 00000f7c 00000f9c 2**2 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000018 0000108c 0000108c 00000000 2**2 ALLOC SYMBOL TABLE: no symbols
------------------- and here's the objdump of the test without -N
objdump -h a.out
a.out: file format a.out-i386-linux
Sections: Idx Name Size VMA LMA File off Algn 0 .text 00001fe0 00001020 00001020 00000020 2**3 CONTENTS, ALLOC, LOAD, CODE 1 .data 00001000 00003000 00003000 00002000 2**3 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 00004000 00004000 00000000 2**3 ALLOC
-------------------------------------------------- so maybe the alignment difference is the problem?
as I said before, I have things working, only reporting this on the possibility that it's a bug worth investigating.
thanks mds
Andi Kleen wrote:
Mark Studebaker <[EMAIL PROTECTED]> writes:
I upgraded from 2.6.5 to 2.6.11.2 and my ancient (libc4 a.out) /sbin/portmap from 1994 that's been running without complaint on kernels for 11 years now consistently segfaults.
I upgraded to a version 4 RPM (circa 2002) and that fixed it.
If some compatibility was broken on purpose, that's fine, although I couldn't find anything in the kernel docs. I know, I should upgrade everything, but that can break a lot of things too... Thought I'd mention it though in case it's a bug or somebody else has the same problem.
It's probably a bug, but your bug report doesn't have enough details to track it down. Do you have a a.out strace and could send an strace log with the segfault and the last tens of system calls before it?
-Andi
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/