[PATCH 2 of 2] Core: remove NGX_TIME_T_SIZE

Maxim Dounin mdounin at mdounin.ru
Wed Jul 13 19:01:31 UTC 2016


On Wed, Jul 13, 2016 at 11:00:06AM -0700, Piotr Sikora wrote:

> Hey Maxim,
> > I don't think that size of time_t should be removed from module
> > signatures.  E.g., OpenBSD switched to 64-bit time_t on 32-bit
> > hosts a couple of years ago, and I would expect similar things to
> > happen on other platforms as well.  Signatures were designed to
> > prevent loading of incompatible modules in such cases.
> I'm aware of that change... I don't have a way to test this, but I
> assume that modules wouldn't load even without NGX_TIME_T_SIZE being
> in the signature, because of the libc and/or kernel ABI bump.
> Also, it's not clear to me why time_t is part of the signature, but
> ino_t and off_t (for example) aren't.

Because we don't have NGX_INO_T_SIZE/NGX_OFF_T_SIZE readily 
available and decided that adding them don't worth the effort.

> > It can be replaced with, e.g., NGX_TIME_T_LEN, but I don't see
> > reasoning behind these changes.  Are you trying to make it
> > possible to build nginx as a multiarchitecture binary?
> Removal of values detected at the ./configure-time is one of the ways
> to enable cross-compilation, since the autotest binary cannot be run
> on the system running ./configure script.

For cross-compilation it might be more reasonable to use 
static/compile-time assertions in auto/types/sizeof instead.  
There were previous attempts to introduce such changes.

Maxim Dounin

More information about the nginx-devel mailing list