Nginx build under Debian Hurd i386
Maxim Dounin
mdounin at mdounin.ru
Wed Sep 28 13:13:38 UTC 2011
Hello!
On Wed, Sep 28, 2011 at 10:39:26AM +0200, Cyril LAVIER wrote:
>
>
> Hi nginx lovers.
>
> As it's my first mail on this mailing list, I
> will introduce myself a little bit.
>
> I'm Cyril Lavier, a 25 years old
> System Administrator from France. I use nginx for barely a year now. I
> use it for my own website, and also for the company I'm working.
>
> Now,
> let's work :).
>
> For the Debian packaging purposes, we try to make nginx
> build properly under the hurd-i386 kernel.
>
> But it never built well,
> and Kartik sent a mail in January about this.
>
> Now, as I'm contributing
> to this packaging, I tried to figure out why nginx build failed.
>
> For
> this, I opened a ticket (http://trac.nginx.org/nginx/ticket/22), which
> provide a patch for this. With this patch it's building well and working
> well.
There is a problem with this patch: nginx uses PATH_MAX to
allocate buffer used in realpath(), and POSIX claims:
: If resolved_name is not a null pointer and {PATH_MAX} is not
: defined as a constant in the <limits.h> header, the behavior is
: undefined.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html
Just using arbitrary value instead of PATH_MAX will likely lead to
a problem. If we want to avoid usage of PATH_MAX the relevant
code should be converted to use realpath() with NULL as
resolved_name.
Other current use of PATH_MAX is for getcwd() buffer which should
be ok with any buffer size as getcwd() interface includes "size"
argument.
> After, we add the MP4 module to the nginx-extras package, but
> the module failed to compile under hurd-i386 (the build works like a
> charm on other architectures).
>
> I opened the ticket #23
> (http://trac.nginx.org/nginx/ticket/23), with a first draft of a patch,
> which resolves one issue. By the way, my C coding knowledge is too low
> to completely correct this issue.
>
> We would like the hurd package being
> the same as the others, so if the developers (or other contributors with
> sufficient knowledge) can take a look at both tickets, and judging about
> a patch inclusion for #22 and a more complete patch #23, this would be
> very appreciated.
This looks like result of the fact that off_t used is 32-bit wide.
I believe correct patch to support 32-bit off_t would require a
bit more work.
Meanwhile, you may want to focus on using 64-bit off_t instead.
Under Linux it's typically done with "#define _FILE_OFFSET_BITS
64". Is it possible to do the same on Debian GNU/Hurd?
Maxim Dounin
More information about the nginx
mailing list