Shawn Walker wrote:

The question then is whether or not there is any continued point in
setting the executable bit? I mean, why bother setting it if it's
unnecessary? On the chance that some ancient ye olde customer software
will break?

Not that it really matters, just curious :)

I trawled some old friends who had some history with the origins of
Solaris that goes back much further than my experience.  I had one
response:

   I think there were a variety of conversations over the years involving how
   MMUs were built, what should be in ABIs, and what might happen with program
   fragments (like, could you successfully exec() a .so file?) that led to
   using execute bits on the files.

   In the end, I think it just ended up being convention, but we had some
   notions about whether you could have an execute mapping from a file without
   and execute bit on it and some MMUs might not let the program-counter
   fetch from a location that was in a READ but not EXECUTE protected
   page.

But in the end it just seems to be a convention, one that could probably
be dropped with little or no effect.   We could start by relaxing ldd(1):

     ldd lists the path names of all shared objects that would be
     loaded  when  filename  is  loaded.  ldd  expects the shared
     objects that are being inspected to have execute permission.
     If  a  shared  object  does not have execute permission, ldd
     issues a warning before attempting to process the file.

However, I doubt whether anyone is going to sign up to remove all the
execute bits from shared objects in existing packages :-)

--

Rod.
_______________________________________________
opensolaris-code mailing list
[email protected]
https://opensolaris.org:444/mailman/listinfo/opensolaris-code

Reply via email to