public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "ldv at altlinux dot org" <sourceware-bugzilla@sourceware.org>
To: glibc-bugs@sources.redhat.com
Subject: [Bug libc/14530] New: __extern_always_inline is not always defined but stdlib.h may use it nevertheless
Date: Wed, 29 Aug 2012 17:43:00 -0000	[thread overview]
Message-ID: <bug-14530-131@http.sourceware.org/bugzilla/> (raw)

http://sourceware.org/bugzilla/show_bug.cgi?id=14530

             Bug #: 14530
           Summary: __extern_always_inline is not always defined but
                    stdlib.h may use it nevertheless
           Product: glibc
           Version: unspecified
            Status: NEW
          Keywords: glibc_2.16
          Severity: normal
          Priority: P2
         Component: libc
        AssignedTo: unassigned@sourceware.org
        ReportedBy: ldv@altlinux.org
                CC: drepper.fsp@gmail.com, polacek@redhat.com
    Classification: Unclassified


Commit glibc-2.15-685-g5ac3ea1 introduced a regression:

$ echo '#include <stdlib.h>' |gcc-4.1 -O2 -D_FORTIFY_SOURCE=2 -S -xc++ -
-o/dev/null
/usr/include/bits/stdlib.h:36: error: expected constructor, destructor, or type
conversion before 'char'
/usr/include/stdlib.h:972: error: expected `}' at end of input

$ echo '#include <stdlib.h>' |gcc-4.1 -O2 -D_FORTIFY_SOURCE=2 -E -xc++ - |grep
-A1 __extern_always_inline |head -2
__extern_always_inline __attribute__ ((__warn_unused_result__)) char *
 realpath (const char *__restrict __name, char *__restrict __resolved) throw ()

That is, g++ < 4.3 in fortify mode no longer compiles stdlib.h.

The bug is somewhat similar to
http://sourceware.org/bugzill/show_bug.cgi?id=13741 but is not exactly the
same.

There is one particular hunk of commit glibc-2.15-685-g5ac3ea1 that made the
difference:
-#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
+#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
Before that change, there were no attempts to include bits/stdlib.h in case of
using old g++ in fortify mode, but there were another chances to hit undefined
__extern_always_inline (the last is the subject of #13741).

A proper definition of __extern_always_inline in sys/cdefs.h would fix both
bugs.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


             reply	other threads:[~2012-08-29 17:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-29 17:43 ldv at altlinux dot org [this message]
2012-08-29 17:49 ` [Bug libc/14530] " polacek at redhat dot com
2012-09-26 11:02 ` polacek at redhat dot com
2014-06-17  4:48 ` fweimer at redhat dot com

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-14530-131@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=glibc-bugs@sources.redhat.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).