HP3000-L Archives

March 1995, Week 4

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Mike Paivinen <[log in to unmask]>
Reply To:
Mike Paivinen <[log in to unmask]>
Date:
Thu, 23 Mar 1995 23:37:26 GMT
Content-Type:
text/plain
Parts/Attachments:
text/plain (36 lines)
Ross Scroggs ([log in to unmask]) wrote:
: Now I've figured out why real Posix programs have to be linked with
: /lib/libc.a: alarm, kill, fork, umask, fcntl, fstat, pause, waitpid,
: mkfifo, pipe, dup2 ... are all unresolved otherwise.
 
: OK. So, where's /lib/libc.sl? Am I correct in my understanding that
: every Posix program can only be linked with a static copy of the library?
: This should do wonders for memory pressure. What am I/HP missing here?
 
: Thanks,
 
When we first implemented the POSIX library on 4.5, the shared globals
feature of the loader didn't exist, yet.  We had to find a way to pass the
errno global variable from the program file to the POSIX C functions in
XL.PUB.SYS.  We decided to do it by creating a "thin" RL for the POSIX C
functions.  These functions perform no real work except to pass some hidden
"global" variables to the POSIX C library in XL.PUB.SYS.  /lib/libc.a is
nothing more than a set of interface routines.  When a program is compiled
and linked with c89, /lib/libc.a is treated as an RL by the linkeditor.
Only those interface routines required by the program file are added from
the RL.
 
During the "shared globals" project, we discussed whether to restructure
the POSIX libraries and create a /lib/libc.sl.  At this time, we have
no plans to create a /lib/libc.sl.
 
Mike P.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mike Paivinen
[log in to unmask]
 
Hewlett-Packard
CSY - Mailstop 47UP
19447 Pruneridge Avenue
Cupertino, CA   95014

ATOM RSS1 RSS2