Skip to content

Instantly share code, notes, and snippets.

@nephics
Created November 23, 2011 07:24
Show Gist options
  • Save nephics/1388096 to your computer and use it in GitHub Desktop.
Save nephics/1388096 to your computer and use it in GitHub Desktop.
Homebrew install failure of luajit on OS X Lion
mba:~ jacob$ brew install -v luajit
==> Downloading http://luajit.org/download/LuaJIT-2.0.0-beta8.tar.gz
/usr/bin/curl -f#LA Homebrew 0.8 (Ruby 1.8.7-249; Mac OS X 10.7.2) http://luajit.org/download/LuaJIT-2.0.0-beta8.tar.gz -o /Users/jacob/Library/Caches/Homebrew/luajit-2.0.0-beta8.tar.gz
######################################################################## 100.0%
/usr/bin/tar xf /Users/jacob/Library/Caches/Homebrew/luajit-2.0.0-beta8.tar.gz
==> Downloading patches
/usr/bin/curl -f#LA Homebrew 0.8 (Ruby 1.8.7-249; Mac OS X 10.7.2) http://luajit.org/download/beta8_hotfix1.patch -o 001-homebrew.diff
######################################################################## 100.0%
==> Patching
/usr/bin/patch -f -p1 -i 001-homebrew.diff
patching file src/lj_snap.c
patching file src/buildvm_asm.c
patching file src/lj_asm.c
patching file src/lj_ircall.h
patching file src/lj_err.c
==> make PREFIX=/usr/local/Cellar/luajit/2.0.0-beta8 TARGET_CC=/usr/bin/llvm-gcc amalg
make PREFIX=/usr/local/Cellar/luajit/2.0.0-beta8 TARGET_CC=/usr/bin/llvm-gcc amalg
Building LuaJIT 2.0.0-beta8
make -C src amalg
+--------------------------------------------------------------------------+
| WARNING: Compiling the amalgamation needs a lot of virtual memory |
| (around 200 MB with GCC 4.x)! If you don't have enough physical memory |
| your machine will start swapping to disk and the compile will not finish |
| within a reasonable amount of time. |
| So either compile on a bigger machine or use the non-amalgamated build. |
+--------------------------------------------------------------------------+
make all "LJCORE_O=ljamalg.o"
HOSTCC buildvm.o
HOSTCC buildvm_asm.o
HOSTCC buildvm_peobj.o
HOSTCC buildvm_lib.o
HOSTCC buildvm_fold.o
CC luajit.o
HOSTLINK buildvm
BUILDVM lj_ffdef.h
BUILDVM lj_vm.s
BUILDVM lj_bcdef.h
BUILDVM lj_folddef.h
BUILDVM lj_recdef.h
BUILDVM lj_libdef.h
BUILDVM ../lib/vmdef.lua
ASM lj_vm.o
CC ljamalg.o
In file included from ljamalg.c:32:
lj_err.c:200: error: expected declaration specifiers or ‘...’ before ‘_Unwind_Exception_Class’
lj_err.c: In function ‘lj_err_unwind_dwarf’:
lj_err.c:207: error: ‘uexclass’ undeclared (first use in this function)
lj_err.c:207: error: (Each undeclared identifier is reported only once
lj_err.c:207: error: for each function it appears in.)
lj_err.c:235: error: ‘_Unwind_Ptr’ undeclared (first use in this function)
lj_err.c:246: error: expected ‘)’ before ‘lj_vm_unwind_rethrow’
lj_err.c: In function ‘err_raise_ext’:
lj_err.c:271: error: ‘_Unwind_Exception_Class’ undeclared (first use in this function)
make[2]: *** [ljamalg.o] Error 1
make[1]: *** [amalg] Error 2
make: *** [amalg] Error 2
==> Exit Status: 2
http://github.com/mxcl/homebrew/blob/master/Library/Formula/luajit.rb#L34
==> Environment
HOMEBREW_VERSION: 0.8
HEAD: 98cd2dd3a71a2009771da4526dc182f8f1c0c0ba
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_REPOSITORY: /usr/local
HOMEBREW_LIBRARY_PATH: /usr/local/Library/Homebrew
Hardware: quad-core 64-bit sandybridge
OS X: 10.7.2
Kernel Architecture: x86_64
Ruby: 1.8.7-249
/usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
Xcode: 4.2
GCC-4.0: N/A
GCC-4.2: build 5666
LLVM: build 2336
MacPorts or Fink? false
X11 installed? true
==> Build Flags
CC: /usr/bin/llvm-gcc => /usr/llvm-gcc-4.2/bin/llvm-gcc-4.2
CXX: /usr/bin/llvm-g++ => /usr/llvm-gcc-4.2/bin/llvm-g++-4.2
LD: /usr/bin/llvm-gcc => /usr/llvm-gcc-4.2/bin/llvm-gcc-4.2
CFLAGS: -O3 -march=core2 -w -pipe
CXXFLAGS: -O3 -march=core2 -w -pipe
MAKEFLAGS: -j4
Error: Failed executing: make PREFIX=/usr/local/Cellar/luajit/2.0.0-beta8 TARGET_CC=/usr/bin/llvm-gcc amalg
If `brew doctor' does not help diagnose the issue, please report the bug:
https://github.com/mxcl/homebrew/wiki/checklist-before-filing-a-new-issue
mba:~ jacob$ brew install -v --use-gcc luajit
==> Downloading http://luajit.org/download/LuaJIT-2.0.0-beta8.tar.gz
/usr/bin/curl -f#LA Homebrew 0.8 (Ruby 1.8.7-249; Mac OS X 10.7.2) http://luajit.org/download/LuaJIT-2.0.0-beta8.tar.gz -o /Users/jacob/Library/Caches/Homebrew/luajit-2.0.0-beta8.tar.gz
######################################################################## 100.0%
/usr/bin/tar xf /Users/jacob/Library/Caches/Homebrew/luajit-2.0.0-beta8.tar.gz
==> Downloading patches
/usr/bin/curl -f#LA Homebrew 0.8 (Ruby 1.8.7-249; Mac OS X 10.7.2) http://luajit.org/download/beta8_hotfix1.patch -o 001-homebrew.diff
######################################################################## 100.0%
==> Patching
/usr/bin/patch -f -p1 -i 001-homebrew.diff
patching file src/lj_snap.c
patching file src/buildvm_asm.c
patching file src/lj_asm.c
patching file src/lj_ircall.h
patching file src/lj_err.c
==> make PREFIX=/usr/local/Cellar/luajit/2.0.0-beta8 TARGET_CC=/usr/bin/gcc-4.2 amalg
make PREFIX=/usr/local/Cellar/luajit/2.0.0-beta8 TARGET_CC=/usr/bin/gcc-4.2 amalg
Building LuaJIT 2.0.0-beta8
make -C src amalg
+--------------------------------------------------------------------------+
| WARNING: Compiling the amalgamation needs a lot of virtual memory |
| (around 200 MB with GCC 4.x)! If you don't have enough physical memory |
| your machine will start swapping to disk and the compile will not finish |
| within a reasonable amount of time. |
| So either compile on a bigger machine or use the non-amalgamated build. |
+--------------------------------------------------------------------------+
make all "LJCORE_O=ljamalg.o"
HOSTCC buildvm.o
HOSTCC buildvm_peobj.o
HOSTCC buildvm_lib.o
HOSTCC buildvm_asm.o
HOSTCC buildvm_fold.o
CC luajit.o
HOSTLINK buildvm
BUILDVM lj_vm.s
BUILDVM lj_ffdef.h
BUILDVM lj_folddef.h
BUILDVM lj_bcdef.h
BUILDVM lj_recdef.h
BUILDVM lj_libdef.h
BUILDVM ../lib/vmdef.lua
ASM lj_vm.o
CC ljamalg.o
AR libluajit.a
DYNLINK libluajit.so
LINK luajit
OK Successfully built LuaJIT
==> make PREFIX=/usr/local/Cellar/luajit/2.0.0-beta8 TARGET_CC=/usr/bin/gcc-4.2 install
make PREFIX=/usr/local/Cellar/luajit/2.0.0-beta8 TARGET_CC=/usr/bin/gcc-4.2 install
==== Installing LuaJIT 2.0.0-beta8 to /usr/local/Cellar/luajit/2.0.0-beta8 ====
mkdir -p /usr/local/Cellar/luajit/2.0.0-beta8/bin /usr/local/Cellar/luajit/2.0.0-beta8/lib /usr/local/Cellar/luajit/2.0.0-beta8/include/luajit-2.0 /usr/local/Cellar/luajit/2.0.0-beta8/share/man/man1 /usr/local/Cellar/luajit/2.0.0-beta8/lib/pkgconfig /usr/local/Cellar/luajit/2.0.0-beta8/share/luajit-2.0.0-beta8/jit /usr/local/Cellar/luajit/2.0.0-beta8/share/lua/5.1 /usr/local/Cellar/luajit/2.0.0-beta8/lib/lua/5.1
cd src && install -m 0755 luajit /usr/local/Cellar/luajit/2.0.0-beta8/bin/luajit-2.0.0-beta8
cd src && test -f libluajit.a && install -m 0644 libluajit.a /usr/local/Cellar/luajit/2.0.0-beta8/lib/libluajit-5.1.a || :
rm -f /usr/local/Cellar/luajit/2.0.0-beta8/lib/libluajit-51.2.0.0.dylib /usr/local/Cellar/luajit/2.0.0-beta8/lib/libluajit-51.dylib /usr/local/Cellar/luajit/2.0.0-beta8/lib/libluajit-51.2.dylib
cd src && test -f libluajit.so && \
install -m 0644 libluajit.so /usr/local/Cellar/luajit/2.0.0-beta8/lib/libluajit-51.2.0.0.dylib && \
: /usr/local/Cellar/luajit/2.0.0-beta8/lib && \
ln -sf libluajit-51.2.0.0.dylib /usr/local/Cellar/luajit/2.0.0-beta8/lib/libluajit-51.dylib && \
ln -sf libluajit-51.2.0.0.dylib /usr/local/Cellar/luajit/2.0.0-beta8/lib/libluajit-51.2.dylib || :
cd etc && install -m 0644 luajit.1 /usr/local/Cellar/luajit/2.0.0-beta8/share/man/man1
cd etc && sed -e "s|^prefix=.*|prefix=/usr/local/Cellar/luajit/2.0.0-beta8|" luajit.pc > luajit.pc.tmp && \
install -m 0644 luajit.pc.tmp /usr/local/Cellar/luajit/2.0.0-beta8/lib/pkgconfig/luajit.pc && \
rm -f luajit.pc.tmp
cd src && install -m 0644 lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h /usr/local/Cellar/luajit/2.0.0-beta8/include/luajit-2.0
cd lib && install -m 0644 bc.lua v.lua dump.lua dis_x86.lua dis_x64.lua bcsave.lua vmdef.lua /usr/local/Cellar/luajit/2.0.0-beta8/share/luajit-2.0.0-beta8/jit
==== Successfully installed LuaJIT 2.0.0-beta8 to /usr/local/Cellar/luajit/2.0.0-beta8 ====
Note: the beta releases deliberately do NOT install a symlink for luajit
You can do this now by running this command (with sudo):
ln -sf luajit-2.0.0-beta8 /usr/local/Cellar/luajit/2.0.0-beta8/bin/luajit
==> Finishing up
ln /usr/local/bin/luajit-2.0.0-beta8
ln /usr/local/bin/luajit
ln /usr/local/include/luajit-2.0
ln /usr/local/share/man/man1/luajit.1
ln /usr/local/share/luajit-2.0.0-beta8
rm /usr/local/share/lua
mkpath /usr/local/share/lua/5.1
ln /usr/local/lib/pkgconfig/luajit.pc
ln /usr/local/lib/libluajit-51.dylib
ln /usr/local/lib/libluajit-51.2.dylib
ln /usr/local/lib/libluajit-51.2.0.0.dylib
ln /usr/local/lib/libluajit-5.1.a
==> Summary
/usr/local/Cellar/luajit/2.0.0-beta8: 21 files, 2.0M, built in 23 seconds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment