Using xlc_r, make fails at:
...        xlc_r -c  -I src/core  -I src/event  -I src/event/modules  -I src/os/unix  -I /usr/local/include  -I objs  -o objs/src/os/unix/ngx_errno.o  src/os/unix/ngx_errno.c"src/os/unix/ngx_errno.c", line 36.43: 1506-046 (S) Syntax error."src/os/unix/ngx_errno.c", line 36.29: 1506-068 (W) Operation between types "unsigned long" and "struct {...}*" is not allowed."src/os/unix/ngx_errno.c", line 36.9: 1506-068 (W) Operation between types "struct {...}*" and "unsigned long" is not allowed."src/os/unix/ngx_errno.c", line 38.12: 1506-275 (S) Unexpected text ')' encountered."src/os/unix/ngx_errno.c", line 57.26: 1506-018 (S) Operand of indirection operator must be a pointer expression."src/os/unix/ngx_errno.c", line 64.37: 1506-275 (S) Unexpected text ';' encountered."src/os/unix/ngx_errno.c", line 64.44: 1506-277 (S) Syntax error: possible missing ';' or ','?make: 1254-004 The error code from the last command is 1.Stop.make: 1254-004 The error code from the last command is 2.Stop.The referring lines in ngx_errno.c:
---
   +33  {   +34      ngx_str_t  *msg;   +35   +36      msg = ((ngx_uint_t) err < NGX_SYS_NERR) ? &ngx_sys_errlist[err]:   +37                                                &ngx_unknown_error;   +38      size = ngx_min(size, msg->len);   +39   +40      return ngx_cpymem(errstr, msg->data, size);   +41  }   +42   +43   +44  ngx_uint_t   +45  ngx_strerror_init(void)   +46  {   +47      char       *msg;   +48      u_char     *p;   +49      size_t      len;   +50      ngx_err_t   err;   +51   +52      /*   +53       * ngx_strerror() is not ready to work at this stage, therefore,   +54       * malloc() is used and possible errors are logged using strerror().   +55       */   +56   +57      len = NGX_SYS_NERR * sizeof(ngx_str_t);   +58   +59      ngx_sys_errlist = malloc(len);   +60      if (ngx_sys_errlist == NULL) {   +61          goto failed;   +62      }   +63   +64      for (err = 0; err < NGX_SYS_NERR; err++) {   +65          msg = strerror(err);   +66          len = ngx_strlen(msg);   +67   +68          p = malloc(len);   +69          if (p == NULL) {   +70              goto failed;   +71          }   +72   +73          ngx_memcpy(p, msg, len);   +74          ngx_sys_errlist[err].len = len;   +75          ngx_sys_errlist[err].data = p;   +76      }