This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix libtool.m4 dlopen lookup for mingw


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  <pavel.v.chupin@intel.com>
> 
>         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;

  - 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).

-- 
Joel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]