From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id 805D23858434; Tue, 2 Apr 2024 15:50:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 805D23858434 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1712073043; bh=pkrLvUyFpQVLOMrfWggmPc4P9nLyxUUT358KlcLrTps=; h=From:To:Subject:Date:From; b=tzOK3OH3pminvXgBp6Ozhmp+R3OIjIBnk31x7F10mW5Y+DRKJxhKOjh0frrR5s/jj mwSsKAGKMiY5Fth/ZFMaob2QQn7Ul3iAnwmOMkWwGdBYXtPhrqK68DL61MChJrI5jY s9DhxllIVPaAocAScEO83XK0go5OKmUQjDNDrcU4= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Adhemerval Zanella To: glibc-cvs@sourceware.org Subject: [glibc/azanella/clang] Disable __USE_EXTERN_INLINES for clang X-Act-Checkin: glibc X-Git-Author: Adhemerval Zanella X-Git-Refname: refs/heads/azanella/clang X-Git-Oldrev: 3911c52da84faa4a859669691d015a011133ebe9 X-Git-Newrev: 2213b432e4dcdb3d0ab0faf5461ef5f9d7ad551e Message-Id: <20240402155043.805D23858434@sourceware.org> Date: Tue, 2 Apr 2024 15:50:43 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2213b432e4dcdb3d0ab0faf5461ef5f9d7ad551e commit 2213b432e4dcdb3d0ab0faf5461ef5f9d7ad551e Author: Adhemerval Zanella Date: Thu Oct 7 18:16:04 2021 -0700 Disable __USE_EXTERN_INLINES for clang clang does not allow to redefine attributes after function declaration. Although it work for external usage, its breaks the build for internal symbol that glibc provides as optimization (for instance bsearch with stdlib-bsearch.h or __cmsg_nxthdr). Disable such optimization for clang while building glibc. Diff: --- include/features.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/features.h b/include/features.h index d92503dfed..23e29b9f4d 100644 --- a/include/features.h +++ b/include/features.h @@ -523,7 +523,7 @@ /* Decide whether we can define 'extern inline' functions in headers. */ #if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \ && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \ - && defined __extern_inline + && defined __extern_inline && !(defined __clang__ && defined _LIBC) # define __USE_EXTERN_INLINES 1 #endif