ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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 mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.