nginx/1.13.9 + njs/head build : ngx_http_js_module.so: undefined symbol

Dmitry Volyntsev xeioex at nginx.com
Wed Feb 21 06:22:21 UTC 2018



> On 21 Feb 2018, at 00:32, PGNet Dev <pgnet.dev at gmail.com> wrote:
> 
> On 2/20/18 1:26 PM, Dmitry Volyntsev wrote:
>> Thank you for reporting the problem.
>> Please, make sure that you do 'make clean’ in njs directory after hg update.
> 
> 
> Of course.  I'm always
> 
>  hg update --clean tip
> 
> r450 is reproducibly causing the error.
> 
> r446 is fine atm.

I cannot reproduce it with a clean build (ubuntu 14.04, macOS 10.13).

Can you reproduce the issue from scratch (downloading nginx tip & njs tip in a separate directory)?

Somehow your ngx_http_js_module.so is linked against outdated libnjs.a.

On r450 you should see the following:

objdump -t ../njs/build/libnjs.a  | grep -E 'g.*njs_vm_'
000000000000021e g     F .text  000000000000026d njs_vm_create
0000000000000040 g     O .data.rel.ro.local     0000000000000038 .hidden njs_vm_mem_cache_pool_proto
000000000000048b g     F .text  0000000000000015 njs_vm_destroy
00000000000004a0 g     F .text  000000000000015c njs_vm_compile
00000000000005fc g     F .text  00000000000001c8 njs_vm_clone
00000000000007c4 g     F .text  0000000000000072 njs_vm_call
0000000000000836 g     F .text  0000000000000051 njs_vm_run
0000000000000887 g     F .text  0000000000000004 njs_vm_retval
000000000000088b g     F .text  000000000000000f njs_vm_retval_set
000000000000089a g     F .text  0000000000000035 njs_vm_retval_to_ext_string
0000000000002c0c g     F .text  000000000000001c .hidden njs_vm_backtrace
0000000000002c28 g     F .text  00000000000002fb njs_vm_value_to_ext_string
0000000000000384 g     F .text  000000000000001d njs_vm_external_prototype
00000000000003a1 g     F .text  0000000000000077 njs_vm_external_create
0000000000000418 g     F .text  00000000000000a6 njs_vm_external_bind
0000000000000803 g     F .text  0000000000000083 njs_vm_function
0000000000000b8d g     F .text  00000000000004c8 njs_vm_completions

nm ./objs/ngx_http_js_module.so | grep -E 'T.*njs_vm_'
000000000000b1f9 T njs_vm_call
000000000000b031 T njs_vm_clone
000000000000aed5 T njs_vm_compile
0000000000019c4d T njs_vm_completions
000000000000ac53 T njs_vm_create
000000000000aec0 T njs_vm_destroy
0000000000018698 T njs_vm_external_bind
0000000000018621 T njs_vm_external_create
0000000000018604 T njs_vm_external_prototype
000000000001903d T njs_vm_function
000000000000b2bc T njs_vm_retval
000000000000b2c0 T njs_vm_retval_set
000000000000b2cf T njs_vm_retval_to_ext_string
000000000000b26b T njs_vm_run
000000000000df38 T njs_vm_value_to_ext_string



More information about the nginx-devel mailing list