From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30728 invoked by alias); 5 Sep 2016 07:13:12 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 30719 invoked by uid 89); 5 Sep 2016 07:13:12 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.0 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW,RCVD_IN_SEMBACKSCATTER autolearn=no version=3.3.2 spammy=assemblies, scattered, ifunc, redirection X-HELO: mx0a-001b2d01.pphosted.com X-IBM-Helo: d06dlp02.portsmouth.uk.ibm.com X-IBM-MailFrom: stli@linux.vnet.ibm.com X-IBM-RcptTo: libc-alpha@sourceware.org Subject: [PING][PATCH v3 1/9] Add configure check to test if gcc supports attribute ifunc. To: libc-alpha@sourceware.org References: <1472047472-30307-1-git-send-email-stli@linux.vnet.ibm.com> From: Stefan Liebler Cc: Florian Weimer , "Paul E. Murphy" , schwab@suse.de, "Joseph S. Myers" Date: Mon, 05 Sep 2016 07:13:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2 MIME-Version: 1.0 In-Reply-To: <1472047472-30307-1-git-send-email-stli@linux.vnet.ibm.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16090507-0040-0000-0000-000002CBD750 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16090507-0041-0000-0000-00001CD36981 Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-09-05_04:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=15 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1604210000 definitions=main-1609050105 X-SW-Source: 2016-09/txt/msg00064.txt.bz2 On 08/24/2016 04:04 PM, Stefan Liebler wrote: > This patch adds a configure check to test if gcc supports attribute ifunc. > The support can either be enabled in /gcc/config.gcc for one > architecture in general by setting default_gnu_indirect_function variable to yes > or by configuring gcc with --enable-gnu-indirect-function. > > The next patch rewrites libc_ifunc macro to use gcc attribute ifunc instead > of inline assembly to generate the IFUNC symbols due to false debuginfo. > > If gcc does not support attribute ifunc, the old approach for generating > ifunc'ed symbols is used. Then the debug-information is false. Thus it is > recommended to use a gcc with indirect function support (See notes in INSTALL). > After this patch-series these inline assemblies for ifunc-handling are not > scattered in multiple files but are used only indirect via ifunc-macros > and can simply removed in libc-symbols.h in future. > > If glibc is configured with --enable-multi-arch and gcc does not support > attribute ifunc, a configure warning is dumped! > > This NEWS entry will be added: > * For multi-arch support it is recommended to use a GCC with gnu-indirect-function > support as it is used to generate ifunc'ed symbols with correct > debug-information. This support can either be enabled by configuring GCC with > '--enable-gnu-indirect-function' or by enabling it by default by setting > 'default_gnu_indirect_function' variable for a particular architecture in > gcc source file 'gcc/config.gcc'. > > ChangeLog: > > * config.h.in (HAVE_GCC_IFUNC): New undef. > * configure.ac: Add check if gcc supports attribute ifunc feature. > * configure: Regenerated. > * manual/install.texi: Add recommendation for gcc with > indirect-function support. > * INSTALL: Regenerated. Hi, PING. Here is the current status of the patchset: -"[PATCH v3 1/9] Add configure check to test if gcc supports attribute ifunc.": ok from Florian. -"[PATCH v3 2/9] Use gcc attribute ifunc in libc_ifunc macro instead of inline assembly due to false debuginfo.": partial ok from Paul. Paul, are the redirection of the f/l variants of __finite and others ok as they are needed (see my previous answer)? PING: ifunc-macros in libc-symbols.h -"[PATCH v3 3/9] s390: Refactor ifunc resolvers due to false debuginfo.": PING. -"[PATCH v3 4/9] i386, x86: Use libc_ifunc macro for time, gettimeofday.": PING. Andreas, are the names for the redirection defines okay? -"[PATCH v3 5/9] ppc: Use libc_ifunc macro for time, gettimeofday.": ok from Paul. -"[PATCH v3 6/9] Use libc_ifunc macro for clock_* symbols in librt.": ok from Florian. -"[PATCH v3 7/9] Use libc_ifunc macro for system in libpthread.": ok from Florian. -"[PATCH v3 8/9] Use libc_ifunc macro for vfork in libpthread.": ok from Florian. -"[PATCH v3 9/9] Use libc_ifunc macro for siglongjmp, longjmp in libpthread.": PING. Bye. Stefan