zoukankan      html  css  js  c++  java
  • 在openwrt 17.01上编译最新nginx 1.14.2的笔记

    openwrt 17.01源码对应的nginx版本是1.10.2,有些新功能没有,所以需要升级到nginx 1.14.2最新的稳定版

    https://github.com/macports/macports-ports/blob/09603eacd0424538f0321e2ce04f5295f987571a/www/nginx/files/patch-src-ngx_http_lua_headers.c.diff

    https://github.com/openwrt/packages/tree/master/net/nginx/patches

    有几个地方需要修改:

    1、修改feeds/packages/net/nginx/patches目录里的几个文件:

    增加一个文件:201-ignore-invalid-options.patch

     --- a/auto/options
    +++ b/auto/options
    @@ -391,7 +391,6 @@ $0: warning: the "--with-sha1-asm" option is deprecated"
             --test-build-solaris-sendfilev)  NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;;
    
             *)
    -            echo "$0: error: invalid option "$option""
    -            exit 1
    +            echo "$0: error: ignoring invalid option "$option""
             ;;
         esac
    

    修改:

    102-sizeof_test_fix.patch

    --- a/auto/types/sizeof
    +++ b/auto/types/sizeof
    @@ -25,8 +25,14 @@ $NGX_INCLUDE_UNISTD_H
     $NGX_INCLUDE_INTTYPES_H
     $NGX_INCLUDE_AUTO_CONFIG_H
    
    +char object_code_block[] = {
    +       '
    ', 'e', '4', 'V', 'A',
    +       '0', 'x', ('0' + sizeof($ngx_type)),
    +       'Y', '3', 'p', 'M', '
    '
    +};
    +
     int main(void) {
    -    printf("%d", (int) sizeof($ngx_type));
    +    printf("dummy use of object_code_block to avoid gc-section: %c", object_code_block[0]);
         return 0;
     }
    
    @@ -40,7 +46,7 @@ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&
    
    
     if [ -x $NGX_AUTOTEST ]; then
    -    ngx_size=`$NGX_AUTOTEST`
    +    ngx_size=`sed -ne 's/^e4VA0x(.)Y3pM$/1/p' < $NGX_AUTOTEST`
         echo " $ngx_size bytes"
     fi
    
    

    2、修改feeds/packages/net/nginx/patches-lua-nginx目录里的几个文件:

    增加:101-patch-src-ngx_http_lua_headers.c.patch

    --- a/lua-nginx/src/ngx_http_lua_headers.c
    +++ b/lua-nignx/src/ngx_http_lua_headers.c
    @@ -77,6 +77,9 @@
         size_t                       size;
         ngx_buf_t                   *b, *first = NULL;
         ngx_int_t                    i, j;
    +#if defined(nginx_version) && nginx_version >= 1011011
    +    ngx_chain_t                 *cl;
    +#endif
         ngx_connection_t            *c;
         ngx_http_request_t          *r, *mr;
         ngx_http_connection_t       *hc;
    @@ -141,8 +141,15 @@
    
         if (hc->nbusy) {
             b = NULL;
    +
    +#if defined(nginx_version) && nginx_version >= 1011011
    +        for (cl = hc->busy; cl; /* void */) {
    +            b = cl->buf;
    +            cl = cl->next;
    +#else
             for (i = 0; i < hc->nbusy; i++) {
                 b = hc->busy[i];
    +#endif
    
                 dd("busy buf: %d: [%.*s]", (int) i, (int) (b->pos - b->start),
                    b->start);
    @@ -216,8 +217,15 @@
         }
    
         if (hc->nbusy) {
    +
    +#if defined(nginx_version) && nginx_version >= 1011011
    +        for (cl = hc->busy; cl; /* void */) {
    +            b = cl->buf;
    +            cl = cl->next;
    +#else
             for (i = 0; i < hc->nbusy; i++) {
                 b = hc->busy[i];
    +#endif
    
                 if (!found) {
                     if (b != first) {
    

    3、修改feeds/packages/net/nginx/Makefile文件:

    PKG_VERSION:=1.14.2
    
  • 相关阅读:
    运用 MyPasswordSafe 规画暗码
    用Solaris Express体验OS新功能
    Linux体系上安顿Flash Media Server
    LyX 宣布支持 CJK 的 1.5 正式版
    对Unix效能器制止机能监测(下)
    Oracle在Solaris下的机能与调整简介
    Linux据有率无望在2008年打破4%
    Fedora更符合做技术人用
    Gimmie — 一个创新的 GNOME 面板步调
    Sun推出OpenSolaris 为技术创新注入活力
  • 原文地址:https://www.cnblogs.com/d9394/p/11116286.html
Copyright © 2011-2022 走看看