X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Wed, 26 Sep 2007 10:23:57 -0400 (EDT) From: Igor Peshansky Reply-To: cygwin AT cygwin DOT com To: Boyd Edmondson cc: cygwin AT cygwin DOT com Subject: Re: MATLAB mexFunction() with Cygwin GCC Windows In-Reply-To: <7C82AE18E63BBF46BFAC6364E1E4CA591087EE@nebulasoftware1.NebulaSoftware.com> Message-ID: References: <7C82AE18E63BBF46BFAC6364E1E4CA591087EE AT nebulasoftware1 DOT NebulaSoftware DOT com> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-641078858-1190816637=:16844" Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com ---559023410-641078858-1190816637=:16844 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: 8BIT On Wed, 26 Sep 2007, Boyd Edmondson wrote: > I have successfully built/linked MATLAB mex files on Windows using GCC > in Cygwin.  Unfortunately, it has a runtime error.  It appears the error > is due to mismatched calling coventions for parameter passing.  The > MATLAB interpreter successfully invokes the mexFunction() in my shared > library (.mexw32), but the passed parameters are "corrupted". > > I've tried GCC's "attribute" to set the mexFunction() to "cdecl", > "stdcall", and "fastcall", but still no luck. > > Anyone know the solution? > > Details follow: > > MATLAB mexopts.bat > ================= > [snip] > set COMPILER=gcc > set COMPFLAGS=-mno-cygwin -D_WIN32 -shared -DMATLAB_MEX_FILE -Wall -c -msse3 -I"%ProgramFiles%\Pthreads\include" -I"%ProgramFiles%\Verasonics\Hal\Hal C\Includes" -o%MEX_NAME%.obj ^^^^^^^^^^^ > set LINKER=gcc > set LINKFLAGS=-mno-cygwin -D_WIN32 -shared -DMATLAB_MEX_FILE -nostartfiles -L"%ProgramFiles%\Verasonics\Hal\Hal C\Shared Libraries" -lverasonicshalwindows -L"%ProgramFiles%\MATLAB\R2007a\bin\win32" -lmat -lmex -lmx ^^^^^^^^^^^ See the underlined portions above. You're not using the Cygwin gcc, you're really using the MinGW gcc that understands Cygwin paths. So you're better off asking on the MinGW list. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com ZZZzz /,`.-'`' -. ;-;;,_ Igor Peshansky, Ph.D. (name changed!) |,4- ) )-,_. ,\ ( `'-' old name: Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! Belief can be manipulated. Only knowledge is dangerous. -- Frank Herbert ---559023410-641078858-1190816637=:16844 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ---559023410-641078858-1190816637=:16844--