WindowsのBash(WinBash?Win-Bash?)でemacs-24.4をコンパイルしようとしていますが、 。 (./configureをが正常に動作します)WindowsのBash - Emacsのビルドに失敗しました:メモリ保護が有効になっています
私は '作る' の後を得るエラーは次のとおりです。などで
Dumping under the name emacs
**************************************************
Warning: Your system has a gap between BSS and the
heap (25164600 bytes). This usually means that exec-shield
or something similar is in effect. The dump may
fail because of this. See the section about
exec-shield in etc/PROBLEMS for more information.
**************************************************
/bin/bash: line 7: 6853 Segmentation fault (core dumped) ./temacs --batch --load loadup bootstrap
make[1]: *** [bootstrap-emacs] Error 1
make[1]: Leaving directory `/home/tdwyer/bin/emacs-24.5_linux_build/src'
make: *** [src] Error 2
/課題提出、関連セクションが得られます。当然
*** Segfault during `make bootstrap' under the Linux kernel.
In Red Hat Linux kernels, "Exec-shield" functionality is enabled by
default, which creates a different memory layout that can break the
emacs dumper. Emacs tries to handle this at build time, but if this
fails, the following instructions may be useful.
Exec-shield is enabled on your system if
cat /proc/sys/kernel/exec-shield
prints a value other than 0. (Please read your system documentation
for more details on Exec-shield and associated commands.)
Additionally, Linux kernel versions since 2.6.12 randomize the virtual
address space of a process by default. If this feature is enabled on
your system, then
cat /proc/sys/kernel/randomize_va_space
prints a value other than 0.
When these features are enabled, building Emacs may segfault during
the execution of this command:
./temacs --batch --load loadup [dump|bootstrap]
To work around this problem, you can temporarily disable these
features while building Emacs. You can do so using the following
commands (as root). Remember to re-enable them when you are done,
by echoing the original values back to the files.
echo 0 > /proc/sys/kernel/exec-shield
echo 0 > /proc/sys/kernel/randomize_va_space
Or, on x86, you can try using the `setarch' command when running
temacs, like this:
setarch i386 -R ./temacs --batch --load loadup [dump|bootstrap]
or
setarch i386 -R make
(The -R option disables address space randomization.)
そして、 、私はそれが有効になっているかどうかを確認します。..それがある場合:
$ cat /proc/sys/kernel/randomize_va_space
2
しかし残念ながら、私は(たとえ実行中のbashそれを無効にしよう)管理者として、それは失敗します。さらに
$ sudo echo 0 > /proc/sys/kernel/randomize_va_space
bash: /proc/sys/kernel/randomize_va_space: Permission denied
を、Setarchでは使用して動作しません:
setarch x86_84 -R make
提案?
それがうまくいった!私は以前に「ティー」コマンドを使用していませんでした。ありがとう! – tdwyer