editors/emacs24: Fix DragonFly build
In order to fix the build on DragonFly, the locations of the crt files had to be defined. This was tricky as DragonFly has two base compilers so gcc --print-libgcc-file-name was used to determine the path of the crt files. Also patch-iisp_files.el was removed. It was removed from distinfo 5 weeks ago, but the patch itself was left in place causing "patch ignored" warnings.
This commit is contained in:
parent
e579208516
commit
88dacf4cf9
5 changed files with 100 additions and 52 deletions
|
@ -1,9 +1,9 @@
|
|||
$NetBSD: distinfo,v 1.5 2012/08/28 00:55:52 mef Exp $
|
||||
$NetBSD: distinfo,v 1.6 2012/10/03 21:32:42 marino Exp $
|
||||
|
||||
SHA1 (emacs-24.2.tar.gz) = 5fc4fe7797f821f2021ac415a81f5f190c52c0b2
|
||||
RMD160 (emacs-24.2.tar.gz) = 26f6c2b671ed7f160875d62e47c89afec085110f
|
||||
Size (emacs-24.2.tar.gz) = 51471017 bytes
|
||||
SHA1 (patch-aa) = dc41270debcdeba46056590ff99e72e79bd04729
|
||||
SHA1 (patch-ab) = 3021afead5011aa864a2734eeb72136c36580fb2
|
||||
SHA1 (patch-ad) = adc347ccd6edeb6e7ad96eeb98d6ee64176fb143
|
||||
SHA1 (patch-aa) = e8e2e174a87c6d052af3fde2907f29f76d3554bd
|
||||
SHA1 (patch-ab) = ca3fb1ee6652f6a33758bc07cf93a7eeff2afcd2
|
||||
SHA1 (patch-ad) = 2dcb0f4b43c599d0c4af83b5f7e1f2797f96bdac
|
||||
SHA1 (patch-ag) = 3e6ee4774189185af10eada9c935120491318313
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
$NetBSD: patch-aa,v 1.2 2012/08/10 10:08:14 marino Exp $
|
||||
$NetBSD: patch-aa,v 1.3 2012/10/03 21:32:42 marino Exp $
|
||||
|
||||
Add DragonFly
|
||||
|
||||
--- configure.in.orig 2012-06-01 06:17:13.000000000 +0000
|
||||
--- configure.in.orig 2012-08-23 05:33:42.000000000 +0000
|
||||
+++ configure.in
|
||||
@@ -469,6 +469,14 @@ case "${canonical}" in
|
||||
vax-*) machine=vax ;;
|
||||
|
@ -19,13 +19,44 @@ Add DragonFly
|
|||
|
||||
## OpenBSD ports
|
||||
*-*-openbsd* )
|
||||
@@ -998,6 +1006,9 @@ case $opsys in
|
||||
@@ -999,6 +1007,11 @@ case $opsys in
|
||||
LIB_MATH=
|
||||
START_FILES='pre-crt0.o'
|
||||
;;
|
||||
+ dragonfly )
|
||||
+ LIB_STANDARD=-lc
|
||||
+ # This base version is appended below
|
||||
+ LIB_STANDARD='-lc $(CRT_DIR)/crtn.o'
|
||||
+ START_FILES='$(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
|
||||
+ ;;
|
||||
freebsd )
|
||||
LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
|
||||
START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
|
||||
@@ -1095,6 +1108,28 @@ fi # crt_fi
|
||||
AC_SUBST(CRT_DIR)
|
||||
|
||||
case $opsys in
|
||||
+ dragonfly )
|
||||
+ if test "x${GCC}" = xyes ; then
|
||||
+ libgcc_file=`$CC --print-libgcc-file-name 2>/dev/null`
|
||||
+ case "$libgcc_file" in
|
||||
+ */*)
|
||||
+ crt_gcc_subdir=`AS_DIRNAME(["$libgcc_file"])`
|
||||
+ ;;
|
||||
+ *)
|
||||
+ AC_MSG_ERROR([Cannot determine CRT $CC subdirectory.])
|
||||
+ ;;
|
||||
+ esac
|
||||
+ for f in crtbegin.o crtend.o; do
|
||||
+ if test ! -f $crt_gcc_subdir/$f; then
|
||||
+ AC_MSG_ERROR([Required file not found: $f])
|
||||
+ fi
|
||||
+ done
|
||||
+ LIB_STANDARD="$crt_gcc_subdir/crtend.o $LIB_STANDARD"
|
||||
+ START_FILES="$START_FILES $crt_gcc_subdir/crtbegin.o"
|
||||
+ else
|
||||
+ AC_MSG_WARN([Correct CRT file list unknown for ${CC}.])
|
||||
+ fi
|
||||
+ ;;
|
||||
netbsd | openbsd )
|
||||
if test -f $CRT_DIR/crti.o; then
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
$NetBSD: patch-ab,v 1.2 2012/08/10 10:08:14 marino Exp $
|
||||
$NetBSD: patch-ab,v 1.3 2012/10/03 21:32:42 marino Exp $
|
||||
|
||||
Add DragonFly
|
||||
|
||||
--- configure.orig 2012-06-10 07:29:35.000000000 +0000
|
||||
--- configure.orig 2012-08-23 06:37:10.000000000 +0000
|
||||
+++ configure
|
||||
@@ -4476,6 +4476,15 @@ case "${canonical}" in
|
||||
esac
|
||||
|
@ -20,13 +20,67 @@ Add DragonFly
|
|||
## OpenBSD ports
|
||||
*-*-openbsd* )
|
||||
opsys=openbsd
|
||||
@@ -8088,6 +8097,9 @@ case $opsys in
|
||||
@@ -8095,6 +8104,11 @@ case $opsys in
|
||||
LIB_MATH=
|
||||
START_FILES='pre-crt0.o'
|
||||
;;
|
||||
+ dragonfly )
|
||||
+ LIB_STANDARD=-lc
|
||||
+ # This base version is appended below
|
||||
+ LIB_STANDARD='-lc $(CRT_DIR)/crtn.o'
|
||||
+ START_FILES='$(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
|
||||
+ ;;
|
||||
freebsd )
|
||||
LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
|
||||
START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
|
||||
@@ -8209,6 +8223,51 @@ fi # crt_fi
|
||||
|
||||
|
||||
case $opsys in
|
||||
+ dragonfly )
|
||||
+ if test "x${GCC}" = xyes ; then
|
||||
+ libgcc_file=`$CC --print-libgcc-file-name 2>/dev/null`
|
||||
+ case "$libgcc_file" in
|
||||
+ */*)
|
||||
+ crt_gcc_subdir=`$as_dirname -- "$libgcc_file" ||
|
||||
+$as_expr X"$libgcc_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
+ X"$libgcc_file" : 'X\(//\)[^/]' \| \
|
||||
+ X"$libgcc_file" : 'X\(//\)$' \| \
|
||||
+ X"$libgcc_file" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
+$as_echo X"$libgcc_file" |
|
||||
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
+ s//\1/
|
||||
+ q
|
||||
+ }
|
||||
+ /^X\(\/\/\)[^/].*/{
|
||||
+ s//\1/
|
||||
+ q
|
||||
+ }
|
||||
+ /^X\(\/\/\)$/{
|
||||
+ s//\1/
|
||||
+ q
|
||||
+ }
|
||||
+ /^X\(\/\).*/{
|
||||
+ s//\1/
|
||||
+ q
|
||||
+ }
|
||||
+ s/.*/./; q'`
|
||||
+ ;;
|
||||
+ *)
|
||||
+ as_fn_error $? "Cannot determine CRT $CC subdirectory." "$LINENO" 5
|
||||
+ ;;
|
||||
+ esac
|
||||
+ for f in crtbegin.o crtend.o; do
|
||||
+ if test ! -f $crt_gcc_subdir/$f; then
|
||||
+ as_fn_error $? "Required file not found: $f" "$LINENO" 5
|
||||
+ fi
|
||||
+ done
|
||||
+ LIB_STANDARD="$crt_gcc_subdir/crtend.o $LIB_STANDARD"
|
||||
+ START_FILES="$START_FILES $crt_gcc_subdir/crtbegin.o"
|
||||
+ else
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Correct CRT file list unknown for ${CC}." >&5
|
||||
+$as_echo "$as_me: WARNING: Correct CRT file list unknown for ${CC}." >&2;}
|
||||
+ fi
|
||||
+ ;;
|
||||
netbsd | openbsd )
|
||||
if test -f $CRT_DIR/crti.o; then
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
$NetBSD: patch-ad,v 1.1 2012/06/16 21:03:42 dholland Exp $
|
||||
$NetBSD: patch-ad,v 1.2 2012/10/03 21:32:42 marino Exp $
|
||||
|
||||
This will sometimes help to avoid Segmentation Fault at
|
||||
build time
|
||||
|
||||
--- lisp/cus-dep.el.orig 2010-04-03 22:26:07.000000000 +0000
|
||||
--- lisp/cus-dep.el.orig 2012-08-23 05:33:42.000000000 +0000
|
||||
+++ lisp/cus-dep.el
|
||||
@@ -59,6 +59,7 @@ Usage: emacs -batch -l ./cus-dep.el -f c
|
||||
@@ -62,6 +62,7 @@ Usage: emacs -batch -l ./cus-dep.el -f c
|
||||
(unless (or (string-match custom-dependencies-no-scan-regexp file)
|
||||
(string-match preloaded file)
|
||||
(not (file-exists-p file)))
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
$NetBSD: patch-lisp_files.el,v 1.1 2012/08/13 06:39:06 wiz Exp $
|
||||
|
||||
CVE-2012-3479:
|
||||
When the Emacs user option `enable-local-variables' is set to `:safe'
|
||||
(the default value is t), Emacs should automatically refuse to evaluate
|
||||
`eval' forms in file-local variable sections. Due to the bug, Emacs
|
||||
instead automatically evaluates such `eval' forms. Thus, if the user
|
||||
changes the value of `enable-local-variables' to `:safe', visiting a
|
||||
malicious file can cause automatic execution of arbitrary Emacs Lisp
|
||||
code with the permissions of the user.
|
||||
|
||||
Bug tracker ref: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12155
|
||||
|
||||
--- lisp/files.el.orig 2012-05-14 12:00:02.000000000 +0000
|
||||
+++ lisp/files.el
|
||||
@@ -3107,11 +3107,16 @@ DIR-NAME is the name of the associated d
|
||||
;; Obey `enable-local-eval'.
|
||||
((eq var 'eval)
|
||||
(when enable-local-eval
|
||||
- (push elt all-vars)
|
||||
- (or (eq enable-local-eval t)
|
||||
- (hack-one-local-variable-eval-safep (eval (quote val)))
|
||||
- (safe-local-variable-p var val)
|
||||
- (push elt unsafe-vars))))
|
||||
+ (let ((safe (or (hack-one-local-variable-eval-safep
|
||||
+ (eval (quote val)))
|
||||
+ ;; In case previously marked safe (bug#5636).
|
||||
+ (safe-local-variable-p var val))))
|
||||
+ ;; If not safe and e-l-v = :safe, ignore totally.
|
||||
+ (when (or safe (not (eq enable-local-variables :safe)))
|
||||
+ (push elt all-vars)
|
||||
+ (or (eq enable-local-eval t)
|
||||
+ safe
|
||||
+ (push elt unsafe-vars))))))
|
||||
;; Ignore duplicates (except `mode') in the present list.
|
||||
((and (assq var all-vars) (not (eq var 'mode))) nil)
|
||||
;; Accept known-safe variables.
|
Loading…
Reference in a new issue