public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Nick Clifton <nickc@redhat.com>
To: Vincent Rubiolo <vincent.rubiolo@windriver.com>
Cc: Pieter Arnout <pieter@powerescape.com>,
	grigory.zagorodnev@intel.com, binutils@sources.redhat.com
Subject: Re: HELP with linker script!!!
Date: Fri, 01 Apr 2005 14:05:00 -0000	[thread overview]
Message-ID: <424D545F.70203@redhat.com> (raw)
In-Reply-To: <424D4412.4020700@windriver.com>

Hi Vincent,

> Thanks for this informative reply. There is something I am wondering 
> about using the gcc attributes to put variables or functions : how to 
> control the section flags of these new sections?

One way is by pre-declaring the section's name and attributes before 
using it. Like this:

   asm (".section .cached_bss, \"w\",@nobits");
   int foo __attribute__((section (".cached_bss")));

The problem with this approach is that (with GCC 4.1 at least) you will 
get warning messages from the assembler:

   Warning: ignoring changed section type for .cached_bss
   Warning: ignoring changed section attributes for .cached_bss

This is because GCC does not know that the asm() statement has already 
defined the .cached_bss section and so it issues its own .section 
directive.  If you can live with the assembler warning that this method 
will work.

The other way is hackier, but it avoids the warnings:

   int foo __attribute__((section (".cached_bss,\"w\",@nobits#")));

This assumes that the hash character (#) is the start-of-line-comment 
character for the particular instruction set you are using.  If you have 
a look at the assembler emitted by GCC you can see why:

         .section        .cached_bss,"w",@nobits#,"aw",@progbits

The hash stops GAS from interpreting the

   ,"aw",@probits

which gcc has appended to the name of the section...

Cheers
   Nick

  reply	other threads:[~2005-04-01 14:05 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-31 14:42 Pieter Arnout
2005-03-31 15:50 ` Nick Clifton
     [not found]   ` <29c1ff0410ff9cc2b88a3ad82d1938aa@powerescape.com>
2005-04-01 11:27     ` Nick Clifton
2005-04-01 12:53       ` Vincent Rubiolo
2005-04-01 14:05         ` Nick Clifton [this message]
2005-04-01 14:13           ` Dave Korn
2005-04-01 14:34             ` Andreas Schwab
2005-04-01 16:53       ` Pieter Arnout
2005-04-04  9:39         ` Vincent Rubiolo
2005-04-04 11:06         ` Nick Clifton
2005-04-04 11:11           ` Dave Korn
2005-04-04 11:59           ` Sergei Organov
2005-04-04 13:39             ` Nick Clifton
2005-03-31 15:08 Zagorodnev, Grigory

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=424D545F.70203@redhat.com \
    --to=nickc@redhat.com \
    --cc=binutils@sources.redhat.com \
    --cc=grigory.zagorodnev@intel.com \
    --cc=pieter@powerescape.com \
    --cc=vincent.rubiolo@windriver.com \
    /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).