From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 130069 invoked by alias); 10 Sep 2018 22:41:45 -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 130050 invoked by uid 89); 10 Sep 2018 22:41:44 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=0.1 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RDNS_DYNAMIC,TVD_RCVD_IP autolearn=no version=3.3.2 spammy= X-HELO: brightrain.aerifal.cx Received: from 216-12-86-13.cv.mvl.ntelos.net (HELO brightrain.aerifal.cx) (216.12.86.13) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 10 Sep 2018 22:41:42 +0000 Received: from dalias by brightrain.aerifal.cx with local (Exim 3.15 #2) id 1fzUs4-0001yA-00; Mon, 10 Sep 2018 22:41:28 +0000 Date: Mon, 10 Sep 2018 22:41:00 -0000 From: Rich Felker To: Romain Naour Cc: Thomas Petazzoni , Romain Naour , buildroot@buildroot.org, gdb-patches@sourceware.org Subject: Re: [Buildroot] [PATCH 2/2] package/gdb: use stat() privided by the system Message-ID: <20180910224128.GT1878@brightrain.aerifal.cx> References: <20180909163750.14196-1-romain.naour@gmail.com> <20180909163750.14196-2-romain.naour@gmail.com> <20180910174900.0b9f4133@windsurf> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SW-Source: 2018-09/txt/msg00305.txt.bz2 On Mon, Sep 10, 2018 at 11:20:58PM +0200, Romain Naour wrote: > Hi Thomas, > > Adding the gdb-patches ml and Rich Felker in Cc. > > Le 10/09/2018 à 17:49, Thomas Petazzoni a écrit : > > Hello, > > > > On Sun, 9 Sep 2018 18:37:50 +0200, Romain Naour wrote: > >> Use the same workaround [1] as gnulib use to get the original > >> definition of stat. Otherwise with musl toolchains, gnulib try to use > >> rpl_stat which is not defined. > >> > >> Fixes: > >> https://gitlab.com/free-electrons/toolchains-builder/-/jobs/95552308 > >> > >> [1] http://git.savannah.gnu.org/cgit/gnulib.git/commit/lib/stat.c?id=c9d72f69bd201a1ab31464d91f234ea1817fe0e1 > >> > >> Signed-off-by: Romain Naour > >> Cc: Thomas Petazzoni > > > > I am confused by this patch. Why do we need that? The on > > my system doesn't test __need_system_sys_stat_h. Is this a workaround > > to force gnulib to not provide its own stat() replacement ? > > > > Why is gnulib misbehaving here ? We have tons of gnulib related hacks > > in gdb.mk, and this start to pile up quite a bit. Why do we have all > > those gnulib issues with gdb ? Why not with tons of other packages that > > also use gnulib ? > > There are too many questions here, I can't answer. > There are some (old) hack with coreutils like gl_cv_func_gettimeofday_clobber > which is in Buildroot since a long time. I can't tell for every gnulib based > packages... > > > > >> +Use the same workaround [1] as gnulib use to get the original > >> +definition of stat. Otherwise with musl toolchains, gnulib try to use > >> +rpl_stat which is not defined. > > > > Well rpl_stat() is supposed to be implemented by gnulib. So basically > > gnulib tells gdb: please don't use stat() but my rpl_stat() wrapper, > > but then gnulib doesn't provide rpl_stat(). > > > > Any idea what's happening here ? > > As far I can tell, the regression has been introduced by this commit: > https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=2441702a72f324e41a1624dc042b334f375e2d81 I'm not aware of all the context, but it looks like different source files disagree on whether gnulib has replaced stat or not -- the gnulib source file thinks it hasn't, so the rpl_stat function isn't defined, but gdb's common-utils-ipa.c file (or rather the gnulib stat.h included into it?) thinks it has been replaced and is trying to use the replacement. This is likely the result of an incorrect hack somewhere. Do you know if it happens with upstream gdb and musl or just in buildroot's package? Rich