From owner-freebsd-hackers Mon Feb 26 14:27:09 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id OAA22610 for hackers-outgoing; Mon, 26 Feb 1996 14:27:09 -0800 (PST) Received: from silvia.HIP.Berkeley.EDU (silvia.HIP.Berkeley.EDU [136.152.64.181]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id OAA22600 for ; Mon, 26 Feb 1996 14:27:05 -0800 (PST) Received: (from asami@localhost) by silvia.HIP.Berkeley.EDU (8.7.4/8.6.9) id OAA13291; Mon, 26 Feb 1996 14:26:32 -0800 (PST) Date: Mon, 26 Feb 1996 14:26:32 -0800 (PST) Message-Id: <199602262226.OAA13291@silvia.HIP.Berkeley.EDU> To: thorpej@nas.nasa.gov CC: freebsd-hackers@freebsd.org In-reply-to: <199602262140.NAA05885@lestat.nas.nasa.gov> (message from Jason Thorpe on Mon, 26 Feb 1996 13:40:31 -0800) Subject: Re: cvs commit: src/gnu/usr.bin/ld/ldconfig ldconfig.c From: asami@cs.berkeley.edu (Satoshi Asami) Sender: owner-hackers@freebsd.org Precedence: bulk * One could argue that you could add Yet Another Option Flag to ld(1) * separate from -l to specify the major number of the lib. Looking at * NetBSD's ld(1) manual page, it looks like -m is free, and somewhat * intuitive. The problem is that "minor" also starts with "m".... :> * Alternatively, you could take it a step further and use -V * (not -v, in case someone thinks that means "make the linker verbose" :-) * to trigger "library version". "-V" is already taken in FreeBSD (and according to the man page, it's taken in NetBSD too). -V version Put the given version number into the output shared library (if one is created). Useful to make shared libaries compatible with other operating systems. Eg. SunOS 4.x libraries use version num- ber 3. Defaults to 8. Although I'm not exactly sure why we need this, I've only seen "-o libfoo.so.1.2" type of command lines, so maybe we can take it out. * I.e. some programs might want a featureset * found in a specific _minor_. The command like could be parsed such that * a -V affected the next -l, so you could do: * * ld -o foo foo.o -V 12.2 -lc -V 0.1 -lutil By the way, there should no need for specifying a minor version number, as the major version number would be bumped if there is a change that is backwards-incompatible. (At least that's the rule in FreeBSD -- added functions/bug fixes mean bump minor, deleted functions/changed functionality mean bump major.) Yes, we can still do it this way, I think it would have been much easier and intuitive if we could just append it to -l than adding a new (stateful) flag. * However, this begs the question of why ports (I'm assuming you mean 3rd * party software) that you compile from source "require different versions * of shared libraries". That seems ... rather broken. No, it's perfectly natural. There are tons and tons of software written for tcl-7.3/tk-3.6, and many of them would break if you link them with the newer versions. :) However, if you are talking about system (i.e., non-"ports") shared libraries, I agree, the porter should make the port use only the latest system library. Satoshi