Opened 13 years ago

Closed 13 years ago

Last modified 10 years ago

#23 closed defect (fixed)

MP4 module fails to build under Debian hurd-i386

Reported by: Cyril Lavier Owned by: somebody
Priority: minor Milestone:
Component: nginx-module Version: 1.1.x
Keywords: patch, build fail, hurd, mp4 module Cc:
uname -a: GNU debian 0.3 GNU-Mach 1.3.99/Hurd-0.3 i686-AT386 GNU
nginx -V: 1.1.4

Description

Hi.

On Debian packaging, we decided to include the MP4 module as it could be very usefull.

The build goes well on all architectures, except hurd-i386.

Here is the error

gcc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Wunused-function -Wunused-variable -Wunused-value -Werror -g  -DNDK_SET_VAR -I src/core -I src/event -I src/event/modules -I src/os/unix -I /root/orig/nginx-1.1.4/debian/modules/nginx-development-kit/objs -I objs/addon/ndk -I /usr/include/lua5.1 -I /root/orig/nginx-1.1.4/debian/modules/nginx-http-push/src -I /usr/include/libxml2 -I objs -I src/http -I src/http/modules -I src/http/modules/perl -I /root/orig/nginx-1.1.4/debian/modules/nginx-development-kit/src \
                -o objs/src/http/modules/ngx_http_mp4_module.o \
                src/http/modules/ngx_http_mp4_module.c
src/http/modules/ngx_http_mp4_module.c: In function ‘ngx_http_mp4_update_mdat_atom’:
src/http/modules/ngx_http_mp4_module.c:1069:24: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
src/http/modules/ngx_http_mp4_module.c:1072:9: error: right shift count >= width of type [-Werror]
src/http/modules/ngx_http_mp4_module.c:1072:9: error: right shift count >= width of type [-Werror]
src/http/modules/ngx_http_mp4_module.c:1072:9: error: right shift count >= width of type [-Werror]
src/http/modules/ngx_http_mp4_module.c:1072:9: error: right shift count >= width of type [-Werror]
src/http/modules/ngx_http_mp4_module.c: In function ‘ngx_http_mp4_update_co64_atom’:
src/http/modules/ngx_http_mp4_module.c:2764:5: error: right shift count >= width of type [-Werror]
src/http/modules/ngx_http_mp4_module.c:2764:5: error: right shift count >= width of type [-Werror]
src/http/modules/ngx_http_mp4_module.c:2764:5: error: right shift count >= width of type [-Werror]
src/http/modules/ngx_http_mp4_module.c:2764:5: error: right shift count >= width of type [-Werror]
cc1: all warnings being treated as errors

make[2]: *** [objs/src/http/modules/ngx_http_mp4_module.o] Error 1

So I went on the search and use my little C coding knowledge, and I arrived to resolve the first error ("src/http/modules/ngx_http_mp4_module.c:1069:24: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]"), using the patch attached to this ticket.

But for the remaining error, I'm a little lost, and the only thing I know is I have to patch the ngx_mp4_set_64value function, declared at line 189.

At this point, I'm unable to find a solution.

For the moment, we are working on disabling this module for the hurd-i386 arch, which is not what we like to do.

So if anybody upstream can help me resolve this issue, we can work together.

Thanks

Attachments (1)

MP4_fails_under_hurdi386.patch (506 bytes ) - added by Cyril Lavier 13 years ago.
First draft of a patch aiming to resolve this issue.

Download all attachments as: .zip

Change History (3)

by Cyril Lavier, 13 years ago

First draft of a patch aiming to resolve this issue.

comment:1 by Maxim Dounin, 13 years ago

Status: newaccepted

(see also http://mailman.nginx.org/pipermail/nginx/2011-September/029440.html)

This looks like result of the fact that off_t used is 32-bit wide.

comment:2 by is, 13 years ago

Resolution: fixed
Status: acceptedclosed

In [4156/nginx]:

Fix of building on platforms with 32-bit off_t. (closed #23)

Version 0, edited 13 years ago by is (next)
Note: See TracTickets for help on using tickets.