From owner-freebsd-current Wed Sep 2 19:23:08 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id TAA24287 for freebsd-current-outgoing; Wed, 2 Sep 1998 19:23:08 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from smtp02.primenet.com (smtp02.primenet.com [206.165.6.132]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id TAA24281 for ; Wed, 2 Sep 1998 19:23:06 -0700 (PDT) (envelope-from tlambert@usr07.primenet.com) Received: (from daemon@localhost) by smtp02.primenet.com (8.8.8/8.8.8) id TAA17089; Wed, 2 Sep 1998 19:22:03 -0700 (MST) Received: from usr07.primenet.com(206.165.6.207) via SMTP by smtp02.primenet.com, id smtpd016968; Wed Sep 2 19:21:48 1998 Received: (from tlambert@localhost) by usr07.primenet.com (8.8.5/8.8.5) id TAA06719; Wed, 2 Sep 1998 19:21:38 -0700 (MST) From: Terry Lambert Message-Id: <199809030221.TAA06719@usr07.primenet.com> Subject: Re: Standardizing a BSD/ELF ABI... To: cracauer@cons.org (Martin Cracauer) Date: Thu, 3 Sep 1998 02:21:38 +0000 (GMT) Cc: tlambert@primenet.com, dawes@rf900.physics.usyd.edu.au, mike@smith.net.au, jb@cimlogic.com.au, freebsd-current@FreeBSD.ORG In-Reply-To: <19980903013509.A12206@cons.org> from "Martin Cracauer" at Sep 3, 98 01:35:09 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 > > It is easy to implement a data-content dependent example of a > > library that fails the LGPL relink clause because of this. > > > > Techinically, one need only increase the size of a statically > > initialized data area. > > Are you sure about this? The appended tarfile contains two > implementations of a shared library, one with more statically > initialized data and some variables in different order, besides > different initial values for all variables. I meant "non-statically"; sorry. Please see sited references from DejaNews... char x[ 4]; char foo[ 4]; /* 4 vs. 16 */ char y[ 4]; initme() { x[ 0] = '0'; y[ 3] = '3'; y[ 0] = '0'; y[ 3] = '3'; strncpy( foo, "XXXXXXXXXXXXXXXX", sizeof(foo)-1); foo[ sizeof(foo)-1] = 0; } > On FreeBSD-2.2.7-stable and Linux (Debian-1.3) this gives correct > results. I have not been able to reproduce a case where data from the > library I linked against is used instead of data from the .so file > that happens to be in place when the program runs. See the 'make run' > target. See "__error undefined" and "sys_errlist[]: conflicting type for decl". You need to create cases that are not resolved at runtime (like sizeof(), above). 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