gnu: emacs: Do not keep references to the entries of the build-time $PATH.

This reduces the number of references of the output from 54 to 31,
removing references notably to gcc, expat, glib:bin, ld-wrapper-0,
texinfo, pkg-config, make, gawk, binutils, etc.

Reported by David Thompson.

* gnu/packages/patches/emacs-exec-path.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/emacs.scm (emacs)[source]: Use it.
This commit is contained in:
Ludovic Courtès 2015-04-13 23:09:06 +02:00
parent 8214b7fbea
commit 1bef37ee2e
3 changed files with 21 additions and 1 deletions

View file

@ -0,0 +1,18 @@
Do not capture the build-time value of $PATH in the 'emacs' executable
since this can noticeably increase the size of the closure of Emacs
with things like GCC being referenced.
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -64,6 +64,11 @@
(expand-file-name "textmodes" dir)
(expand-file-name "vc" dir)))))
+;; Reset 'exec-path' so we don't capture the build-time $PATH in the
+;; 'emacs' executable.
+(setq-default exec-path nil)
+(setq exec-path nil)
+
(if (eq t purify-flag)
;; Hash consing saved around 11% of pure space in my tests.
(setq purify-flag (make-hash-table :test 'equal :size 70000)))