From d6dfd5d1adbbc6e25e2cb0568aec98fc2c4acd18 Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 10 Nov 1988 13:01:15 +0000 Subject: [PATCH] fixed to generate only external commons --- mach/sun3/ce/output.c | 9 +++++++++ mach/sun3/ce/relocation.c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/mach/sun3/ce/output.c b/mach/sun3/ce/output.c index 91f3aa75f..0d110fd68 100644 --- a/mach/sun3/ce/output.c +++ b/mach/sun3/ce/output.c @@ -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; } diff --git a/mach/sun3/ce/relocation.c b/mach/sun3/ce/relocation.c index 3e6fd56b4..8b06b27f6 100644 --- a/mach/sun3/ce/relocation.c +++ b/mach/sun3/ce/relocation.c @@ -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; -- 2.34.1