* write.c (chain_frchains_together): Update pointer to last
authorJeff Law <law@redhat.com>
Fri, 5 Nov 1993 01:01:18 +0000 (01:01 +0000)
committerJeff Law <law@redhat.com>
Fri, 5 Nov 1993 01:01:18 +0000 (01:01 +0000)
        frag for a segment in the seginfo structure.

gas/ChangeLog
gas/write.c

index e501d6cc9f70a91597c0d021cec9a3491d5df951..156c1751b9c7b71864d5926471caee2f6ce70b11 100644 (file)
@@ -1,3 +1,8 @@
+Thu Nov  4 17:00:05 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * write.c (chain_frchains_together): Update pointer to last
+       frag for a segment in the seginfo structure.
+
 Thu Nov 04 09:09:35 1993  Jeffrey Wheat  (cassidy@cygnus.com)
 
        *  Makefile.in: Changed RUNTESTFLAGS to RUNTEST_FLAGS
index e2e1c3dffed68163895a5f8811640fc76ad404dd..b36eb3bb37c16d2c10e2ceb221e3c2e7e00a381b 100644 (file)
@@ -305,7 +305,8 @@ chain_frchains_together (abfd, section, xxx)
      subseg_new, so it is possible that seg_info is NULL.  */
   info = seg_info (section);
   if (info != (segment_info_type *) NULL)
-    chain_frchains_together_1 (section, info->frchainP);
+   info->frchainP->frch_last
+     = chain_frchains_together_1 (section, info->frchainP);
 }
 
 #endif
@@ -1896,8 +1897,15 @@ fixup_segment (fixP, this_segment_type)
                    add_number -= S_GET_VALUE (sub_symbolP);
                  }
 #ifdef DIFF_EXPR_OK
-               else if (!pcrel
-                        && S_GET_SEGMENT (sub_symbolP) == this_segment_type)
+               else if (S_GET_SEGMENT (sub_symbolP) == this_segment_type
+#if 0
+                        /* Do this even if it's already described as
+                           pc-relative.  For example, on the m68k, an
+                           operand of "pc@(foo-.-2)" should address "foo"
+                           in a pc-relative mode.  */
+                        && pcrel
+#endif
+                        )
                  {
                    /* Make it pc-relative.  */
                    add_number += (md_pcrel_from (fixP)