From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17997 invoked by alias); 27 Nov 2012 12:17:01 -0000 Received: (qmail 17983 invoked by uid 22791); 27 Nov 2012 12:16:59 -0000 X-SWARE-Spam-Status: No, hits=-4.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_DL,TW_FC X-Spam-Check-By: sourceware.org Received: from mail-qa0-f48.google.com (HELO mail-qa0-f48.google.com) (209.85.216.48) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 27 Nov 2012 12:16:54 +0000 Received: by mail-qa0-f48.google.com with SMTP id s11so4693210qaa.0 for ; Tue, 27 Nov 2012 04:16:54 -0800 (PST) MIME-Version: 1.0 Received: by 10.49.118.38 with SMTP id kj6mr17698933qeb.53.1354018614030; Tue, 27 Nov 2012 04:16:54 -0800 (PST) Received: by 10.224.142.82 with HTTP; Tue, 27 Nov 2012 04:16:53 -0800 (PST) In-Reply-To: References: <20121127081142.GA3581@adacore.com> Date: Tue, 27 Nov 2012 12:17:00 -0000 Message-ID: Subject: Re: [PATCH] Fix libtool.m4 dlopen lookup for mingw From: Pavel Chupin To: Kai Tietz Cc: Joel Brobecker , gdb-patches@sourceware.org, "H.J. Lu" Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes 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 X-SW-Source: 2012-11/txt/msg00722.txt.bz2 On Tue, Nov 27, 2012 at 12:16 PM, Kai Tietz wrote: > 2012/11/27 Joel Brobecker : >> Hi Pavel, >> >>> Attached patch removes mingw from special cases of dlopen lookup. It >>> allows dlopen to be found later in libdl and have it added properly as >>> -ldl in bfd and sim builds. >>> >>> To reproduce the problem: >>> >>> ../configure --enable-plugins --target=arm-linux-android >>> --host=i586-pc-mingw32msvc --build=i386-linux-gnu >>> make >>> >>> Error: >>> ../../bfd/libbfd.a(plugin.o): In function `try_load_plugin': >>> /tmp/gdb/BUILD/bfd/../../bfd/plugin.c:170: undefined reference to `dlopen' >>> /tmp/gdb/BUILD/bfd/../../bfd/plugin.c:177: undefined reference to `dlsym' >>> /tmp/gdb/BUILD/bfd/../../bfd/plugin.c:173: undefined reference to `dlerror' >>> >>> ChangeLog: >>> >>> 2012-11-27 Pavel Chupin >>> >>> Fix libtool.m4 libdl lookup for mingw >>> * libtool.m4: Remove mingw from special case of dlopen lookup >>> * bfd/configure: Regenerate. >>> * sim/arm/configure: Regenerate. >>> * sim/avr/configure: Regenerate. >>> * sim/bfin/configure: Regenerate. >>> * sim/common/configure: Regenerate. >>> * sim/cr16/configure: Regenerate. >>> * sim/cris/configure: Regenerate. >>> * sim/d10v/configure: Regenerate. >>> * sim/erc32/configure: Regenerate. >>> * sim/frv/configure: Regenerate. >>> * sim/h8300/configure: Regenerate. >>> * sim/iq2000/configure: Regenerate. >>> * sim/lm32/configure: Regenerate. >>> * sim/m32c/configure: Regenerate. >>> * sim/m32r/configure: Regenerate. >>> * sim/m68hc11/configure: Regenerate. >>> * sim/mcore/configure: Regenerate. >>> * sim/microblaze/configure: Regenerate. >>> * sim/mips/configure: Regenerate. >>> * sim/mn10300/configure: Regenerate. >>> * sim/moxie/configure: Regenerate. >>> * sim/rl78/configure: Regenerate. >>> * sim/rx/configure: Regenerate. >>> * sim/sh/configure: Regenerate. >>> * sim/sh64/configure: Regenerate. >>> * sim/v850/configure: Regenerate. >> >> Thanks for sending this patch. >> >> Changes to the root directory are controled by the GCC developers, >> so you will need to send your patch there for approval. But looking >> at your patch, I am wondering whether it is actually right. I have >> two reasons for questioning your patch: >> >> - I don't think MinGW actually provides libdl, at least not by default. >> Your change would probably break the build for those who do not >> have the dlfcn extension installed; > > Right, by default there is no such library present. Therefore mingw > can't dependent on the presence of such a library. > >> - Looking at bfd/plugin.c, there are implementations of these >> dlfcn functions provided by that file for Windows. >> These implementations are guarded by: >> >> #if !defined (HAVE_DLFCN_H) && defined (HAVE_WINDOWS_H) >> >> I am guessing that your MinGW install has dlfcn.h. Perhaps the problem >> would need to be fixed in bfd instead (binutils AT sourceware dot org). > > Yes, I assume that a fix of the issue you had should be addressed in > binutils instead. > > Regards, > Kai Thanks for review. You are right. I've removed mingw-dlfcn on my machine and dlopen is picked up from plugin.c so issue is gone. It seems to fix both cases need to add check for dlfcn.h for mingw and if present use dlopen from libdl, otherwise use LoadLibrary version. Looks like libtool.m4 is the right place to do such sort of checks. What do you think? -- Pavel Chupin Intel Corporation