[12] in release-74

home help back first fref pref prev next nref lref last post

Re: X11R5 libraries

daemon@ATHENA.MIT.EDU (lwvanels@Athena.MIT.EDU)
Sat Apr 18 20:37:10 1992

From: lwvanels@Athena.MIT.EDU
Date: Sat, 18 Apr 92 20:36:45 -0400
To: John Carr <jfc@Athena.MIT.EDU>
Cc: release-74@Athena.MIT.EDU
In-Reply-To: [11]
Reply-To: lwvanels@mit.edu

I do not believe this is something we should do, for several reasons:

 - It is incompatable with the method we currently use.  We have been
   telling users for years that the way to select the version of the X
   libraries they are linking against by attaching the appropriate version
   of the locker.  Now, if they aren't using the Imake configuration files
   from the X11 locker, they will have to change how their linking is done.
   (I would guess many of the less sophisticated users are simply using
   regular makefiles, and are just using -lXwhatever).
 - In order to have the right thing happen when a user types "xmkmf" when
   the R5 locker is attached, /usr/athena/lib/X11/config will have to be
   removed from the srvd and turned into a symlink to the appropriate
   locker.  This is a user visible changes, since previously xmkmf would
   work without an X locker attached.
 - From a esthetic standpoint, it is yet another ugly, special purpose
   directory that will have to be maintained on all platforms until X11R5 is
   no longer supported.  It also commits us to building two versions of X
   for the release on all platforms, which is a non-trivial task.

Instead, I would propose that no program be linked against a shared library
that cannot be guaranteed to be there at runtime.  In other words, linking
the clients in the X11R5 locker against the shared libraries in the locker
is fine, but programs outside of the locker should be linked statically.
Additionally, the libraries pointed to by /usr/athena/libX* should be static
versions of the libraries.  This way, anyone against linking these libraries
by the advertized method will not have to worry about whether the locker is
attached when the program is run, and will always get the version of the X
libraries they asked for.

Programs that rely on functionality that is not in X11R4 and are outside of
the X11R5 locker would be larger because of this; however I do not believe
there are that many such programs.  If space is really at that much of a
premium for a given program, it can have a shell script wrapped around it to
make sure the proper locker is attached before the actual executable is run.

By doing this, naive users can continue to select the version of X as they
always have, and guarantee that the program will be able to run by the user
without any other conditions.  More advanced users who want to use shared
libraries can do the little extra work to allow them to do so.

	-Lucien

home help back first fref pref prev next nref lref last post