w |= AL_EXTERN | AL_GLOBAL; // Common symbol
w &= ~AL_BSS; // They're not BSS in Alcyon object files
}
- else if (w1 & DEFINED)
+
+ if (w1 & DEFINED)
{
if (globflag) // Export the symbol
w |= AL_GLOBAL;
register WORD w1 = sym->sattr;
- if (w1 & COMMON)
- {
- //w |= AL_EXTERN | AL_GLOBAL; // common symbol
- //w &= ~AL_BSS; // they're not BSS in Alcyon object files
- }
- else if (w1 & DEFINED)
+ if (w1 & DEFINED)
{
if (globflag) // Export the symbol
st_info |= 16; //STB_GLOBAL (1<<4)
//
int WriteObject(int fd)
{
- LONG t; // Scratch long
LONG tds; // TEXT & DATA segment size
int i; // Temporary int
CHUNK * cp; // Chunk (for gather)
uint8_t * buf; // Scratch area
uint8_t * p; // Temporary ptr
LONG trsize, drsize; // Size of relocations
- long unused; // For supressing 'write' warnings
+ uint32_t unused; // For supressing 'write' warnings
if (verb_flag)
{
sy_assign(buf + HDRSIZE + tds, AddSymEntry);
chptr = buf + 0x0E; // Point to symbol table size entry
D_long(symsize);
+
+ if (verb_flag)
+ printf("Symbol table: %d bytes\n", symsize);
}
// Write out the header + text & data + symbol table (if any)
WriteP56();
// Write all the things |o/
- ssize_t unused = write(fd, buf, chptr - buf);
+ unused = write(fd, buf, chptr - buf);
if (buf)
free(buf);