Return-Path: owner-postman
Received: from localhost.Berkeley.EDU (localhost.Berkeley.EDU [127.0.0.1]) by nobozo.CS.Berkeley.EDU (8.6.9/8.6.3) with SMTP id QAA20714 for postgres-redist; Wed, 14 Sep 1994 16:23:10 -0700
Resent-From: POSTGRES mailing list <postman@postgres.Berkeley.EDU>
Resent-Message-Id: <199409142323.QAA20714@nobozo.CS.Berkeley.EDU>
Sender: owner-postman@postgres.Berkeley.EDU
X-Return-Path: owner-postman
Received: from faerie.CS.Berkeley.EDU (faerie.CS.Berkeley.EDU [128.32.37.53]) by nobozo.CS.Berkeley.EDU (8.6.9/8.6.3) with ESMTP id QAA20704 for <postgres@postgres.Berkeley.EDU>; Wed, 14 Sep 1994 16:23:08 -0700
Received: from localhost.Berkeley.EDU (localhost.Berkeley.EDU [127.0.0.1]) by faerie.CS.Berkeley.EDU (8.6.9/8.1B) with SMTP id QAA02312; Wed, 14 Sep 1994 16:23:07 -0700
Message-Id: <199409142323.QAA02312@faerie.CS.Berkeley.EDU>
X-Authentication-Warning: faerie.CS.Berkeley.EDU: Host localhost.Berkeley.EDU didn't use HELO protocol
From: aoki@cs.berkeley.edu (Paul M. Aoki)
To: postgres@postgres.Berkeley.EDU
Reply-To: aoki@cs.berkeley.edu (Paul M. Aoki)
Subject: patch for libdl/dlReloc.c (ultrix only)
Date: Wed, 14 Sep 94 16:23:01 -0700
X-Sender: aoki@postgres.Berkeley.EDU
Resent-To: postgres-redist@postgres.Berkeley.EDU
X-Mts: smtp
Resent-Date: Wed, 14 Sep 94 16:23:09 -0700
Resent-XMts: smtp

if you have a mips/ultrix box with the R4400 processor upgrade, e.g.,
the 5000/50, 5000/150, 5000/260, 5000/280 or the upgraded 5900 server,
you must apply the following patch to src/tools/libdl/dlReloc.c in
order to make the dynamic loader work.

if you have some doubt as to your current processor type, you can do
something like
	% /etc/uerf -R -r 300 | grep 'CPU TYPE' | head -1
to find out.  (or bug your sysadmin.  do whatever comes naturally.)

the patch doesn't seem to be necessary for R2000/R3000 boxes.

*** 1.3	1994/03/01 05:42:11
--- dlReloc.c	1994/09/14 20:44:11
***************
*** 19,24 ****
--- 19,25 ----
   */
  #include <stdio.h>
  #include <sys/mman.h>
+ #include <mips/cachectl.h>
  #include "dl.h"
  #include "dlPriv.h"
  
***************
*** 314,325 ****
--- 315,335 ----
  		      PROT_EXEC) == -1) {
  	    fprintf(stderr, "dl: fail to protect text of %s\n", dlfile->filename);
  	}
+ 	/* flush the caches */
+ 	if (cacheflush((char *)dlfile->textAddress, dlfile->textSize,
+ 		       BCACHE) != 0) {
+ 	    fprintf(stderr, "dl: fail to flush text of %s\n", dlfile->filename);
+ 	}
  	/* protect jump tables, if any */
  	while(jmptable) {
  	    if (mprotect((char *)jmptable->block, pagesize, 
  			 PROT_EXEC) == -1) {
  		fprintf(stderr, "dl: fail to protect a jump table of %s\n", 
  			dlfile->filename);
+ 	    }
+ 	    /* flush the caches */
+ 	    if (cacheflush((char *)jmptable->block, pagesize, BCACHE) != 0) {
+ 		fprintf(stderr, "dl: fail to flush a jump table of %s\n", dlfile->filename);
  	    }
  	    jmptable= jmptable->next;
  	}

--
  Paul M. Aoki          |  University of California at Berkeley
  aoki@CS.Berkeley.EDU  |  Dept. of EECS, Computer Science Division (#1776)
                        |  Berkeley, CA 94720-1776

==============================================================================
   To add/remove yourself to/from the POSTGRES mailing list: send mail with 
   the subject line ADD or DEL to "postgres-request@postgres.Berkeley.EDU"

   If this fails, send mail to "post_questions@postgres.Berkeley.EDU" and
   a human will deal with it.  DO NOT post to the "postgres" mailing list.
==============================================================================
