Subject: Re: Compiling the kernel
To: None <port-arm32@NetBSD.ORG>
From: paul <pwain@nc.com>
List: port-arm32
Date: 02/16/1998 02:10:59
This is a multi-part message in MIME format.
--------------26842D6877E5B9E66F52089D
Content-Type: multipart/alternative; boundary="------------EFFE8822E5EA57FFC57865C3"


--------------EFFE8822E5EA57FFC57865C3
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit



prlw1@cam.ac.uk (Patrick Welche) wrote:

> Undefined instruction 0xeca0420c @ 0x00006a20 in process login
> LDC/STC
> stc     p2, c4, [r0], #0x030!
>
> In the configuration I included
> options         COMPAT_43       # 4.3BSD compatibility.
> options         COMPAT_13       # NetBSD 1.3 compatibility.
> options         COMPAT_12       # NetBSD 1.2 compatibility.
>
> So, have I missed a compatibility option? I should be able to build
> the new userland with a new kernel and old compiler right?

Okay there are 2 issues here:

1) Compat Options in the config file
These actually refer to whether the kernel can handle some of the old
system calls and programs that, whilst compiled up with compiler that
locates code into the correct address space with the correct symbols, may
not know about subtle new things in the current version on NetBSD. They
define the way for example sysctl's return their error number and the
like.

2) Why old binaries dont work with a new kernel
There could be a number of reasons. Off the top of my head I would have
something to do with either (a) the address space the new kernel uses (1.3
now entirely uses a 4K base address and I dont think supports the old 4M
address space - Mark?)  upsetting offsets and absolute addresses or (b)
some of the support for dynmaic linking screwing you up. Either way when
you move to 1.3 you really need to recompile everything. I guess thats a
side effect of the arm32 branch catching up with the main branch when
NetBSD versions change :)

BTW, what does gdb say when you run your program? You can probably safely
ignore the kernel warning message as to what the real problem is (Mark can
decode the rest of the message but mere mortals like the rest of us stand
no chance :)

Paul
(Running 1.2G purely to avoid some library symbol issus with .I. changing
to $I$).

--------------EFFE8822E5EA57FFC57865C3
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<HTML>
&nbsp;

<P>prlw1@cam.ac.uk (Patrick Welche) wrote:
<BLOCKQUOTE TYPE=CITE>Undefined instruction 0xeca0420c @ 0x00006a20 in
process login
<BR>LDC/STC
<BR>stc&nbsp;&nbsp;&nbsp;&nbsp; p2, c4, [r0], #0x030!

<P>In the configuration I included
<BR>options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMPAT_43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# 4.3BSD compatibility.
<BR>options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMPAT_13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# NetBSD 1.3 compatibility.
<BR>options&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMPAT_12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
# NetBSD 1.2 compatibility.

<P>So, have I missed a compatibility option? I should be able to build
<BR>the new userland with a new kernel and old compiler right?</BLOCKQUOTE>
Okay there are 2 issues here:

<P>1) <B><U>Compat Options in the config file</U></B>
<BR>These actually refer to whether the kernel can handle some of the old
system calls and programs that, whilst compiled up with compiler that locates
code into the correct address space with the correct symbols, may not know
about subtle new things in the current version on NetBSD. They define the
way for example sysctl's return their error number and the like.

<P>2) <B><U>Why old binaries dont work with a new kernel</U></B>
<BR>There could be a number of reasons. Off the top of my head I would
have something to do with either (a) the address space the new kernel uses
(1.3 now entirely uses a 4K base address and I dont think supports the
old 4M address space - Mark?)&nbsp; upsetting offsets and absolute addresses
or (b) some of the support for dynmaic linking screwing you up. Either
way when you move to 1.3 you really need to recompile everything. I guess
thats a side effect of the arm32 branch catching up with the main branch
when NetBSD versions change :)

<P>BTW, what does gdb say when you run your program? You can probably safely
ignore the kernel warning message as to what the real problem is (Mark
can decode the rest of the message but mere mortals like the rest of us
stand no chance :)

<P>Paul
<BR>(Running 1.2G purely to avoid some library symbol issus with .I. changing
to $I$).</HTML>

--------------EFFE8822E5EA57FFC57865C3--

--------------26842D6877E5B9E66F52089D
Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Paul Wain
Content-Disposition: attachment; filename="vcard.vcf"

begin:          vcard
fn:             Paul Wain
n:              Wain;Paul
org:            Network Computer Inc.
adr:            1000 Bridge Parkway;;;Redwood City;CA;94065;USA
email;internet: pwain@nc.com
title:          OS Development Engr.
tel;work:       +1 650 631 4628
tel;fax:        +1 650 631 4680
tel;home:       +1 415 297 6959 (Mobil)
x-mozilla-cpt:  ;0
x-mozilla-html: FALSE
version:        2.1
end:            vcard


--------------26842D6877E5B9E66F52089D--