From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 107183 invoked by alias); 12 Sep 2018 15:26:57 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 107170 invoked by uid 89); 12 Sep 2018 15:26:57 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.8 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=fvisibility, gdb's, common-utils.c, UD:common-utils.c X-HELO: mx1.redhat.com Received: from mx3-rdu2.redhat.com (HELO mx1.redhat.com) (66.187.233.73) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 12 Sep 2018 15:26:56 +0000 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3953C8575F; Wed, 12 Sep 2018 15:26:54 +0000 (UTC) Received: from [127.0.0.1] (ovpn04.gateway.prod.ext.ams2.redhat.com [10.39.146.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id 550D72157F49; Wed, 12 Sep 2018 15:26:50 +0000 (UTC) Subject: Re: [Buildroot] [PATCH 2/2] package/gdb: use stat() privided by the system To: Sergio Durigan Junior References: <20180909163750.14196-1-romain.naour@gmail.com> <20180909163750.14196-2-romain.naour@gmail.com> <20180910174900.0b9f4133@windsurf> <20180910224128.GT1878@brightrain.aerifal.cx> <87lg88oolv.fsf@redhat.com> <13772de6-1197-4182-e13f-3b4f27dfa22d@redhat.com> <87d0tjopx5.fsf@redhat.com> Cc: Rich Felker , Romain Naour , Thomas Petazzoni , Romain Naour , buildroot@buildroot.org, gdb-patches@sourceware.org From: Pedro Alves Message-ID: Date: Wed, 12 Sep 2018 15:26:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <87d0tjopx5.fsf@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2018-09/txt/msg00363.txt.bz2 On 09/11/2018 07:21 PM, Sergio Durigan Junior wrote: > On Tuesday, September 11 2018, Pedro Alves wrote: > >> On 09/11/2018 01:38 AM, Sergio Durigan Junior wrote: >> >>> This is happening because, before the commit mentioned above, >>> 'common-utils.c' (which gets transformed into 'common-utils-ipa.c' >>> during the gdbserver build) wasn't calling 'stat'. It doesn't seem like >>> a regression; it seems like a hidden problem that was uncovered by the >>> need of 'stat'. >>> >>> I don't know why this problem is manifesting only when compiling IPA, >>> and not when compiling 'common-utils.c' during GDB's/gdbserver's build. >> >> Because the IPA doesn't link with gnulib. And the answer to that wouldn't >> be as simple as "just link it in", because the IPA objects are supposed >> to be compiled with -fPIC and -fvisibility=hidden. So we'd need a third >> build of gnulib for the IPA. > > That explains it. It seems strange to me that we still include the > gnulib headers when compiling IPA; I confess I just assumed IPA was > linking with gnulib because of this. In order _not_ to include the gnulib headers, that would mean that we'd be OK with going back to making sure we do any necessary portability autoconf/#ifdefery ourselves in all of common and gdbserver code that is used by the IPA, which doesn't sound very appealing to me. I'd think it better / simpler maintenance-wise going forward, to work in the direction of linking with gnulib if/when we find a need. The IPA has so few dependencies by design that in practice just using the headers should be fine, with gnulib ironing-out any header-only portability issues. It's quite likely that a port that can use the IPA won't really need any gnu_foo replacement function. And if it does, then it should be better to use gnulib's replacements instead of duplicating what gnulib already does, I'd think. > >> It doesn't seem like this code that calls stat (is_regular_file?) is >> useful for the IPA, so a quicker/simpler fix would be to simply move >> that function out of common-utils.c into some other file that is not >> shared with the IPA. > > It's not useful for IPA; it could be moved to common/filestuff.c, for > example. Right. > But IMHO, we should probably have an explicit file just for > IPA, because otherwise we'll forget about this restriction and re-add > some 'stat' calls to common-utils.c. I'm afraid I don't understand what you mean here. Thanks, Pedro Alves