Hello Andrew,

unfortunately you missed one function passed to qsort.

Please, apply the appended patch
https://github.com/xypron/glpk/commit/f6afa4d6645868b8369c757debe8bc8663ec9c7c

Best regards

Heinrich Schuchardt

On 01/08/2017 04:14 PM, Andrew Makhorin wrote:
> Hi Heinrich,
> 
> Thank you for your efforts.
> 
>> for Windows 32 two different calling conventions are used: __cdecl and
>> __stdcall.
>>
>> To use GLPK in conjunction with 32bit LibreOffice (or OpenOffice) Basic
>> it is necessary to compile the GLPK library with __stdcall.
>>
>> Compilation with __stdcall can be achieved by using the /Gz compiler
>> option for Visual Studio Express C++.
>>
>> Unfortunately this is not enough. All functions passed to qsort must use
>> the __cdecl calling convention.
> 
> I'd like just to know why MSVC developers didn't provide a stdcall
> version of the C lib. 
> 
>>
>> On Github I have set up a repository with a patched GLPK 4.60 which
>> allows both compiling with __cdecl and with __stdcall:
>> https://github.com/xypron/glpk/tree/glpk-4.60-stdcall
>>
>> The essential patch is
>> https://github.com/xypron/glpk/commit/471b8ee233da57391b0f4401380c0405f7ab2455
>>
>> It adds a symbol CDECL that is defined in config.h and applied to the
>> relevant comparison functions.
>>
>> I have also added a Makefile and build batch file but these are not
>> essential.
>>
>> Could you, please, consider adding this CDECL symbol to GLPK 4.61.
> 
> Done. Please see
> http://sourceforge.net/projects/noumenon/files/tmp/
> (Note that this is *not* an official release.)
> 
> To avoid defining some macros (i.e. CDECL) on compiling glpk on a
> platform other than GNU/Linux and MS Windows I made the changes in the
> following way:
> 
> #ifndef __WOE__
> int foo(...
> #else
> int __cdecl foo(...
> #endif
> 
> It is always possible to define __cdecl as an empty token sequence, so
> there should be no problem I hope.
> 
> Please check the package with VC10. (I've got only VC9.)
> 
> 
> Best regards,
> 
> Andrew Makhorin
> 
> 

From f6afa4d6645868b8369c757debe8bc8663ec9c7c Mon Sep 17 00:00:00 2001
From: Heinrich Schuchardt <[email protected]>
Date: Sun, 8 Jan 2017 16:37:27 +0100
Subject: [PATCH 1/1] spychuzc.c: add missing __cdecl

Signed-off-by: Heinrich Schuchardt <[email protected]>
---
 src/simplex/spychuzc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/simplex/spychuzc.c b/src/simplex/spychuzc.c
index 27a4924..e320f8f 100644
--- a/src/simplex/spychuzc.c
+++ b/src/simplex/spychuzc.c
@@ -501,7 +501,11 @@ int spy_ls_eval_bp(SPXLP *lp, const double d[/*1+n-m*/],
 *  On exit the routine also replaces the parameter slope with a new
 *  value that corresponds to the new last break-point bp[num1]. */
 
+#ifndef __WOE__
 static int fcmp(const void *v1, const void *v2)
+#else
+static int __cdecl fcmp(const void *v1, const void *v2)
+#endif
 {     const SPYBP *p1 = v1, *p2 = v2;
       if (p1->teta < p2->teta)
          return -1;
-- 
2.11.0

_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to