From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17410 invoked by alias); 22 Jul 2014 09:27:49 -0000 Mailing-List: contact libffi-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libffi-discuss-owner@sourceware.org Received: (qmail 17353 invoked by uid 89); 22 Jul 2014 09:27:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: e06smtp15.uk.ibm.com Received: from e06smtp15.uk.ibm.com (HELO e06smtp15.uk.ibm.com) (195.75.94.111) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Tue, 22 Jul 2014 09:27:42 +0000 Received: from /spool/local by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 22 Jul 2014 10:27:38 +0100 Received: from d06dlp02.portsmouth.uk.ibm.com (9.149.20.14) by e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 22 Jul 2014 10:27:36 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id 49C842190045 for ; Tue, 22 Jul 2014 10:27:21 +0100 (BST) Received: from d06av08.portsmouth.uk.ibm.com (d06av08.portsmouth.uk.ibm.com [9.149.37.249]) by b06cxnps4076.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s6M9RZ5J36372662 for ; Tue, 22 Jul 2014 09:27:35 GMT Received: from d06av08.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av08.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s6M9RZoA004901 for ; Tue, 22 Jul 2014 03:27:35 -0600 Received: from bl3ahm9f.de.ibm.com (dyn-9-152-212-179.boeblingen.de.ibm.com [9.152.212.179]) by d06av08.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s6M9RZdN004888 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 03:27:35 -0600 Received: from dvogt by bl3ahm9f.de.ibm.com with local (Exim 4.76) (envelope-from ) id 1X9WMB-0007YK-3G; Tue, 22 Jul 2014 11:27:35 +0200 Date: Tue, 22 Jul 2014 09:27:00 -0000 From: Dominik Vogt To: libffi-discuss@sourceware.org Subject: [RFC][PATCH 0/3] Complex type support (FFI_TYPE_COMPLEX) Message-ID: <20140722092734.GA23937@linux.vnet.ibm.com> Reply-To: vogt@linux.vnet.ibm.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14072209-0342-0000-0000-000000838353 X-IsSubscribed: yes X-SW-Source: 2014/txt/msg00071.txt.bz2 The following series of patches introduces a framework for C complex types (FFI_TYPE_COMPLEX) and support for complex types on s390/s390x. For now, an architecture that supports complex types has to define FFI_TARGET_HAS_COMPLEX_TYPE to activate the support. This can be changed in the future when most architecture have implemented it so that this is the default. The patch does not address complex support in java_raw_api.c (as there is no documentation how this interface is supposed to work). Complex support in libffi is necessary to support the complex types with the reflection interface of the libgo of the Go programming language (gccgo). * Patch 1/3: Somewhat reduce the macro hell. This is a general cleanup patch that reduces the complexity of some preprocessor macros. It is not strictly necessary, but it simplifies the following patch. * Patch 2/3: FFI_TYPE_COMPLEX framework The patch introducing the FFI_TYPE_COMPLEX framework, including documentation and test cases. Note that the patch introduces predefined ffi_types for complex float, complex double and complex longdouble but also supports the non-standard complex types that gcc supports (the ffi_types have to be defined manually for them). (See documentation for details.) * Patch 3/3: S390: Implement FFI_TYPE_COMPLEX A simple patch that implements the s390-abi for complex types. Ciao Dominik ^_^ ^_^ -- Dominik Vogt IBM Germany