Skip to contentSkip to conversation

Patch for modutils 2.4.4, support SEGREL32 relocs on hppa/hppa64

parisc-linux Richard Hirst 2 participants 2 messages Mar 28, 2001

lore
Share & tools
lore
#0 lore raw

Hi Keith,
A small fix for modutils on hppa...

Richard

ChangeLog +3 -0
diff -ur modutils-2.4.4/ChangeLog modutils/ChangeLog
@@ -1,3 +1,6 @@
+
+	* Support for SEGREL32 relocs on hppa/hppa64.  Richard Hirst
+
 2001-03-26  Keith Owens  <[email protected]>
 
 	modutils 2.4.4
obj/obj_hppa.c +7 -1
diff -ur modutils-2.4.4/obj/obj_hppa.c modutils/obj/obj_hppa.c
@@ -529,6 +529,10 @@
     /* Easy. */
     break;
 
+  case R_PARISC_SEGREL32:
+    v -= f->baseaddr;
+    break;
+
   case R_PARISC_DPREL21L:
   case R_PARISC_DPREL14R:
     v -= dp;
@@ -566,9 +570,10 @@
     case R_PARISC_DIR32:
     case R_PARISC_PLABEL32:
     case R_PARISC_PCREL17F:
+    case R_PARISC_SEGREL32:
       fsel = e_fsel;
       break;
-	
+
     case R_PARISC_DPREL21L:
     case R_PARISC_DIR21L:
       fsel = e_lrsel;
@@ -602,6 +607,7 @@
     {
     case R_PARISC_DIR32:
     case R_PARISC_PLABEL32:
+    case R_PARISC_SEGREL32:
       r_format = 32;
       break;
 
obj/obj_hppa64.c +6 -0
diff -ur modutils-2.4.4/obj/obj_hppa64.c modutils/obj/obj_hppa64.c
@@ -361,6 +361,7 @@
 		need_stub = TRUE;
 		break;
 	    case R_PARISC_DIR64:
+	    case R_PARISC_SEGREL32:
 		break;
 	    case R_PARISC_FPTR64:
 		/* This is a simple OPD entry (only created for local symbols,
@@ -595,6 +596,11 @@
 	{
 	    loc[0] = v >> 32;
 	    loc[1] = v;
+	}
+	break;
+    case R_PARISC_SEGREL32:
+	{
+	    loc[0] = v - f->baseaddr;
 	}
 	break;
     case R_PARISC_FPTR64:
#1 lore raw
Quoted 1 line · Richard Hirst

A small fix for modutils on hppa...

Good timing, I was going to release 2.4.5 in 6 hours.