[Mesa-dev] [PATCH] mesa/dlopen: use HAVE_DLOPEN instead of _GNU_SOURCE

Tapani Pälli tapani.palli at intel.com
Thu Aug 16 23:38:18 PDT 2012


On 08/16/2012 09:15 PM, Matt Turner wrote:
> On Thu, Aug 16, 2012 at 3:59 AM, Tapani Pälli <tapani.palli at intel.com> wrote:
>> Patches changes mesa to use 'HAVE_DLOPEN' defined by configure and Android.mk
>> instead of _GNU_SOURCE for detecting dlopen capability. This makes dlopen to
>> work also on Android where _GNU_SOURCE is not defined.
>>
>> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
>> ---
>>  Android.common.mk      | 4 +++-
>>  configure.ac           | 5 +++--
>>  src/mesa/main/dlopen.c | 8 ++++----
>>  3 files changed, 10 insertions(+), 7 deletions(-)
>>
>> diff --git a/Android.common.mk b/Android.common.mk
>> index e8b9006..1e9f040 100644
>> --- a/Android.common.mk
>> +++ b/Android.common.mk
>> @@ -47,7 +47,9 @@ LOCAL_CFLAGS += \
>>  ifeq ($(strip $(MESA_ENABLE_ASM)),true)
>>  ifeq ($(TARGET_ARCH),x86)
>>  LOCAL_CFLAGS += \
>> -       -DUSE_X86_ASM
>> +       -DUSE_X86_ASM \
>> +       -DHAVE_DLOPEN \
>> +
>>  endif
>>  endif
>>
>> diff --git a/configure.ac b/configure.ac
>> index 0329bad..5174280 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -503,8 +503,9 @@ MESA_PIC_FLAGS
>>
>>  dnl Check to see if dlopen is in default libraries (like Solaris, which
>>  dnl has it in libc), or if libdl is needed to get it.
>> -AC_CHECK_FUNC([dlopen], [],
>> -    [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
>> +AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
>> +    [AC_CHECK_LIB([dl], [dlopen],
>> +       [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
>>  AC_SUBST([DLOPEN_LIBS])
>>
>>  dnl See if posix_memalign is available
>> diff --git a/src/mesa/main/dlopen.c b/src/mesa/main/dlopen.c
>> index 57a3329..30fcd1d 100644
>> --- a/src/mesa/main/dlopen.c
>> +++ b/src/mesa/main/dlopen.c
>> @@ -31,7 +31,7 @@
>>  #include "compiler.h"
>>  #include "dlopen.h"
>>
>> -#if defined(_GNU_SOURCE) && !defined(__MINGW32__) && !defined(__blrts)
>> +#if defined(HAVE_DLOPEN) && !defined(__MINGW32__) && !defined(__blrts)
> 
> I imagine that __MINGW32__ and __blrts (whatever that is) are
> special-cased because they define _GNU_SOURCE, but don't have dlopen.
> It'd probably be okay to simplify that to just #if
> defined(HAVE_DLOPEN) and let configure.ac decide if dlopen is
> available.

I don't think that mingw32 build has _GNU_SOURCE defined, check the
conditions in dlclose() for example, there the current assumption is
that they are mutually exclusive.


> Otherwise, seems reasonable.
> 
> Acked-by: Matt Turner <mattst88 at gmail.com>
> 
> (send an updated patch and I'll commit it for you)
> 


-- 

// Tapani


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 554 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20120817/d9b57fbb/attachment.pgp>


More information about the mesa-dev mailing list