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:
marino 2012-10-03 21:32:42 +00:00
parent e579208516
commit 88dacf4cf9
5 changed files with 100 additions and 52 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)))

View 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.