From owner-freebsd-current Tue Mar 31 01:16:52 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id BAA16949 for freebsd-current-outgoing; Tue, 31 Mar 1998 01:16:52 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from smtp04.primenet.com (smtp04.primenet.com [206.165.6.134]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id BAA16940 for ; Tue, 31 Mar 1998 01:16:47 -0800 (PST) (envelope-from tlambert@usr08.primenet.com) Received: (from daemon@localhost) by smtp04.primenet.com (8.8.8/8.8.8) id CAA23521; Tue, 31 Mar 1998 02:16:46 -0700 (MST) Received: from usr08.primenet.com(206.165.6.208) via SMTP by smtp04.primenet.com, id smtpd023493; Tue Mar 31 02:16:36 1998 Received: (from tlambert@localhost) by usr08.primenet.com (8.8.5/8.8.5) id CAA14214; Tue, 31 Mar 1998 02:16:31 -0700 (MST) From: Terry Lambert Message-Id: <199803310916.CAA14214@usr08.primenet.com> Subject: Re: kernel with SOFTUPDATES doesn't link To: archer@lucky.net (Alexander Litvin) Date: Tue, 31 Mar 1998 09:16:31 +0000 (GMT) Cc: current@FreeBSD.ORG In-Reply-To: <19980331092916.42639@carrier.kiev.ua> from "Alexander Litvin" at Mar 31, 98 09:29:16 am X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > When attempting to make kernel with 'options SOFTUPDATES', > during linking I got: > > > loading kernel > > ffs_softdep.o: Undefined symbol `_time' referenced from text segment > > ffs_softdep.o: Undefined symbol `_time' referenced from text segment > > ffs_softdep.o: Undefined symbol `_time' referenced from text segment > > ffs_softdep.o: Undefined symbol `_time' referenced from text segment > > ffs_softdep.o: Undefined symbol `_time' referenced from text segment > > ffs_softdep.o: Undefined symbol `_time' referenced from text segment > > *** Error code 1 > > As I understand, that happened after Poul-Henning commit, which > killed 'time' variable. Though /sys/ufs/ffs/ffs_softdep.c still > depends on time. The time variable is referenced directly in the dependency resoloution code (the "shall be marked for update" part of the POSIX guarantees on timestamps, mostly). The "time" references need to be replaced with a "getmicrotime()" call. In at least one place (from memory), you will have to declare a local time variable and pass it's address to getmicrotime(), which takes a pointer to a time value. This is because of the reserved areas in the time making an assignment necessary, so you can't pass the address of the address of the variable to get the time to it directly. The getmicrotime() changes are a Good Thing(tm) incidently; now we have some place to hang a mutex. The curproc references need to be similarly wrapped, and I think the code depends on them, too. 8-(. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message