libtool/mail/libc_s

141 lines
4.8 KiB
Plaintext
Raw Normal View History

1998-10-28 00:30:31 +08:00
From nobody Wed Jul 2 19:28:31 1997
X-From-Line: norm@connectware.ca Wed Jul 02 22:32:39 1997
Return-Path: <norm@connectware.ca>
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 <gord@m-tech.ab.ca>; 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 <gord@m-tech.ab.ca>; 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 <norm@connectware.ca>
To: Gordon Matzigkeit <gord@m-tech.ab.ca>
Subject: Re: -lc_s shared libraries
In-Reply-To: <86yb7qipsd.fsf_-_@trick.profitpress.com>
Message-Id: <Pine.A32.3.91.970702113816.24858A-100000@castle.connectware.ca>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Xref: trick.profitpress.com mail.libtool:299
Lines: 113
1998-11-03 03:30:15 +08:00
X-Gnus-Article-Number: 1 Mon Nov 2 17:19:44 1998
1998-10-28 00:30:31 +08:00
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/<prefix>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