From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id 9792B385828D; Mon, 29 Jan 2024 17:54:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9792B385828D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1706550864; bh=GkEaa0prhyjwWsG/EptZMtbMdFhyVNlMi7HmOA8uRS4=; h=From:To:Subject:Date:From; b=QaBP+Nmu1pyBfkAfnoMxAjfvlsxGJ/0ZcUqnX2DAHHYG0lF4VFOgJwp6HNIHW+7uB J8FbKwQG9AH7fB0MPPTn2WBcbp19rEI34jaUlh2ambH77qpIK1kiabZtBpb2tFMt5b Gh4hwPkYS3yxbrvhqc77ldomySG6+NcX5M6lUcnY= 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: 34ba47230eb87f570953eb9bc2a6ab2ad01b245c X-Git-Newrev: 4373c8da930a24f0be42459d43ee8c27f67af6a4 Message-Id: <20240129175424.9792B385828D@sourceware.org> Date: Mon, 29 Jan 2024 17:54:24 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4373c8da930a24f0be42459d43ee8c27f67af6a4 commit 4373c8da930a24f0be42459d43ee8c27f67af6a4 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 1c38393fed..2ccd652501 100644 --- a/include/features.h +++ b/include/features.h @@ -515,7 +515,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