Re: трудность на Solaris

Maxim Dounin mdounin на mdounin.ru
Ср Авг 11 21:23:37 MSD 2010


Hello!

On Tue, Aug 10, 2010 at 01:01:06PM -0400, sergey ivanov wrote:

> Привет всем,
> я хотел бы построить nginx с использованием Sunstudio 12 update 1 на
> 64-битной машине для 32-битной архитекруты, чтобы можно было это
> использовать в виртуальных машинах типа VirtualBox.

Just a side note: кросс-компиляция nginx'а - дело неблагодарное и 
неподдерживаемое.

> Параметры которые я передают configure следующие:
> ---
> ./configure --prefix=/opt/nginx --sbin-path=/opt/nginx/sbin/i386/nginx \
>  --with-cpu-opt=pentium --with-http_ssl_module
> --with-cc-opt="-I/usr/sfw/include -I/opt/omni/include/i386" \
>  --with-ld-opt=-L/opt/omni/lib -R/opt/omni/lib -R/usr/sfw/lib -L/usr/sfw/lib
> ---
> Компиляция вызывается с ключём -xchip=pentium, как например в
> ---
> cc -c -fast -xipo -xchip=pentium -errwarn=%all -g -I/usr/sfw/include
> -I/opt/omni/include/i386 -I src/core -I src/event -I src/event/modules
> -I src/os/unix -I objs \
>                 -o objs/src/core/nginx.o \
>                 src/core/nginx.c src/os/unix/ngx_sunpro_x86.il
> ---
> Однако линкеру -xchip=pentium не передаётся

И не должно ему ничего подобного передаваться, это флаг 
оптимизации для компилятора.  Более того, он подобных опций не 
понимает.

> В результате получается
> ---
> bash-3.2$ file /var/tmp/nginx-0.7.67/objs/ngx_modules.o
> /var/tmp/nginx-0.7.67/objs/ngx_modules.o:       ELF 32-bit LSB
> relocatable 80386 Version 1 [SSE CMOV]
> bash-3.2$ file /var/tmp/nginx-0.7.67/objs/nginx
> /var/tmp/nginx-0.7.67/objs/nginx:       ELF 32-bit LSB executable
> 80386 Version 1 [SSE2 SSE FXSR AMD_3DNow CMOV FPU], dynamically
> linked, not stripped
> ---

Если я правильно понимаю, hardware capabilities выставляются 
линкером на основе таковых из файлов, используемых при 
линковке.  Т.е. скорей всего где-то затесалась скажем статическая 
библиотека, использующая AMD_3DNow и прочее.

Пройдитесь file'ом по всем аргументам ld (включая библиотеки из 
-l), станет понятнее.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru