Dynamic module not binary compatible

Maxim Dounin mdounin at mdounin.ru
Thu Jun 23 12:20:53 UTC 2016


On Thu, Jun 23, 2016 at 09:58:04AM +0200, Massimiliano Bellomi wrote:

> Hi all,
> is there a way to avoid the module signature check
>      if (ngx_strcmp(module->signature, NGX_MODULE_SIGNATURE) != 0) {
>          ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
>                             "module \"%V\" is not binary compatible",
>                             file);
>          return NGX_ERROR;
>      }
> on nginx startup ?
> I would like to build a dynamic module and make it compatible with a
> version of nginx regardless of options used in ./configure

Depending on configure options layout of various nginx structures 
differs, and an attempt to load a module which was compiled with 
different configure options will likely result in a segmentation 
fault sooner or later.  The binary complatibility check is to 
prevent such segmentation faults.

We are currently working on reduing number of options that cause 
binary incompatibilities.  The goal is to reduce number of such 
options to the bare minimum.  It yet to happen though.  For now, 
generic approach is: compile a module for a particular nginx main 
binary, and use the same configure options as was used to compile 
the binary.

Maxim Dounin

More information about the nginx-devel mailing list