summaryrefslogtreecommitdiff
path: root/mail/libc_s
blob: f28ff12157b66b62990f88a22ae76edf80b71404 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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