2011-07 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2011-07-31 (日)

Lion で Emacs-23.3 をソースからビルド出来ない件を解決できた [Emacs][OSX]

Lion にバージョンアップしたら [2011-03-10-1] の方法でビルド出来なく
なってしまいました。

Macports とか Homebrew の情報はあったのですが、「ソースからビルド」
の情報は見つけられなかったので、ここにまとめます。



パッチは 3 つ必要でした。
1. patch-no-pie.diff
2. patch-src_unexmacosx.c.diff
3. patch-fix-title-bar.diff

1 と 2 がビルドを通すために必要です。パッチを当てないとこんなエラー
ログを吐いてビルドに失敗します。

Dumping under the name emacs
unexec: unrecognized section name in __DATA segment
--- List of All Regions ---
   address size prot maxp
--- List of Regions to be Dumped ---
   address size prot maxp
--- Header Information ---
Magic = 0xfeedfacf
CPUType = 16777223
CPUSubType = -2147483645
FileType = 0x2
NCmds = 20
SizeOfCmds = 3464
Flags = 0x00200085
Highest address of load commands in input file: 0x5f4000
Lowest offset of all sections in __TEXT segment: 0x14b0
--- List of Load Commands in Input File ---
# cmd cmdsize name address size
0 LC_SEGMENT_64 72 __PAGEZERO 0 0x100000000
1 LC_SEGMENT_64 712 __TEXT 0x100000000 0x1d3000
                           __text 0x1000014b0 0x18e9aa
                           __stubs 0x10018fe5a 0x61e
                           __stub_helper 0x100190478 0xa44
                           __const 0x100190ec0 0x9b4
                           __cstring 0x100191878 0x17266
                           __gcc_except_tab 0x1001a8ae0 0x40
                           __unwind_info 0x1001a8b20 0x1d98
                           __eh_frame 0x1001aa8b8 0x28740
2 LC_SEGMENT_64 1512 __DATA 0x1001d3000 0x367000
                           __program_vars 0x1001d3000 0x28
                           __nl_symbol_ptr 0x1001d3028 0x10
                           __got 0x1001d3038 0x1a0
                           __la_symbol_ptr 0x1001d31d8 0x828
                           __objc_classlist 0x1001d3a00 0x70
                           __objc_protolist 0x1001d3a70 0x10
                           __objc_imageinfo 0x1001d3a80 0x8
                           __objc_const 0x1001d3a88 0x21d0
                           __objc_selrefs 0x1001d5c58 0xe38
                           __objc_msgrefs 0x1001d6a90 0xf0
                           __objc_classrefs 0x1001d6b80 0x1f0
                           __objc_superrefs 0x1001d6d70 0x60
                           __objc_data 0x1001d6dd0 0x460
                           __data 0x1001d7240 0x2f5f18
                           __const 0x1004cd160 0x2020
                           __cfstring 0x1004cf180 0x640
                           __bss 0x1004cf7c0 0x59518
                           __common 0x100528ce0 0x10959
3 LC_SEGMENT_64 72 __LINKEDIT 0x10053a000 0xba000
4 LC_DYLD_INFO_ONLY 48
5 LC_SYMTAB 24
6 LC_DYSYMTAB 80
7 LC_LOAD_DYLINKER 32
8 LC_UUID 24
9 unknown 16
10 LC_UNIXTHREAD 184
11 LC_LOAD_DYLIB 88
12 LC_LOAD_DYLIB 56
13 LC_LOAD_DYLIB 56
14 LC_LOAD_DYLIB 56
15 LC_LOAD_DYLIB 104
16 LC_LOAD_DYLIB 104
17 LC_LOAD_DYLIB 112
18 LC_LOAD_DYLIB 96
19 unknown 16
0x7fa2024fc080 (sz: 0x3f2d/ 0x3f30)
0x7fa202400000 (sz: 0xfc07f/ 0xfc080)
0x7fa2026fc080 (sz: 0x3f2c/ 0x3f30)
0x7fa202600000 (sz: 0xfc07f/ 0xfc080)
0x7fa2038fc080 (sz: 0x3f2d/ 0x3f30)
0x7fa203800000 (sz: 0xfc060/ 0xfc080)
0x7fa2025fc080 (sz: 0x3f2c/ 0x3f30)
0x7fa202500000 (sz: 0xfc07e/ 0xfc080)
0x7fa203cfc080 (sz: 0x3f2c/ 0x3f30)
0x7fa203c00000 (sz: 0x639f/ 0xfc080)
0x7fa204ff8000 (sz: 0x138/ 0x7fa8)
0x7fa204800000 (sz: 0x10dbe/0x7f8000)
0x7fa2037f8000 (sz: 0x728a/ 0x7fa8)
0x7fa203000000 (sz: 0x725fff/0x7f8000)
0x1093f1000 (sz: 0/ 0x1000)
--- Load Commands written to Output File ---
Writing segment __PAGEZERO @ 0 ( 0/0x100000000 @ 0)
Writing segment __TEXT @ 0 (0x1d3000/0x1d3000 @ 0x100000000)
Writing segment __DATA @ 0x1d3000 (0x367000/0x367000 @ 0x1001d3000)
        section __program_vars at 0x1d3000 - 0x1d3028 (sz: 0x28)
        section __nl_symbol_ptr at 0x1d3028 - 0x1d3038 (sz: 0x10)
