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
next prev parent 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).