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

Michail Baikov lists at baikov.com
Wed Feb 22 12:35:02 MSK 2006


Igor Sysoev wrote:
> 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
> 
> 
Да - дело в этом. Hardened - это в двух словах - набор защит от
различных "нехороших" действий (SELinux, RSBAC, PaX, GrSecurity).

http://www.gentoo.org/proj/en/hardened/

Каким образом мне собрать nginx с использованием -fPIC?

-- 
Mike Baikov <mike at baikov dot com>
GameDot Labs Developer







More information about the nginx-ru mailing list