diff -Naur apache_1.3.6+01-09/htdocs/manual/misc/fin_wait_2.html apache_1.3.6+01-10/htdocs/manual/misc/fin_wait_2.html --- apache_1.3.6+01-09/htdocs/manual/misc/fin_wait_2.html Mon Mar 22 16:17:43 1999 +++ apache_1.3.6+01-10/htdocs/manual/misc/fin_wait_2.html Wed Nov 3 13:57:18 1999 @@ -189,7 +189,8 @@ support a timeout. For IRIX 5.3, 6.2, and 6.3, use patches 1654, 1703 and 1778 respectively. If you have trouble locating these patches, please contact your - SGI support channel for help. + SGI support channel for help. IRIX 6.5 supports the timeout + without needing a patch.
  • NCR's MP RAS Unix 2.xx and 3.xx both have FIN_WAIT_2 timeouts. In 2.xx it is non-tunable at 600 seconds, while in 3.xx it defaults to 600 seconds and diff -Naur apache_1.3.6+01-09/htdocs/manual/misc/perf-mja.html apache_1.3.6+01-10/htdocs/manual/misc/perf-mja.html --- apache_1.3.6+01-09/htdocs/manual/misc/perf-mja.html Wed Nov 3 10:28:37 1999 +++ apache_1.3.6+01-10/htdocs/manual/misc/perf-mja.html Wed Nov 3 14:37:29 1999 @@ -295,7 +295,7 @@ configure options:
  • Compilation options: diff -Naur apache_1.3.6+01-09/src/include/ap_config.h apache_1.3.6+01-10/src/include/ap_config.h --- apache_1.3.6+01-09/src/include/ap_config.h Thu Sep 2 10:14:17 1999 +++ apache_1.3.6+01-10/src/include/ap_config.h Wed Nov 3 13:57:33 1999 @@ -198,14 +198,18 @@ * there's some weird conflict with non-BSD signals */ #define NO_KILLPG #undef NO_SETSID -#if !defined(USE_FLOCK_SERIALIZED_ACCEPT) && \ - !defined(USE_USLOCK_SERIALIZED_ACCEPT) && \ - !defined(USE_SYSVSEM_SERIALIZED_ACCEPT) +#undef USE_FCNTL_SERIALIZED_ACCEPT +#undef USE_FLOCK_SERIALIZED_ACCEPT +#undef USE_USLOCK_SERIALIZED_ACCEPT +#undef USE_SYSVSEM_SERIALIZED_ACCEPT +#if IRIX >= 65 +#define NO_SERIALIZED_ACCEPT +#else #define USE_FCNTL_SERIALIZED_ACCEPT #endif #define SINGLE_LISTEN_UNSERIALIZED_ACCEPT #define HAVE_SHMGET 1 -#define USE_SHMGET_SCOREBOARD +#define USE_MMAP_SCOREBOARD #define HAVE_MMAP 1 #define USE_MMAP_FILES #define NO_LONG_DOUBLE diff -Naur apache_1.3.6+01-09/src/main/alloc.c apache_1.3.6+01-10/src/main/alloc.c --- apache_1.3.6+01-09/src/main/alloc.c Thu Jul 8 12:15:38 1999 +++ apache_1.3.6+01-10/src/main/alloc.c Wed Nov 3 13:57:42 1999 @@ -681,8 +681,12 @@ char *first_avail = blok->h.first_avail; char *new_first_avail; - if (reqsize <= 0) + if (reqsize <= 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif return NULL; + } new_first_avail = first_avail + size; diff -Naur apache_1.3.6+01-09/src/main/buff.c apache_1.3.6+01-10/src/main/buff.c --- apache_1.3.6+01-09/src/main/buff.c Thu Sep 2 10:17:06 1999 +++ apache_1.3.6+01-10/src/main/buff.c Wed Nov 3 13:57:47 1999 @@ -239,6 +239,20 @@ else #endif rv = (int) read(fb->fd_in, buf, nbyte); + +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +/* + * Try to prefetch the first cache line of the read data ASAP so it's + * ready in the primary cache when the (ultimate) caller touches it. + * The cache line is prefetched for writing because the read data is + * often modified, and in this multi-process server there is going to be + * little to no penalty for owning the cache line exclusively + * unnecessarily (unlike on a highly-contended cache line in a + * multi-threaded server). + */ +# pragma prefetch_manual = 1 +# pragma prefetch_ref = ((char *) buf)[0], kind = wr +#endif return rv; } diff -Naur apache_1.3.6+01-09/src/main/http_main.c apache_1.3.6+01-10/src/main/http_main.c --- apache_1.3.6+01-09/src/main/http_main.c Wed Oct 20 16:42:16 1999 +++ apache_1.3.6+01-10/src/main/http_main.c Wed Nov 3 13:58:07 1999 @@ -961,9 +961,10 @@ #endif /* On some architectures it's safe to do unserialized accept()s in the single - * Listen case. But it's never safe to do it in the case where there's + * Listen case. But it's never(*) safe to do it in the case where there's * multiple Listen statements. Define SINGLE_LISTEN_UNSERIALIZED_ACCEPT * when it's safe in the single Listen case. + * (*) multiple Listen unserialized accepts are safe on Irix 6.5 */ #ifdef SINGLE_LISTEN_UNSERIALIZED_ACCEPT #define SAFE_ACCEPT(stmt) {if(!ap_single_listen && ap_listeners->next != ap_listeners) {stmt;}} @@ -1162,6 +1163,9 @@ } #else if (alarm_fn && x && fn != alarm_fn) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_DEBUG, NULL, "ap_set_callback_and_alarm: possible nested timer!"); } @@ -1170,6 +1174,9 @@ old = alarm(x); #else if (child_timeouts) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif old = alarm(x); } else { @@ -2141,8 +2148,12 @@ int old_status; short_score *ss; - if (child_num < 0) + if (child_num < 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif return -1; + } ap_sync_scoreboard_image(); ss = &ap_scoreboard_image->servers[child_num]; @@ -2153,6 +2164,9 @@ #endif if (ap_extended_status) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif #ifndef OPTIMIZE_TIMEOUTS ss->last_used = time(NULL); #endif @@ -2186,6 +2200,9 @@ } } if (status == SERVER_STARTING && r == NULL) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif /* clean up the slot's vhostrec pointer (maybe re-used) * and mark the slot as belonging to a new generation. */ @@ -3397,7 +3414,7 @@ head_listener = ap_listeners; close_unused_listeners(); -#ifdef NO_SERIALIZED_ACCEPT +#if defined(NO_SERIALIZED_ACCEPT) && (!defined(IRIX) || IRIX < 65) /* warn them about the starvation problem if they're using multiple * sockets */ @@ -3834,6 +3851,9 @@ !ap_single_listen && #endif ap_listeners->next != ap_listeners) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif /* more than one socket */ memcpy(&main_fds, &listenfds, sizeof(fd_set)); srv = ap_select(listenmaxfd + 1, &main_fds, NULL, NULL, NULL); @@ -3975,6 +3995,9 @@ /* protect various fd_sets */ if (csd >= FD_SETSIZE) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, NULL, "[csd] filedescriptor (%u) larger than FD_SETSIZE (%u) " "found, you probably need to rebuild Apache with a " @@ -4006,7 +4029,14 @@ } } +#if defined(IRIX) && IRIX >= 65 + /* + * TCP_NODELAY is inherited from the accepting socket in Irix + * 6.5 and beyond. + */ +#else sock_disable_nagle(csd); +#endif (void) ap_update_child_status(my_child_num, SERVER_BUSY_READ, (request_rec *) NULL); @@ -4066,8 +4096,12 @@ if (r->status == HTTP_OK) ap_process_request(r); - if(ap_extended_status) + if(ap_extended_status) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif increment_counts(my_child_num, r); + } if (!current_conn->keepalive || current_conn->aborted) break; @@ -4078,6 +4112,9 @@ ap_sync_scoreboard_image(); if (ap_scoreboard_image->global.running_generation != ap_my_generation) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif ap_bclose(conn_io); clean_child_exit(0); } diff -Naur apache_1.3.6+01-09/src/main/http_protocol.c apache_1.3.6+01-10/src/main/http_protocol.c --- apache_1.3.6+01-09/src/main/http_protocol.c Thu Sep 2 10:26:41 1999 +++ apache_1.3.6+01-10/src/main/http_protocol.c Wed Nov 3 13:58:21 1999 @@ -810,12 +810,33 @@ /* 16 == strlen("GET / HTTP/1.0\n\n"): minimal valid request */ if (n >= 16 && +#ifdef IRIX + /* use big-endian multi-character constant for speed */ + *(unsigned int *) r->rqbuf == 'GET ' +#else r->rqbuf[0] == 'G' && r->rqbuf[1] == 'E' && r->rqbuf[2] == 'T' && - r->rqbuf[3] == ' ') { + r->rqbuf[3] == ' ' +#endif + ) { char *cp, *ep; +#if defined(IRIX) && _MIPS_SIM != _ABIO32 && \ + CACHE_ALIGNMENT > 0 && RQBUF_SIZE > CACHE_ALIGNMENT +/* + * The first cache line was prefetched in ap_read() and used above; now + * try to prefetch the second cache line so parsing can proceed without + * delay. The cache line is prefetched for writing because parsing + * involves modification. With CACHE_ALIGNMENT=128, most request lines + * are smaller than two cache lines. Unfortunately the compiler doesn't + * yet allow "prefetch_ref = r->rqbuf[CACHE_ALIGNMENT]" so hard-code + * 128. + */ +# pragma prefetch_manual = 1 +# pragma prefetch_ref = r->rqbuf[/*CACHE_ALIGNMENT*/ 128], kind = wr +#endif + /* find the end of the uri */ cp = &r->rqbuf[4]; /* 4 == strlen("GET ") */ ep = &r->rqbuf[n - 11]; /* 11 == strlen(" HTTP/1.0\n\n") */ @@ -985,6 +1006,17 @@ const char *h1name, *h1value; int remain; +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +/* + * Prefetch cache lines of the request headers so parsing can proceed + * without delay. The lines are prefetched for writing because parsing + * involves modification. Attempts to prefetch bogus addresses will + * simply have no effect and will raise no exceptions. + */ +# pragma prefetch_manual = 1 +# pragma prefetch_ref = r->rqhdr[0], kind = wr +#endif + ok = 0; nh = ap_table_elts(r->headers_in)->nelts; @@ -1005,6 +1037,15 @@ while (hp < ep && nh < mh) { char *name, *value; +#if defined(IRIX) && _MIPS_SIM != _ABIO32 && CACHE_ALIGNMENT > 0 +/* + * Unfortunately the compiler doesn't yet allow "prefetch_ref = + * hp[CACHE_ALIGNMENT]" so hard-code 128. + */ +# pragma prefetch_ref = hp[/*CACHE_ALIGNMENT*/ 128], kind = wr +# pragma prefetch_ref = hp[/*CACHE_ALIGNMENT * 2*/ 256], kind = wr +#endif + name = hp; /* find a : (end of name) */ @@ -1035,6 +1076,9 @@ if (hp + 1 < ep && hp[1] != ' ' && hp[1] != '\t') { hp[-(hp[-1] == '\r')] = 0; /* null-terminate value */ hp++; +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +# pragma prefetch_ref = hp[0], kind = wr +#endif if (headers) { /* insert into established table */ @@ -1198,6 +1242,9 @@ ap_keepalive_timeout("read request line", r); if (!quickly_read_request_line(r) && !read_request_line(r)) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif ap_kill_timeout(r); if (r->status == HTTP_REQUEST_URI_TOO_LARGE) { @@ -1212,10 +1259,17 @@ } if (!r->assbackwards) { ap_hard_timeout("read request headers", r); - if (!quickly_get_mime_headers(r)) + if (!quickly_get_mime_headers(r)) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif get_mime_headers(r); + } ap_kill_timeout(r); if (r->status != HTTP_REQUEST_TIME_OUT) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r, "request failed: error reading the headers"); ap_send_error_response(r, 0); @@ -1260,6 +1314,9 @@ if ((!r->hostname && (r->proto_num >= HTTP_VERSION(1,1))) || ((r->proto_num == HTTP_VERSION(1,1)) && !ap_table_get(r->headers_in, "Host"))) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif /* * Client sent us an HTTP/1.1 or later request without telling us the * hostname, either with a full URL or a Host: header. We therefore @@ -1301,6 +1358,9 @@ } if ((access_status = ap_run_post_read_request(r))) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif ap_die(access_status, r); ap_log_transaction(r); return NULL; diff -Naur apache_1.3.6+01-09/src/main/http_request.c apache_1.3.6+01-10/src/main/http_request.c --- apache_1.3.6+01-09/src/main/http_request.c Thu Sep 2 11:40:06 1999 +++ apache_1.3.6+01-10/src/main/http_request.c Wed Nov 3 13:58:27 1999 @@ -1222,13 +1222,23 @@ { int old_stat; - if (ap_extended_status) + if (ap_extended_status) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif ap_time_process_request(r->connection->child_num, START_PREQUEST); + } #ifdef USE_QSC - if (!qsc_process_request(r)) + if (!qsc_process_request(r)) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif #endif process_request_internal(r); +#ifdef USE_QSC + } +#endif old_stat = ap_update_child_status(r->connection->child_num, SERVER_BUSY_LOG, r); @@ -1244,8 +1254,12 @@ ap_log_transaction(r); (void) ap_update_child_status(r->connection->child_num, old_stat, r); - if (ap_extended_status) + if (ap_extended_status) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif ap_time_process_request(r->connection->child_num, STOP_PREQUEST); + } } static table *rename_original_env(pool *p, table *t) diff -Naur apache_1.3.6+01-09/src/main/qsc.c apache_1.3.6+01-10/src/main/qsc.c --- apache_1.3.6+01-09/src/main/qsc.c Thu Sep 2 12:48:21 1999 +++ apache_1.3.6+01-10/src/main/qsc.c Wed Nov 3 13:58:35 1999 @@ -395,8 +395,12 @@ struct qsc_entry *ep; ep = qsc->hash_table[qsc_hash_uri(uri) % QSC_HASH_SIZE]; - while (ep && (ep->server != server || strcmp(ep->uri, uri))) + while (ep && (ep->server != server || strcmp(ep->uri, uri))) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif ep = ep->next; + } /* printf("%d: qsc_lookup_uri(%s, 0x%08x) -> 0x%08x\n", getpid(), uri, server, ep); */ @@ -618,27 +622,47 @@ switch (ap_tolower(tep->key[0])) { case 'a': - if (!strcasecmp(tep->key, "authorization")) + if (!strcasecmp(tep->key, "authorization")) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif cachable = 0; + } break; case 'c': - if (!strcasecmp(tep->key, "cache-control")) + if (!strcasecmp(tep->key, "cache-control")) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif cachable = 0; + } break; case 'i': if (!strcasecmp(tep->key, "if-modified-since") || !strcasecmp(tep->key, "if-none-match") || - !strcasecmp(tep->key, "if-range")) + !strcasecmp(tep->key, "if-range")) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif cachable = 0; + } break; case 'p': if (!strcasecmp(tep->key, "pragma") && - !strcasecmp(tep->val, "no-cache")) + !strcasecmp(tep->val, "no-cache")) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif cachable = 0; + } break; case 'r': - if (!strcasecmp(tep->key, "range")) + if (!strcasecmp(tep->key, "range")) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif cachable = 0; + } break; } } diff -Naur apache_1.3.6+01-09/src/main/util.c apache_1.3.6+01-10/src/main/util.c --- apache_1.3.6+01-09/src/main/util.c Mon Jul 19 17:15:52 1999 +++ apache_1.3.6+01-10/src/main/util.c Wed Nov 3 13:58:41 1999 @@ -191,6 +191,9 @@ } last; if (sec != last.time) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif last.time = sec; ap_gm_timestr_822_buf(last.str, sizeof last.str, sec); } @@ -212,8 +215,12 @@ * unless there is no timekeeper. */ time_t t = ap_scoreboard_image ? ap_scoreboard_image->global.time : 0; - if (t == 0) + if (t == 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif t = time(NULL); + } return t; #else return time(NULL); @@ -237,6 +244,9 @@ time_t tt = ap_time(); if (tt != gmt_info.time) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif gmt_info.time = tt; gmt_info.tm = *localtime(&tt); gmt_info.off = (int) (gmt_info.tm.tm_gmtoff / 60); @@ -251,6 +261,9 @@ time_t tt = ap_time(); if (tt != gmt_info.time) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif struct tm *gmt; int days, hours; diff -Naur apache_1.3.6+01-09/src/modules/experimental/mod_mmap_static.c apache_1.3.6+01-10/src/modules/experimental/mod_mmap_static.c --- apache_1.3.6+01-09/src/modules/experimental/mod_mmap_static.c Wed Oct 20 16:51:19 1999 +++ apache_1.3.6+01-10/src/modules/experimental/mod_mmap_static.c Wed Nov 3 13:58:52 1999 @@ -248,6 +248,9 @@ c = (int) (a->finfo.st_ino - b->finfo.st_ino); if (c == 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif return (int) (a->finfo.st_dev - b->finfo.st_dev); } return c; @@ -330,10 +333,20 @@ #endif /* we don't handle anything but GET */ - if (r->method_number != M_GET) return DECLINED; + if (r->method_number != M_GET) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif + return DECLINED; + } /* file doesn't exist, we won't be dealing with it */ - if (r->finfo.st_mode == 0) return DECLINED; + if (r->finfo.st_mode == 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif + return DECLINED; + } sconf = ap_get_module_config(r->server->module_config, &mmap_static_module); tmp.finfo.st_dev = r->finfo.st_dev; @@ -342,6 +355,9 @@ pmatch = (a_file **)bsearch(&ptmp, sconf->inode_sorted->elts, sconf->inode_sorted->nelts, sizeof(a_file *), inode_compare); if (pmatch == NULL) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif return DECLINED; } match = *pmatch; @@ -352,8 +368,12 @@ /* This handler has no use for a request body (yet), but we still * need to read and discard it if the client sent one. */ - if ((errstatus = ap_discard_request_body(r)) != OK) + if ((errstatus = ap_discard_request_body(r)) != OK) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif return errstatus; + } ap_update_mtime(r, match->finfo.st_mtime); @@ -371,8 +391,12 @@ ap_set_etag(r); - if ((errstatus = ap_meets_conditions(r)) != OK) + if ((errstatus = ap_meets_conditions(r)) != OK) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif return errstatus; + } /* * ap_set_content_length() always converts the same number and never diff -Naur apache_1.3.6+01-09/src/modules/standard/mod_log_config.c apache_1.3.6+01-10/src/modules/standard/mod_log_config.c --- apache_1.3.6+01-09/src/modules/standard/mod_log_config.c Mon Jul 19 16:45:21 1999 +++ apache_1.3.6+01-10/src/modules/standard/mod_log_config.c Wed Nov 3 13:59:05 1999 @@ -302,6 +302,9 @@ char *rvalue = r->connection->user; if (rvalue && *rvalue == 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif rvalue = "\"\""; *rlen = 2; } @@ -352,6 +355,9 @@ if (r->status > 0) { if (r->status != last.status) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif last.status = r->status; last.len = sprintf(last.str, "%d", last.status); } @@ -428,6 +434,9 @@ if (!a || !*a) { time_t now = ap_time(); if (now != last.time) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif char sign; size_t l; @@ -811,8 +820,12 @@ char *s; #ifdef BUFFERED_LOGS - if (len + cls->outcnt > LOG_BUFSIZE) + if (len + cls->outcnt > LOG_BUFSIZE) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif flush_log(cls); + } if (len < LOG_BUFSIZE) { for (i = 0, s = &cls->outbuf[cls->outcnt]; i < iovcnt; i++) { memcpy(s, iovec[i].iov_base, iovec[i].iov_len); @@ -852,8 +865,12 @@ (void *) log_remote_address(r, NULL, &iovec[0].iov_len) : (void *) log_remote_host(r, NULL, &iovec[0].iov_len); if (iovec[0].iov_base) { - if (iovec[0].iov_len == 0) + if (iovec[0].iov_len == 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif iovec[0].iov_len = strlen(iovec[0].iov_base); + } } else { iovec[0].iov_base = (void *) &sqsdn[3]; iovec[0].iov_len = 1; @@ -892,8 +909,12 @@ /* "%t" */ iovec[6].iov_len = 0; iovec[6].iov_base = (void *) log_request_time(r, NULL, &iovec[6].iov_len); - if (iovec[6].iov_len == 0) + if (iovec[6].iov_len == 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif iovec[6].iov_len = strlen(iovec[6].iov_base); + } /* " \"" */ iovec[7].iov_base = (void *) sqsdn; @@ -902,8 +923,12 @@ /* "%r" */ iovec[8].iov_len = 0; iovec[8].iov_base = (void *) log_request_line(orig, NULL, &iovec[8].iov_len); - if (iovec[8].iov_len == 0) + if (iovec[8].iov_len == 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif iovec[8].iov_len = strlen(iovec[8].iov_base); + } /* "\" " */ iovec[9].iov_base = (void *) &sqsdn[1]; @@ -913,8 +938,12 @@ iovec[10].iov_len = 0; iovec[10].iov_base = (void *) log_status(r, NULL, &iovec[10].iov_len); if (iovec[10].iov_base) { - if (iovec[10].iov_len == 0) + if (iovec[10].iov_len == 0) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif iovec[10].iov_len = strlen(iovec[10].iov_base); + } } else { iovec[10].iov_base = (void *) &sqsdn[3]; iovec[10].iov_len = 1; @@ -961,6 +990,9 @@ struct iovec local_iovec[20], *iovec; if (cls->fname == NULL) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif return DECLINED; } @@ -969,6 +1001,9 @@ * to make. */ if (cls->condition_var != NULL) { +#if defined(IRIX) && _MIPS_SIM != _ABIO32 +#pragma mips_frequency_hint NEVER +#endif envar = cls->condition_var; if (*envar != '!') { if (ap_table_get(r->subprocess_env, envar) == NULL) {