From owner-freebsd-stable@FreeBSD.ORG Thu Dec 18 02:11:27 2003 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B472616A4CE for ; Thu, 18 Dec 2003 02:11:27 -0800 (PST) Received: from falcon.midgard.homeip.net (h201n1fls24o1048.bredband.comhem.se [212.181.162.201]) by mx1.FreeBSD.org (Postfix) with SMTP id 2D96243D46 for ; Thu, 18 Dec 2003 02:11:24 -0800 (PST) (envelope-from ertr1013@student.uu.se) Received: (qmail 22335 invoked by uid 1001); 18 Dec 2003 10:11:22 -0000 Date: Thu, 18 Dec 2003 11:11:22 +0100 From: Erik Trulsson To: Dmitry Pryanishnikov Message-ID: <20031218101121.GA22294@falcon.midgard.homeip.net> Mail-Followup-To: Dmitry Pryanishnikov , stable@freebsd.org References: <20031218114047.W32014@atlantis.atlantis.dp.ua> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20031218114047.W32014@atlantis.atlantis.dp.ua> User-Agent: Mutt/1.5.5.1i cc: stable@freebsd.org Subject: Re: ftime doesn't fetch from libcompat.a using -lcompat X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Dec 2003 10:11:27 -0000 On Thu, Dec 18, 2003 at 11:54:29AM +0200, Dmitry Pryanishnikov wrote: > > Hello! > > I've found a very unusual bug. I've tried to build a legacy program which > uses ftime(), but I've got unresolved reference to `ftime'. I've created a > very simple program that demonstrates a bug: > > #include > #include > main() > { > struct timeb tb; > return ftime(&tb); > } > > dmitry@test$ cc -lcompat a.c > /tmp/cck3ZpNz.o: In function `main': > /tmp/cck3ZpNz.o(.text+0xe): undefined reference to `ftime' > dmitry@test$ cc -lcompat -static a.c > /tmp/ccbGUAGZ.o: In function `main': > /tmp/ccbGUAGZ.o(.text+0xe): undefined reference to `ftime' > > The most interesting thing here is that I can extract module ftime.o from > my /usr/lib/libcompat.a and link against it: > > dmitry@test$ ar p /usr/lib/libcompat.a ftime.o >ftime.o > dmitry@test$ cc a.c ftime.o > dmitry@test$ > > It seems that symbol `ftime' gets somehow "undeclared" in library symbol > table. Could this error be fixed? It's present in 4.8-RELEASE and 4.9-RELEASE. > I haven't found anything in GNATS about this issue. The error lies with you, not the system. Try compiling it using 'cc a.c -lcompat' instead. The order of objectfiles/archives does matter when using static libraries. -- Erik Trulsson ertr1013@student.uu.se