From owner-freebsd-alpha Wed Dec 4 15:44:31 2002 Delivered-To: freebsd-alpha@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8322937B401 for ; Wed, 4 Dec 2002 15:44:29 -0800 (PST) Received: from canning.wemm.org (canning.wemm.org [192.203.228.65]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3DCCE43E9C for ; Wed, 4 Dec 2002 15:44:29 -0800 (PST) (envelope-from peter@wemm.org) Received: from wemm.org (localhost [127.0.0.1]) by canning.wemm.org (Postfix) with ESMTP id 1E7DE2A8A5; Wed, 4 Dec 2002 15:44:29 -0800 (PST) (envelope-from peter@wemm.org) X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 To: Andrew Gallatin Cc: "alex" , "Yoriaki FUJIMORI" , alpha@FreeBSD.ORG Subject: Re: link_elf: symbol osf1_wait4 undefined In-Reply-To: <15854.1646.533496.929062@grasshopper.cs.duke.edu> Date: Wed, 04 Dec 2002 15:44:29 -0800 From: Peter Wemm Message-Id: <20021204234429.1E7DE2A8A5@canning.wemm.org> Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Andrew Gallatin wrote: > > alex writes: > > ahhhh. That solved the problem. > > What is the technical reason for having to load the osf1 module first ? > > Linux/alpha uses the same ABI as OSF/1 for a number of functions, > since they bootstrapped themselves from OSF/1 on alpha and never > bothered to go fully native. This ABI is already provided by our > osf1.ko module. > > The problem is that the osf1.ko module is SUPPOSED to be automatically > loaded as a dependancy of the linux module. I've asked the person who > wrote the module dependancy code for help on this, but he's moved on > to other things and has never answered. If somebody wants to look > into this, that would be great. I've never been able to figure it > out. This is quite well solved in 5.0: peter@daintree[3:41pm]~src/sys/alpha/osf1-121> grep MODULE_ * osf1_sysvec.c:MODULE_VERSION(osf1, 1); osf1_sysvec.c:MODULE_DEPEND(osf1, sysvmsg, 1, 1, 1); osf1_sysvec.c:MODULE_DEPEND(osf1, sysvsem, 1, 1, 1); osf1_sysvec.c:MODULE_DEPEND(osf1, sysvshm, 1, 1, 1); peter@daintree[3:41pm]~src/sys/alpha/osf1-122> cd ../linux/ peter@daintree[3:42pm]~src/sys/alpha/linux-123> grep MODULE_ * linux_sysvec.c:MODULE_VERSION(linux, 1); linux_sysvec.c:MODULE_DEPEND(linux, osf1, 1, 1, 1); linux_sysvec.c:MODULE_DEPEND(linux, sysvmsg, 1, 1, 1); linux_sysvec.c:MODULE_DEPEND(linux, sysvsem, 1, 1, 1); linux_sysvec.c:MODULE_DEPEND(linux, sysvshm, 1, 1, 1); ie: linux depends on osf1. osf1 depends on the sysv* stuff. linux also depends on the sysv*. All the dependency loading happens automatically if needed. There is no good solution for 4.x because the dependency system runs at the file level (rather than module level) and cannot detect when a module is already in the kernel. Cheers, -Peter -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message