[MacRuby-devel] Building MacRuby r2765 with llvm r82747 failed on core duo macbook, Leopard

hiroshi saito hiroshi3110 at gmail.com
Fri Oct 9 04:22:21 PDT 2009


Hi all,

I failed to build llvm r82747 and MacRuby r2765 following the
instruction of README.
I use core duo macbook and Leopard.

$ svn co -r 2765
http://svn.macosforge.org/repository/ruby/MacRuby/trunk MacRuby-trunk
$ svn co -r 82747 https://llvm.org/svn/llvm-project/llvm/trunk llvm-trunk
$ cd llvm-trunk
$ UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" ENABLE_OPTIMIZED=1 make
...
llvm[2]: Compiling BasicBlockTracing.c for Release build (bytecode)
...
llvm-gcc-4.2: -E, -S, -save-temps and -M options are not allowed with
multiple -arch flags

To avoid the error, omited univsersal environment variables.

$ ENABLE_OPTIMIZED=1 make

It worked.

Next, build MacRuby itself. My llvm isn't universal binary anymore, so
I explicitly specified archs options;

$ PATH=$PATH:~/Desktop/wc/MacRuby/llvm-trunk/Release/bin rake archs=i386
...
/usr/bin/g++ -I/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include
-I/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include  -D_DEBUG
-D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3
-fno-common -Woverloaded-virtual -I. -I./include -g -Wall -arch i386
-Wno-parentheses -Wno-deprecated-declarations -Werror -Winline --param
inline-unit-growth=10000 --param large-function-growth=10000 -x
objective-c++ -c dispatcher.cpp -o dispatcher.o
cc1objplus: warnings being treated as errors
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/Type.h:417:
warning: ‘void llvm::PATypeHandle::addUser()’ was used before it was
declared inline
...

I got warnings which stopped build. So added "allow_build_warnings=true";

$ PATH=$PATH:~/Desktop/wc/MacRuby/llvm-trunk/Release/bin rake
archs=i386 allow_build_warnings=true
...
./miniruby -I. -I./lib bin/rubyc --internal -C "rbconfig.rb" -o "./rbconfig.rbo"
terminate called after throwing an instance of 'RoxorReturnFromBlockException*'
rake aborted!

I stucked. I don't have any idea to avoid the exception yet.

Also, I tried some of ideas;
* use gcc-4.2 instead of default version of gcc 4.0 on Leopard, but
this doesn't seem to have any effect.
* append --disable-dependency-tracking to ./configure of llvm

Before continue to struggle, I want some help.
If someone succeeded to build MacRuby after releasing 0.5 beta1, please help me.
Or have any idea, I'll try it.

Thanks in advance.



====== Lines below are more details of the build fialures:

$ uname -a
Darwin hiroshi-macbook.local 9.8.0 Darwin Kernel Version 9.8.0: Wed
Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
$ gcc -v
..
gcc version 4.0.1 (Apple Inc. build 5493)

$ svn co -r 2765
http://svn.macosforge.org/repository/ruby/MacRuby/trunk MacRuby-trunk
$ svn co -r 82747 https://llvm.org/svn/llvm-project/llvm/trunk llvm-trunk
$ cd llvm-trunk
$ ./configure
$ UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" ENABLE_OPTIMIZED=1 make
...
llvm[2]: Compiling BasicBlockTracing.c for Release build (bytecode)
/Developer/usr/bin/llvm-gcc
-I/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include
-I/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/runtime/libprofile
-D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
-O3  -fno-common   -mmacosx-version-min=10.5 -pedantic -Wno-long-long
-Wall -W -Wno-unused-parameter -Wwrite-strings  -arch i386 -arch
x86_64 BasicBlockTracing.c -o
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/runtime/libprofile/Release/BasicBlockTracing.ll
-S -emit-llvm
llvm-gcc-4.2: -E, -S, -save-temps and -M options are not allowed with
multiple -arch flags
make[2]: *** [/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/runtime/libprofile/Release/BasicBlockTracing.ll]
Error 1
make[1]: *** [libprofile/.makeall] Error 2
make: *** [all] Error 1

Instead of building llvm with multiple archs, I tried to build it
without universal flags:

$ ENABLE_OPTIMIZED=1 make

It works, but next, building macruby itself failed.

$ cd ..; cd MacRuby-trunk
$ PATH=$PATH:~/Desktop/wc/MacRuby/llvm-trunk/Release/bin rake archs=i386
...
/usr/bin/g++ -I/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include
-I/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include  -D_DEBUG
-D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3
-fno-common -Woverloaded-virtual -I. -I./include -g -Wall -arch i386
-Wno-parentheses -Wno-deprecated-declarations -Werror -Winline --param
inline-unit-growth=10000 --param large-function-growth=10000 -x
objective-c++ -c dispatcher.cpp -o dispatcher.o
cc1objplus: warnings being treated as errors
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/Type.h:417:
warning: ‘void llvm::PATypeHandle::addUser()’ was used before it was
declared inline
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/AbstractTypeUser.h:95:
warning: previous non-inline declaration here
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/Type.h:422:
warning: ‘void llvm::PATypeHandle::removeUser()’ was used before it
was declared inline
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/AbstractTypeUser.h:96:
warning: previous non-inline declaration here
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/Type.h:434:
warning: ‘llvm::Type* llvm::PATypeHolder::get() const’ was used before
it was declared inline
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/AbstractTypeUser.h:159:
warning: previous non-inline declaration here
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/Type.h:440:
warning: ‘void llvm::PATypeHolder::addRef()’ was used before it was
declared inline
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/AbstractTypeUser.h:182:
warning: previous non-inline declaration here
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/Type.h:446:
warning: ‘void llvm::PATypeHolder::dropRef()’ was used before it was
declared inline
/Users/hiroshi/Desktop/wc/MacRuby/llvm-trunk/include/llvm/AbstractTypeUser.h:183:
warning: previous non-inline declaration here
rake aborted!

==========
Hiroshi Saito
hiroshi3110 at gmail.com
http://blog.yakitara.com/
http://github.com/hiroshi


More information about the MacRuby-devel mailing list