public inbox for crossgcc@sourceware.org
 help / color / mirror / Atom feed
From: "Bill Randle" <billr@exgate.tek.com>
To: msokolov@ivan.Harhan.ORG (Michael Sokolov),
	HollaA@HPD.Abbott.com, crossgcc@sources.redhat.com
Subject: Re: M68k a.out grief
Date: Fri, 22 Dec 2000 09:11:00 -0000	[thread overview]
Message-ID: <10012220908.ZM12952@saab.cns-nw.com> (raw)
In-Reply-To: <0012220251.AA01554@ivan.Harhan.ORG>

On Dec 21,  6:51pm, Michael Sokolov wrote:
} Subject: Re: M68k a.out grief
} "Holland, Alexander         MHX" <HollaA@HPD.Abbott.com> wrote:
}
} > In order to use a particular in-circuit emulator, I switched  from a GNU
} > 2.95.2 m68k-coff target format to a GNU 2.95.2 m68k-aout format.
}
} Why would you do that? Your hardware can't possibly care or even know how you
} use your GNU toolchain.

Oh yes it can! He's talking about an in-circuit emulator - presumably used
in conjunction with a source level debugger. You need to download the
object code in a particular format to the emulator or it would understand
what you're sending it.

} > However, I
} > am running into problems creating a linker script that provides even a
} > minimum level of output section control. For example, my COFF script
creates
} > a ".vectors" section, specifies that the data part of my vectors module (a
} > vector table data struct) go into this section, and locates the section at
} > the base of ROM. The a.out linker seems not to allow me to specify any
} > section different from the standard .text, .data, .bss.
}
} But this is the whole point of a.out and COFF! a.out .text, .data, and .bss
} (and nothing else) by definition. COFF allows you to create your own sections
} and that's what it was invented for in the first place.
}
} > Does anyone have any
} > a.out linker script examples or techniques that provide more flexible
output
} > section control?
}
} This is impossible by definition.

Well, I wouldn't state it quite so strongly. While it's true you can't
have sections other than .text, .data and .bss, you can locate sections
of code into different places *on a file or symbol basis* which should be
sufficient for what he's trying to do.

For instance, here's a linker script file we use (m68k-a.out):

OUTPUT_FORMAT("a.out-sunos-big")
OUTPUT_ARCH(m68k)
SECTIONS
{
  .text (TEXT) :
  {
    CREATE_OBJECT_SYMBOLS
    *(.text)
    _etext = ALIGN(4);
  }
  .data :
  {
    _sdata  = .;
    *(.data)
        CONSTRUCTORS
    _edata  =  ALIGN(4);
  }
  .bss :
  {
   _sbss = .;
   *(.bss)
   _nvram = .;
   . = . + 2;
   process/o/nvdata.o (COMMON)
   _nvram_crc = .;
   . = . + 2;
   *(COMMON)
   _end = ALIGN(4);
  }
}

While this doesn't locate the vector table at the start of ROM, it does
do some special things with the .bss section, like define the location
of some global symbols and force the COMMON section of the nvdata.o file
to be located after the .bss section and before all the other COMMON
sections.

So, you should be able to do something like this:
	.text (TEXT) :
	{
	  CREATE_OBJECT_SYMBOLS
	  vectors.o (.data)
	  *(.text)
	  _etext = ALIGN(4);
	}
	etc.

to force the location of the data section of the vector table into the start
of ROM.

	-Bill Randle
	Tektronix, Inc.
	billr@exgate.tek.com


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com

  reply	other threads:[~2000-12-22  9:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-12-21 18:54 Michael Sokolov
2000-12-22  9:11 ` Bill Randle [this message]
  -- strict thread matches above, loose matches on Subject: below --
2000-12-21 13:24 Holland, Alexander         MHX
2000-12-21 11:46 Holland, Alexander         MHX
2000-12-21 11:57 ` Art Berggreen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10012220908.ZM12952@saab.cns-nw.com \
    --to=billr@exgate.tek.com \
    --cc=HollaA@HPD.Abbott.com \
    --cc=crossgcc@sources.redhat.com \
    --cc=msokolov@ivan.Harhan.ORG \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).