2012-02-15 17 views
0

Solaris 11 ExpressからSolaris 11(11/11)にアップグレードした後、couldbをビルドするためにErlang/OTPをコンパイルできなくなりました。 VirtualBoxにSolaris 11 64ビットを新しくインストール。Solaris 11 11/11でErlang/OTPがコンパイルに失敗する

./configureの後、gmakeはアセンブラの問題で失敗します。私はErlang OTP R14B03、R14B04、R15Bを成功裏に試しました。

gcc -g -O2 -I/home/admin/Workarea/otp_src_R14B03/erts/i386-pc-solaris2.11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-tree-copyrename -DERTS_SMP -DHAVE_CONFIG_H -Wall -Wstrict-prototypes -Wmissing-prototypes -Wdeclaration-after-statement -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT -DPOSIX_THREADS -D_POSIX_PTHREAD_SEMANTICS -Ii386-pc-solaris2.11/opt/smp -Ibeam -Isys/unix -Isys/common -Ii386-pc-solaris2.11 -Izlib -Ipcre -Ihipe -I../include -I../include/i386-pc-solaris2.11 -I../include/internal -I../include/internal/i386-pc-solaris2.11 -c hipe/hipe_x86_glue.S -o obj/i386-pc-solaris2.11/opt/smp/hipe_x86_glue.o Assembler: "/var/tmp//ccH5a4cn.s", line 1 : Syntax error Near line: " .section ".text"" gmake[3]: * [obj/i386-pc-solaris2.11/opt/smp/hipe_x86_glue.o] Error 1 gmake[3]: Leaving directory `/home/admin/Workarea/otp/erts/emulator'

おそらく、私は./configureの機能を無効にする必要がありますか、または必要なパッケージがありませんか? OpenCSWからOracleとgcc 4.6.2で提供されているgcc-45でコンパイルしようとしました。

+0

'./configure --enable-m32-build'を実行すると、' hipe/hipe_process.h:72:12:error: 'ERTS_ALC_T_HIPE'宣言されていません。この関数では ')。 –

+0

Erlangインストールは、すべてのSolarisバージョン/プラットフォームで苦労します。私は、この問題のErlangメーリングリストを試してみることをお勧めします。 –

答えて

0

OTP R14B04をコンパイルしました。まず、ビルドが失敗するようなものを削除する必要があります(http://www.dev-eth0.de/couchdb-on-opensolaris-part-1-erlang/も参照してください)。

vim erts/emulator/drivers/common/inet_drv.c 

SIOCGIFHWADDRを検索すると#ifdef SIOCGIFHWADDR#elif defined(SIOCGENADDR)の間のすべてを削除します。

erts/emulator/drivers/common/inet_drv.c)前:

... 
#ifdef SIOCGIFHWADDR 
    if (ioctl(desc->s, SIOCGIFHWADDR, (char *)&ifreq) < 0) 
     break; 
    buf_check(sptr, s_end, 1+2+IFHWADDRLEN); 
    *sptr++ = INET_IFOPT_HWADDR; 
    put_int16(IFHWADDRLEN, sptr); sptr += 2; 
    /* raw memcpy (fix include autoconf later) */ 
    sys_memcpy(sptr, (char*)(&ifreq.ifr_hwaddr.sa_data), IFHWADDRLEN); 
    sptr += IFHWADDRLEN; 
#elif defined(SIOCGENADDR) 
... 

erts/emulator/drivers/common/inet_drv.c)後:その後、

... 
#ifdef SIOCGIFHWADDR 
#elif defined(SIOCGENADDR) 
... 

と実行します。

./configure --enable-m32-build --disable-hipe 
gmake 
sudo gmake install 

警告:私は、Solaris 11上のCouchDBを構築しようとしていることだし、それは、ブラウザのCouchDBのクラッシュ内からテストスイート(basics.js)でビルドから最初のテストを実行しているとき 。正確に何が原因なのかわからない、エルランかもしれない?調査します...

関連する問題