[csw-devel] SF.net SVN: gar:[9603] csw/mgar/pkg/libffi/trunk

hson at users.sourceforge.net hson at users.sourceforge.net
Sat Apr 10 08:22:19 CEST 2010


Revision: 9603
          http://gar.svn.sourceforge.net/gar/?rev=9603&view=rev
Author:   hson
Date:     2010-04-10 06:22:19 +0000 (Sat, 10 Apr 2010)

Log Message:
-----------
libffi: Found a way to build on amd64 using SOS12

Modified Paths:
--------------
    csw/mgar/pkg/libffi/trunk/Makefile
    csw/mgar/pkg/libffi/trunk/checksums

Added Paths:
-----------
    csw/mgar/pkg/libffi/trunk/files/ffi64.c.patch

Modified: csw/mgar/pkg/libffi/trunk/Makefile
===================================================================
--- csw/mgar/pkg/libffi/trunk/Makefile	2010-04-10 03:04:22 UTC (rev 9602)
+++ csw/mgar/pkg/libffi/trunk/Makefile	2010-04-10 06:22:19 UTC (rev 9603)
@@ -17,10 +17,14 @@
 SPKG_SOURCEURL = http://sourceware.org/libffi/
 DISTFILES  = $(GARNAME)-$(GARVERSION).tar.gz
 # Not needed unless using SOS compiler
-#PATCHFILES += Makefile.in.patch
+PATCHFILES += Makefile.in.patch
 # Not really needed for build, but for SOS compiler using libffi
 PATCHFILES += ffi_common.h.patch
 PATCHFILES += ffi_target.h.patch
+# Fix needed for amd64 using SOS compiler
+# found at http://software.intel.com/en-us/forums/showthread.php?t=56652
+# originally for icc, but at least get the stuff to compile
+PATCHFILES += ffi64.c.patch
 
 PACKAGES = CSWlibffi CSWlibffidevel
 CATALOGNAME_CSWlibffi = libffi
@@ -34,19 +38,17 @@
 LICENSE = LICENSE
 
 RUNTIME_DEP_PKGS_CSWlibffidevel += CSWlibffi
-RUNTIME_DEP_PKGS_CSWlibffi = CSWgcc4corert
 
 CHECKPKG_OVERRIDES_CSWlibffidevel += surplus-dependency|CSWlibffi
 
 UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz
 
-GARCOMPILER = GCC4
 BUILD64 = 1
 
 CONFIGURE_ARGS  = $(DIRPATHS)
 
-# Tests fail since they are written for gcc only if using SOS12 compiler
-# But they also fails on 64-bit
+# Tests fail since they are written for gcc only 
+# But they also fails on 64-bit even when using gcc
 #TEST_TARGET = check
 TEST_TARGET = 
 

Modified: csw/mgar/pkg/libffi/trunk/checksums
===================================================================
--- csw/mgar/pkg/libffi/trunk/checksums	2010-04-10 03:04:22 UTC (rev 9602)
+++ csw/mgar/pkg/libffi/trunk/checksums	2010-04-10 06:22:19 UTC (rev 9603)
@@ -1,3 +1,5 @@
+08153de5eadceb2e22ee24083d13dc4d  Makefile.in.patch
+76eebb10e449d11374c09661d448ca99  ffi64.c.patch
 c280f263ff0eab3248ea8abd9d0be21c  ffi_common.h.patch
 0e72bc1c6b8f797377f502e36b8df294  ffi_target.h.patch
 1f300a7a7f975d4046f51c3022fa5ff1  libffi-3.0.9.tar.gz

Added: csw/mgar/pkg/libffi/trunk/files/ffi64.c.patch
===================================================================
--- csw/mgar/pkg/libffi/trunk/files/ffi64.c.patch	                        (rev 0)
+++ csw/mgar/pkg/libffi/trunk/files/ffi64.c.patch	2010-04-10 06:22:19 UTC (rev 9603)
@@ -0,0 +1,34 @@
+--- libffi-3.0.9/src/x86/ffi64.c.orig	2009-12-29 16:22:26.000000000 +0100
++++ libffi-3.0.9/src/x86/ffi64.c	2010-04-09 23:48:55.928436791 +0200
+@@ -36,6 +36,10 @@
+ #define MAX_GPR_REGS 6
+ #define MAX_SSE_REGS 8
+ 
++#if defined(__SUNPRO_C)
++typedef struct { int64_t m[2]; } __int128_t;
++#endif
++
+ struct register_args
+ {
+   /* Registers for argument passing.  */
+@@ -469,10 +473,20 @@
+ 		  break;
+ 		case X86_64_SSE_CLASS:
+ 		case X86_64_SSEDF_CLASS:
++#if defined(__SUNPRO_C)
++		  reg_args->sse[ssecount++].m[0] = *(UINT64 *) a;
++		  reg_args->sse[ssecount++].m[1] = 0;
++#else
+ 		  reg_args->sse[ssecount++] = *(UINT64 *) a;
++#endif
+ 		  break;
+ 		case X86_64_SSESF_CLASS:
++#if defined(__SUNPRO_C)
++		  reg_args->sse[ssecount++].m[0] = *(UINT32 *) a;
++		  reg_args->sse[ssecount++].m[1] = 0;
++#else
+ 		  reg_args->sse[ssecount++] = *(UINT32 *) a;
++#endif
+ 		  break;
+ 		default:
+ 		  abort();


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.


More information about the devel mailing list