pkgsrc-Users archive

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

Failure building nginx 0.8.34 on Solaris 10 with sunpro compiler (w/ fix)



Hi,

I'm using pkgsrc (2009Q4) to build nginx 0.8.3.4 (I ran cvs update only in 
www/nginx) using Sun Studio 12.1 (sunpro) on Solaris 10/x86 (building for 
32bit). 

It fails with this error when linking the nginx binary:

Undefined                       first referenced
 symbol                             in file
ngx_atomic_fetch_add                objs/src/core/ngx_file.o
ngx_atomic_cmp_set                  objs/src/core/ngx_slab.o
ngx_cpu_pause                       objs/src/core/ngx_spinlock.o
ld: fatal: Symbol referencing errors. No output written to objs/nginx

This is because the nginx configure system (in auto/cc/conf file) sees that 
CFLAGS is set in the environment, so it does not process the compiler specific 
configuration file (in this case auto/cc/sunc). 

The problem is that auto/cc/sunc sets the NGX_AUX variable to add the assembler 
files needed for the atomic routines. If this is not set, the routines are not 
defined, and the linker error occurs.

Therefore the fix is to set the NGX_AUX file via the environment in hacks.mk. 
I've only handled the i386 case as I don't have any other environment to test 
on.

hacks.mk:

.if (${PKGSRC_COMPILER} == sunpro)
.if (${MACHINE_ARCH} == i386)
CONFIGURE_ENV+= NGX_AUX=" src/os/unix/ngx_sunpro_x86.il" 
.endif
.endif


Home | Main Index | Thread Index | Old Index