make[1]: *** [bootstrap-emacs] Error 1
make: *** [src] Error 2


3 を当てなくてもビルドは通りますが、下の図のようにタイトルバーが消
えるので、サイズ変更や移動が出来なくなります。実質使えませんね。
画像

必要なパッチが揃ったら、あとは簡単です。[2011-03-10-1] のビルド手順
を Lion 対応版にしたものが以下になります。

% wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3.tar.bz2
% tar xjf emacs-23.3.tar.bz2
% cd emacs-23.3
% patch -p0 < ../patch-no-pie.diff
% patch -p1 < ../patch-src_unexmacosx.c.diff
% patch -p0 < ../patch-fix-title-bar.diff
% mkdir ../work; cd ../work
% ../emacs-23.3/configure --with-ns --without-x 2>&1 | tee ../emacs-23.3_configure.log
% cp config.log ../emacs-23.3_config.log
% make 2>&1 | tee ../emacs-23.3_make.log
% make GZIP_PROG="" install 2>&1 | tee ../emacs-23.3_make-install.log
% cp -r nextstep/Emacs.app /Applications/Emacs-23.3.app


※1 patch-fix-title-bar.diff のパッチ当ては失敗すると思いますが、
    src/Changelog なので無視して良いです。
※2 $CC, $CFLAGS, $LDFLAGS は設定する必要はありません。
※3 使用した gcc は /usr/bin/gcc です。私は /Developer/usr/bin に
    パスを通していません。どんな時に必要なんでしょう?

参考情報:
#30268 (emacs-app @23.3 fails to build on Lion ("unexec: cannot write section __data")) – MacPorts
Library/Formula/emacs.rb at master from mxcl/homebrew - GitHub

追記(2011-08-01):
よく落ちるので Homebrew の Emacs を使うことにしました。何かパッ
チが足りないのかも。。。↓こちらをご参考下さい。
[brew][lion] OS X Lionにhomebrewでemacsとかをインストール - SOSOG
Homebrew の使い方は [2011-07-26-1] にまとめています。

2011-07 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

最終更新時間: 2018-08-11 16:04

検索


最近の話題
- 2018-07-31
  Ruby でライブラリがシステムに存在しているかどうかをチェックする
- 2018-06-30
  エニタイムフィットネスに通うことにした
- 2018-05-26
  Rails4 と Rails5 とでの eager_load_paths の違い
  Ruby で FTPS 接続する方法
- 2018-04-30
  AirMac Extreme から Buffalo のルータに変えたらインターネット速度が 45 倍以上になった
- 2018-03-23
  Twitter クライアントを Tweetbot に変えた
- 2018-03-19
  『ジョイ・インク 役職も部署もない全員主役のマネジメント』を読んだ
- 2018-03-11
  JAWS DAYS 2018 に行ってきた #jawsdays #jawsdays2018
最近追記された記事
- 2017-10-21-1 (224日前)
- 2017-01-10-1 (252日前)
- 2017-04-08-1 (272日前)
- 2017-06-02-1 (406日前)
- 2017-04-29-1 (468日前)
- 2017-04-13-1 (482日前)
- 2017-04-13-1 (484日前)
- 2017-03-02-1 (526日前)
- 2017-02-25-1 (531日前)
- 2017-02-21-1 (535日前)
カテゴリ
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (21)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (3)
- Book (93)
- Boxen (2)
- Bugsnag (1)
- capistrano (4)
- chalow (56)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (10)
- clang (26)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (3)
- E-mail (8)
- elasticsearch (4)
- Emacs (222)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (20)
- Fluentd (4)
- ftp (2)
- Game (20)
- GCP (1)
- Gem (5)
- Git (9)
- GitHub (20)
- golang (10)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (4)
- Heroku (9)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iPhone (16)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Kubernetes (2)
- Langrich (7)
- LDAP (6)
- Life (21)
- Linux (6)
- Mackerel (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (2)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (13)
- Rake (2)
- RaspberryPi (2)
- RedHat (29)
- Redmine (3)
- RSpec (2)
- Ruby (52)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (2)
- Solaris9 (22)
- Spring (2)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Twitter (15)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (25)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (16)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
Google+