fixed to generate only external commons
authorceriel <none@none>
Thu, 10 Nov 1988 13:01:15 +0000 (13:01 +0000)
committerceriel <none@none>
Thu, 10 Nov 1988 13:01:15 +0000 (13:01 +0000)
mach/sun3/ce/output.c
mach/sun3/ce/relocation.c

index 91f3aa7..0d110fd 100644 (file)
@@ -126,6 +126,15 @@ reduce_name_table()
        for (i = 0; i < nname; i++, np++) {
                int old_diff_index = diff_index[i-1];
 
+               if ((np->on_type & S_COM) && ! (np->on_type & S_EXT)) {
+                       long sz = np->on_valu;
+
+                       switchseg(SEGBSS);
+                       align_word();
+                       np->on_type &= (~S_COM);
+                       np->on_valu = cur_value();
+                       bss(sz);
+               }
                if (removable(np)) {
                        diff_index[i] = old_diff_index + 1;
                }
index 3e6fd56..8b06b27 100644 (file)
@@ -19,6 +19,15 @@ do_local_relocation()
        for ( rp = reloc_info; rp < relo; rp++) {
                register struct outname *np = &symbol_table[rp->or_nami];
 
+               if ((np->on_type & S_COM) && ! (np->on_type & S_EXT)) {
+                       long sz = np->on_valu;
+
+                       switchseg(SEGBSS);
+                       align_word();
+                       np->on_type &= (~S_COM);
+                       np->on_valu = cur_value();
+                       bss(sz);
+               }
                if ( np->on_valu  != -1 && ! (np->on_type & S_COM)) {
                        register char *sect;