[m-dev.] Other things to do before the release.

Tyson Dowd trd at cs.mu.OZ.AU
Sat Sep 12 16:49:44 AEST 1998


On 12-Sep-1998, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> On 10-Sep-1998, Tyson Dowd <trd at cs.mu.OZ.AU> wrote:
> > - Move the following executables into a lib/bin directory so they
> >   are not in the user's path:
> > 	mercury_update_interface mint mkfifo_using_mknod mkinit 
> >   (possibly more or less, this list was taken from 0.7.3).
> 
> `mint' should not be moved; it was intended for use by users.
> It could be deleted, I suppose.

If intended to be used by users, it needs a man page.

> 
> Anyway, moving all these is an issue of very very very minor importance;
> I don't think it is worth worrying about for this release.

It is not release critical.  It is still a bug in the release.

> 
> > - Possibly support use without -rpath shared libraries (install
> >   libraries to /usr/lib and call ldconfig).
> 
> What's the advantage of this?
> 
> There are certainly disadvantages, e.g. installation would require
> root permissions.

No it wouldn't, you can always set LD_LIBRAY_PATH.
I didn't say *force* use of ldconfig, just support use of it.

Advantages:
	- installation can be moved without breaking existing dynamically
	  linked binaries
	  (that is, you can re-install Mercury into a different --prefix
	  and your old binaries will still be able to work).

	- dynamically linked binaries can be distributed and will still
	  work (try running a dynamically linked binary made on
	  hydra with a machine that has mercury installed somewhere
	  *other* than
	  /home/mercury/public/mercury-latest/i686-pc-linux-gnu).

-rpath is a hack, and a pretty brittle one at that.  Really we should
be doing things the right way, and considering providing -rpath as
an alternative for those that don't have root permissions.

> 
> > - Consider changing Linux default to using shared libraries.
> 
> This is worth considering. If it were easy, it might be worth doing too ;-)
> I may be wrong, but I don't think it will be easy.

	- Generate libraries same as usual.
	- Generate all code as PIC unless specified by user.
	- --no-pic or something needs to be given as a MGNUCFLAG
	  to turn this off.
	- Use static linking if --static is defined, otherwise use
	  shared linking.

The picreg part of the grades would stop people accidently linking
non-PIC code with PIC libraries (at least for Mercury code).

Have I forgotten something?  Perhaps we should dig up the archives
of last time we had this discussion.

-- 
Those who would give up essential liberty to purchase a little temporary
safety deserve neither liberty nor safety.     - Benjamin Franklin

Tyson Dowd   <tyson at tyse.net>   http://tyse.net



More information about the developers mailing list