[PATCH 2 of 2] Core: remove NGX_TIME_T_SIZE
Maxim Dounin
mdounin at mdounin.ru
Wed Jul 13 19:01:31 UTC 2016
Hello!
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
http://nginx.org/
More information about the nginx-devel
mailing list