public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "mikpe at it dot uu dot se" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libstdc++/40178]  New: libstdc++ fails to detect atomic builtins for EABI ARM/Linux
Date: Sun, 17 May 2009 17:08:00 -0000	[thread overview]
Message-ID: <bug-40178-7665@http.gcc.gnu.org/bugzilla/> (raw)

EABI ARM/Linux supports atomic builtins in gcc, but they are implemented as
calls to libgcc helper procedures with names like __sync_fetch_and_add_4() etc
rather than being expanded inline.

libstdc++v3/acinclude.m4 tests for atomic builtins by compiling source files
with calls to __sync_fetch_and_add() etc, and then checking if the resulting
assembly files contain the string "__sync__". If they do then acinclude.m4
assumes that atomic builtins are not supported. This presumably works for archs
that inline expand the atomic builtins, but it gives false negatives on EABI
ARM/Linux.

Building gcc-4.4-20090512 for armv5tel-unknown-linux-gnueabi shows:

...
Configuring in armv5tel-unknown-linux-gnueabi/libstdc++-v3
...
checking for thread model used by GCC... posix
checking for atomic builtins for bool... no
checking for atomic builtins for short... no
checking for atomic builtins for int... no
checking for atomic builtins for long long... no
configure: WARNING: No native atomic operations are provided for this platform.
configure: WARNING: They will be faked using a mutex.
configure: WARNING: Performance of certain classes will degrade as a result.

hppa-linux-gnu implements atomic builtins similarly to EABI ARM/Linux, so it
may also be affected by this problem.


-- 
           Summary: libstdc++ fails to detect atomic builtins for EABI
                    ARM/Linux
           Product: gcc
           Version: 4.4.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: mikpe at it dot uu dot se
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: armv5tel-unknown-linux-gnueabi


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40178


             reply	other threads:[~2009-05-17 17:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-17 17:08 mikpe at it dot uu dot se [this message]
2009-05-17 17:12 ` [Bug libstdc++/40178] " paolo dot carlini at oracle dot com
2009-05-17 18:01 ` mikpe at it dot uu dot se
2009-05-17 18:42 ` pinskia at gcc dot gnu dot org

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=bug-40178-7665@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.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).