mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-12-27 07:09:26 +08:00
141 lines
4.8 KiB
Plaintext
141 lines
4.8 KiB
Plaintext
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
|
|
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/<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
|
|
|