From nobody Wed Jul 2 19:28:31 1997 X-From-Line: norm@connectware.ca Wed Jul 02 22:32:39 1997 Return-Path: Delivered-To: gord@profitpress.com Received: (qmail 5508 invoked from network); 2 Jul 1997 22:32:38 -0000 Received: from localhost (HELO bambam.m-tech.ab.ca) (127.0.0.1) by localhost with SMTP; 2 Jul 1997 22:32:38 -0000 X-POP3-Rcpt: gord@bambam Return-Path: norm@connectware.ca Received: from bunker.connectware.ca (norm.HIP.CAM.ORG [199.84.42.109]) by m-tech.ab.ca (8.6.12/8.6.9) with ESMTP id KAA07116 for ; Wed, 2 Jul 1997 10:12:18 -0600 Received: from castle.connectware.ca (castle.connectware.ca [204.19.223.2]) by bunker.connectware.ca (8.8.5/8.8.5) with SMTP id MAA02233 for ; Wed, 2 Jul 1997 12:15:54 -0400 (EDT) Received: by castle.connectware.ca (AIX 3.2/UCB 5.64/4.03) id AA21851; Wed, 2 Jul 1997 12:08:56 -0400 Date: Wed, 2 Jul 1997 12:08:53 -0400 (EDT) From: Normand McGuire To: Gordon Matzigkeit Subject: Re: -lc_s shared libraries In-Reply-To: <86yb7qipsd.fsf_-_@trick.profitpress.com> Message-Id: Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Xref: trick.profitpress.com mail.libtool:299 Lines: 113 X-Gnus-Article-Number: 1 Mon Nov 2 17:19:44 1998 On 1 Jul 1997, Gordon Matzigkeit wrote: > Are you sure that on SCO Openserver 5 you need to specify > /lib/libc.so? From what I understood about that platform, specifying > `-lc' (which is what the C compiler does by default) is good enough, > and links in the shared version if it exists. >From my experience, definitely. Look below. > Do you know otherwise? Can you show the results of specific tests to > me that would prove your point? Here is a sample of a session demonstrating this on my system. I show the source code, default cc file and three compiles with three a.out file sizes. See for yourself: Script started on Wed Jul 2 11:21:58 1997 $ cat t.c main() { printf("Hello, world\n"); } $ cat /etc/default/cc # @(#) cc.default 20.1 94/12/04 # # Copyright (C) The Santa Cruz Operation, Inc. 1994-1995. # This Module contains Proprietary Information of # The Santa Cruz Operation, and should be treated as Confidential. # # Core development /bin/cc reads /etc/default/cc. # Cross development /usr/ods30/bin/cc reads /etc/default/crossdevcc. # If a prefix is specified, cc reads /etc/default/cc instead. # FLAGS= LIBS= $ cc t.c $ l a.out -rwxrwxr-x 1 root sys 46334 Jul 2 11:22 a.out $ cc t.c -lc $ l a.out -rwxrwxr-x 1 root sys 46334 Jul 2 11:22 a.out $ cc t.c /lib/libc.so $ l a.out -rwxrwxr-x 1 root sys 3988 Jul 2 11:22 a.out $ exit script done on Wed Jul 2 11:22:32 1997 And believe me, this script session is not a fake. > The reason I'm asking is that I, too, would like to know how Autoconf > packages can best take advantage of shared libraries, especially in a > general, rather than a test-by-test way. The section of my configure.in script that takes care of shared libraries is short and not annoying to repeat. You may want to incorporate it into the AC_PROG_CC macro or create a new one for it. So far, I've seen only two kinds of behaviors regarding shared libraries: if they are not used automatically when invoking cc, just include them when linking the program. And it worked so far. However, you guys may have a whole lot more flavors of system to run on compared to me. Here is the portion of the shared library check in my configure.in script: # STEP 2 - Check for libraries AC_MSG_CHECKING([for libc.so]) if test -r /lib/libc.so; then AC_MSG_RESULT([yes (/lib/libc.so)]) LIBS="$LIBS /lib/libc.so" elif test -r /usr/lib/libc.so; then AC_MSG_RESULT([yes (/usr/lib/libc.so)]) LIBS="$LIBS /usr/lib/libc.so" else AC_MSG_RESULT(no) AC_CHECK_LIB(c_s, main) fi > Could you be more specific when you mention `some other System V Unix > systems'? What are their canonical system names (i.e. *-*-sco3.2v4*)? By 'some other Unix systems' requiring that you explicitely specify the shared library name when linking the program, I meant specifically: o Bull Open Software (Unix System V Release 4, but don't remember if it is x86) o Interactive Unix System V/386 all versions o SCO Unix 3.2v4 and SCO OpenServer 5 o Sun Solaris 2.3 / SunOS 5.3 All others that we've compiled and run on will automatically use shared libraries when available, namely: IBM's AIX 3.2.* and 4.* HP's HPUX 8.*, 9.* and 10.* DEC Ultrix, OSF/1 and DEC Unix all versions tried DataGeneral's DGUX all versions tried Sequent's DYNIX/ptx 2.1 and 4 Linux all versions tried SGI's Irix all versions tried NCR and AT&T Unix System V/386 Release 4 Sun Solaris 2.4 (SunOS 5.4) and Solaris 2.5 (SunOS 5.5) SunOS 4.1* Unisys Unix System V/386 Unixware all versions Normand McGuire