Erlang / OTP не компилируется в Solaris 11 11/11 - PullRequest
0 голосов
/ 15 февраля 2012

После обновления до Solaris 11 (11/11) из Solaris 11 Express я больше не могу скомпилировать Erlang / OTP (для создания couchdb), так же как и в новой 64-битной установке Solaris 11 в VirtualBox.

После ./configure, gmake завершается с ошибкой ассемблера.Я безуспешно пытался использовать Erlang OTP R14B03, R14B04 и R15B.

gcc -g -O2 -I / home / admin / Workarea / otp_src_R14B03 / erts / i386-pc-solaris2.11 -D_LARGEFILE_SO_RITOFS_FI_FI= 64 -fno дерево-copyrename -DERTS_SMP -DHAVE_CONFIG_H -Wall -Wstrict-прототипы -Wmissing-прототипы -Wdeclaration-после заявления -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT -DPOSIX_THREADS -D_POSIX_PTHREAD_SEMANTICS -Ii386-ПК-solaris2.11 / опт / СРВ-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 Ассемблер: "/ var /tmp // ccH5a4cn.s ", строка 1: синтаксическая ошибка рядом со строкой:" .section ".text" "gmake [3]: * [obj / i386-pc-solaris2.11 / opt / smp/hipe_x86_glue.o] Ошибка 1 gmake [3]: выход из каталога `/ home / admin / Workarea / otp / erts / emulator '

Есть идеи?Может быть, мне нужно отключить какую-то функцию в ./configure или мне не хватает необходимого пакета?Я попытался скомпилировать с gcc-45, как это предусмотрено Oracle и gcc 4.6.2 из OpenCSW.

1 Ответ

0 голосов
/ 22 февраля 2012

Сделал компиляцию 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

Предупреждение: Я пытаюсь создать couchdb на Solaris11, и это при запуске первого теста из встроенного набора тестов (basics.js) из браузера couchdb дает сбой.Не уверен, что именно причина, может быть Erlang?Будем расследовать ...

...