This is the mail archive of the libffi-discuss@sourceware.org mailing list for the libffi 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]

[patch] move FFI_MMAP_EXEC_WRIT to configure. was Re: PATCH: Fix 64-bit libffi testsuite on Solaris 10+ (PR libffi/40700)


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.

Attachment: ffi_mmap_exec_writ.diff
Description: Text document


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