[net.emacs] Including the "-n" ld option on BSD 4.2

ehrlich@psuvax1.bitnet (10/24/86)

From: ehrlich@psuvax1.bitnet


        Is there a reason why temacs is not loaded with the "-n"
        flag on BSD 4.2 systems?  It would seem to be a reasonable thing
        to do and the manual page does not indicate that "-n" is a
        default option.

--Daniel Ehrlich
===============================================================================
CSNET:    ehrlich@penn-state.csnet      USPS: The Pennsylvania State University
INTERNET: ehrlich@psuvax1.psu.edu             Department of Computer Science
UUCP:     ...!ihnp4!psuvax1!ehrlich           334B Whitmore Laboratory
BITNET:   ehrlich@psuvax1.bitnet              University Park, PA   16802
                                        BELL: (814) 863-1142
"The sky is blue so we know where to stop mowing."  Judge Harold T. Stone
===============================================================================

guy@sun.uucp (Guy Harris) (10/24/86)

>         Is there a reason why temacs is not loaded with the "-n"
>         flag on BSD 4.2 systems?  It would seem to be a reasonable thing
>         to do

Yes, there is a reason, namely that it is *not* a reasonable thing to do.
Loading with the "-n" flag builds an executable image that must be loaded
*all at once* when you "exec" it; both the Gosling/Unipress and GNU forms of
EMACS are BMF programs, and you may not want to load lots of pages of code
that you aren't going to use now or that you aren't going to use ever.

>	and the manual page does not indicate that "-n" is a default option.

To be precise, the manual page indicates that "-z" is the default option,
not "-n" (and definitely not "build an image with no shared text
whatsoever", as you were probably assuming).  "-z" "Arrange(s) for the
process to be loaded on demand from the resulting executable file (413
format) rather than preloaded."  This means that when the process takes a
page fault, if the page has not already been loaded and placed on the swap
device, it is loaded from the executable file.  You don't read in any code
unless you use it.
-- 
	Guy Harris
	{ihnp4, decvax, seismo, decwrl, ...}!sun!guy
	guy@sun.com (or guy@sun.arpa)

chris@umcp-cs.UUCP (Chris Torek) (10/29/86)

In article <3574@mit-eddie.MIT.EDU> ehrlich@psuvax1.bitnet writes:
>Is there a reason why temacs is not loaded with the "-n" flag on
>BSD 4.2 systems? It would seem to be a reasonable thing to do and
>the manual page does not indicate that "-n" is a default option.

Yes: it is not really all that reasonable.  The 4.2 ld default is
`-z': demand paged.  `-n' makes the text shared, but not demand
paged.  Instead, on startup, the entire text is copied in to memory.
If Emacs were to touch all its pages on startup, that would be
sensible, but both Gnu and locally-hacked-Unipress touch only about
half their pages.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
UUCP:	seismo!umcp-cs!chris
CSNet:	chris@umcp-cs		ARPA:	chris@mimsy.umd.edu