From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18751 invoked by alias); 16 Sep 2014 16:56:13 -0000 Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org Received: (qmail 18707 invoked by uid 55); 16 Sep 2014 16:56:07 -0000 From: "cvs-commit at gcc dot gnu.org" To: glibc-bugs@sourceware.org Subject: [Bug libc/17266] Always defining __extern_always_inline may generate infinite recursion Date: Tue, 16 Sep 2014 16:56:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: libc X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: RESOLVED X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: siddhesh at redhat dot com X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: security- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-09/txt/msg00211.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=17266 --- Comment #7 from cvs-commit at gcc dot gnu.org --- This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU C Library master sources". The branch, master has been updated via d330b980e9ee2349492087a279a9c7bf294f6b47 (commit) via 02657da2cf4457804ed938ee08b8316249126444 (commit) via 653b1080fad02725ab66e504a7bfeecf4347d7aa (commit) via 602f80ec8b966cfad3b61914cbe14ee606cedf6e (commit) from 545583d664b64ff234b99aca0d85e99c8a55808f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d330b980e9ee2349492087a279a9c7bf294f6b47 commit d330b980e9ee2349492087a279a9c7bf294f6b47 Author: Siddhesh Poyarekar Date: Tue Sep 16 22:20:45 2014 +0530 Remove CFLAGS for interp.c Replace it with including an auto-generated linker-runtime.h. Build-tested on x86_64 and found that there was no change in the generated code. * elf/Makefile (CFLAGS-interp.c): Remove. ($(elf-objpfx)runtime-linker.h): Generate header with linker path string. * elf/interp.c: Include generated runtime-linker.h https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=02657da2cf4457804ed938ee08b8316249126444 commit 02657da2cf4457804ed938ee08b8316249126444 Author: Siddhesh Poyarekar Date: Tue Sep 16 22:19:22 2014 +0530 Include .interp section only for libc.so Barring libc.so and libdl.so, none of the libraries have any entry points, so it is pointless to add a .interp section for them. The libdl.so entry point (in dlfcn/eval.c) is also defunct, so remove that file as well. Build tested for x86_64, ppc64 and s390x. I have not moved CFLAGS-interp.c to CPPFLAGS-interp.c isnce I'll be removing it completely in a follow-up patch. Siddhesh * Makerules (lib%.so): Don't include $(+interp) in prerequisites. * elf/Makefile (CFLAGS-interp.c): Don't define NOT_IN_libc. * dlfcn/eval.c: Remove file. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=653b1080fad02725ab66e504a7bfeecf4347d7aa commit 653b1080fad02725ab66e504a7bfeecf4347d7aa Author: Siddhesh Poyarekar Date: Tue Sep 16 22:18:20 2014 +0530 Assume that all _[PS]C_* and _CS_* macros are always defined The macros in question are always defined in confname.h for all variants and there seems to be no reason to allow such variants to exist anyway. https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=602f80ec8b966cfad3b61914cbe14ee606cedf6e commit 602f80ec8b966cfad3b61914cbe14ee606cedf6e Author: Siddhesh Poyarekar Date: Tue Sep 16 22:16:01 2014 +0530 Make __extern_always_inline usable on clang++ again The fix for BZ #17266 (884ddc5081278f488ef8cd49951f41cfdbb480ce) removed changes that had gone into cdefs.h to make __extern_always_inline usable with clang++. This patch adds back support for clang to detect if GNU inlining semantics are available, this time without breaking the gcc use case. The check put here is based on the earlier patch and assertion[1] that checking if __GNUC_STDC_INLINE__ or __GNUC_GNU_INLINE__ is defined is sufficient to determine that clang++ suports GNU inlining semantics. Tested with a simple program that builds with __extern_always_inline with the patch and fails compilation without it. #include #include extern void foo_alias (void) __asm ("foo"); __extern_always_inline void foo (void) { puts ("hi oh world!"); return foo_alias (); } void foo_alias (void) { puts ("hell oh world"); } int main () { foo (); } [1] https://sourceware.org/ml/libc-alpha/2012-12/msg00306.html [BZ #17266] * misc/sys/cdefs.h: Define __extern_always_inline for clang 4.2 and newer. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 17 ++ Makerules | 2 +- dlfcn/eval.c | 200 ----------------- elf/Makefile | 14 +- elf/interp.c | 2 + misc/sys/cdefs.h | 10 +- posix/getconf.c | 628 ------------------------------------------------------ 7 files changed, 38 insertions(+), 835 deletions(-) delete mode 100644 dlfcn/eval.c -- You are receiving this mail because: You are on the CC list for the bug.