не собирается на одной машине .....

Igor Sysoev is at rambler-co.ru
Wed Feb 22 12:03:28 MSK 2006


On Wed, 22 Feb 2006, Michail Baikov wrote:

> Igor Sysoev wrote:
>> On Tue, 21 Feb 2006, Michail Baikov wrote:
>>
>>> Igor Sysoev wrote:
>>>> On Tue, 21 Feb 2006, Michail Baikov wrote:
>>>>
>>>>> gcc -c -march=i686 -O2 -fomit-frame-pointer -pipe  -I src/core -I
>>>>> src/event -I src/event/modules -I src/os/unix -I objs \
>>>>>        -o objs/src/core/ngx_cpuinfo.o \
>>>>>        src/core/ngx_cpuinfo.c
>>>>> src/core/ngx_cpuinfo.c: In function `ngx_cpuinfo':
>>>>> src/core/ngx_cpuinfo.c:22: error: can't find a register in class `BREG'
>>>>> while reloading `asm'
>>>>> src/core/ngx_cpuinfo.c:22: error: can't find a register in class `BREG'
>>>>> while reloading `asm'
>>>>> make[1]: *** [objs/src/core/ngx_cpuinfo.o] Error 1
>>>>> make[1]: Leaving directory
>>>>> `/var/tmp/portage/nginx-0.3.29/work/nginx-0.3.29'
>>>>> make: *** [build] Error 2
>>>>>
>>>>> !!! ERROR: www-servers/nginx-0.3.29 failed.
>>>>
>>>> OS
>>>> gcc -v
>>>> as -v
>>>>
>>> Как и везде :)
>>>
>>> Linux/i386
>>> www ~ # gcc -v
>>> Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/specs
>>> Configured with: /var/tmp/portage/gcc-3.4.4-r1/work/gcc-3.4.4/configure
>>> --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.4
>>> --includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.4/include
>>> --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.4
>>> --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.4/man
>>> --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.4/info
>>> --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.4/include/g++-v3
>>>
>>> --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec
>>> --enable-nls --without-included-gettext --with-system-zlib
>>> --disable-checking --disable-werror --disable-libunwind-exceptions
>>> --disable-multilib --disable-libgcj --enable-languages=c,c++
>>> --enable-shared --enable-threads=posix --enable-__cxa_atexit
>>> --enable-clocale=gnu
>>> Thread model: posix
>>> gcc version 3.4.4 (Gentoo Hardened 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)
>>> www ~ # as -v
>>> GNU assembler version 2.16.1 (i686-pc-linux-gnu) using BFD version 2.16.1
>>>
>>> На другой такой же машине все собирается. Тут апгрейд с .26 не проходит.
>>
>> Есть ощущение, что здесь как-то пояивлся -fPIC, но его нигде не видно.

> Да нет - он тут может быть даже и был - машина то hardened. Но раньше

А что такое hardened ?

> все собиралось - 26 версия стоит и работает нормально.....

В 0.3.27 появилось:

     *) Добавление: определение размера строки кэша распространённых
        процессоров при старте.

До этого не было. В ngx_cpuinfo() вставляется ассемблерный код cpuid,
который использует регистр ebx, а gcc использует этот же регистр для своих
целей, если используется -fPIC код.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list