This is the mail archive of the
libffi-discuss@sourceware.org
mailing list for the libffi project.
Re: [patch] move FFI_MMAP_EXEC_WRIT to configure. was Re: PATCH: Fix 64-bit libffi testsuite on Solaris 10+ (PR libffi/40700)
On 12/22/2009 08:37 PM, Andreas Tobler wrote:
> On 20.12.09 09:12, Andreas Tobler wrote:
>> On 20.12.09 03:21, Gerald Pfeifer wrote:
>>> On Thu, 10 Dec 2009, Andreas Tobler wrote:
>>>> Anyway, there are other architectures which do have the same issue.
>>>> FreeBSD,
>>>> OpenBSD, apple-darwin10. We 'solved' this with adding the snippet
>>>> below in the
>>>> configure.ac (from the libffi sources, not in the gcc repo yet.):
>>>>
>>>> case "$target" in
>>>> *-apple-darwin10* | *-*-freebsd* | *-*-openbsd*)
>>>> AC_DEFINE(FFI_MMAP_EXEC_WRIT, 1,
>>>> [Cannot use malloc on this target, so, we revert to
>>>> alternative means])
>>>> ;;
>>>>
>>>>
>>>> So, my question, shall we move the three remaining OS variants into the
>>>> closures.c file. Or should we move the solaris/x86 part from the
>>>> closures.c
>>>> file into the configure.ac part?
>>>
>>> Are you planning on addressing this for the three platforms (Darwin,
>>> FreeBSD, OpenBSD) for GCC 4.5? Or do we have a different fix in the
>>> GCC tree for the time being?
>>
>> Yes, it's planned. I should come up soon with a proposal.
>
> Here it is.
>
> The patch is against gcc trunk.
>
> For standalone libffi the closures.c part can be ignored.
>
> I tested it under the given targets except darwin10, no installation yet.
>
> (sparc64-*-freebsd9, amd64/x86_64-*freebsd9, amd64/x86_64-*-openbsd4.6,
> i386-pc-solaris2.11(multilib), i?86-*-freebsd9,)
>
> The tests were done within the gcc libffi and with libffi standalone
> (3.0.9rc3) tree.
>
> On OpenBSD I only tested with the standalone libffi.
>
> The remaining part is the snippet from src/closures.c I want to move to
> the configure part: # if defined(X86_WIN32) || defined(X86_WIN64)
>
> But here I lack the test environment, any volunteers?
> I can hack an untested patch for these targets.
>
> Ok for gcc trunk?
>
> Thanks,
> Andreas
>
> 2009-12-22 Andreas Tobler <a.tobler@schweiz.org>
>
> * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
> * configure: Regenerate.
> * fficonfig.h.in: Likewise.
> * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
> Solaris/x86.
This looks good to me. I can't think of any reason why not to do this.
Andrew.