octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How can I make patch for mxe-build ? (was Re: Windows Octave compila


From: Tatsuro MATSUOKA
Subject: Re: How can I make patch for mxe-build ? (was Re: Windows Octave compilation)
Date: Sat, 19 Jul 2014 13:38:05 +0900 (JST)

----- Original Message -----

> From: John D 
> To: 'Tatsuro MATSUOKA' ; octave-maintainers
> Cc: 
> Date: 2014/7/18, Fri 22:39
> Subject: RE: How can I make patch for mxe-build ? (was Re: Windows Octave 
> compilation)
> -----Original Message-----
> From: Tatsuro MATSUOKA 
> Sent: Thursday, July 17, 2014 10:36 PM
> To: John Donoghue; address@hidden
> Subject: Re: How can I make patch for mxe-build ? (was Re: Windows Octave
> compilation)
> 
> ----- Original Message -----
> 
>>  From: Tatsuro MATSUOKA
>>  To: John Donoghue ; "octave-maintainers
>>  Cc: John W. Eaton ; PhilipNienhuis
>>  Date: 2014/7/16, Wed 11:36
>>  Subject: Re: How can I make patch for mxe-build ? (was Re: Windows 
>>  Octave compilation)
>> 
>> 
>> 
>>>   From: John Donoghue
>>>   To: Tatsuro MATSUOKA ; "address@hidden"
>>>   Cc: John W. Eaton ; PhilipNienhuis
>>>   Date: 2014/7/16, Wed 10:10
>>>   Subject: Re: How can I make patch for mxe-build ? (was Re: Windows 
>>>  Octave
>>  compilation)
>>> 
>>>   On 07/15/2014 08:42 PM, Tatsuro MATSUOKA wrote:
>>>>    I have posted:
>>>> 
>>> 
>>  http://octave.1599824.n4.nabble.com/Re-Windows-Octave-compilation-td46
>>  65267i40.html#a4665493
>>>> 
>>>> 
>>>>>>    Failed to build package pstoedit!
>>>>>>    
> ------------------------------------------------------------
>>>>>>    make[3]: *** [libpstoedit_la-dynload.lo] Error 1
>>>>>>    make[3]: Leaving directory
>>>>>>     
>>>>> 
>>> 
>> 
> `/e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pstoedit
> -3.62/.build/src'
>>>>>>    make[2]: *** [install-recursive] Error 1
>>>>>>    make[2]: Leaving directory
>>>>>>     
>>>>> 
>>> 
>> 
> `/e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pstoedit
> -3.62/.build'
>>>>>>    make[1]: *** [build-only-pstoedit] Error 2
>>>>>>    make[1]: Leaving directory
>>>>>>    
> `/e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave'
>>>>>>    real    8m50.839s
>>>>>>    user    0m20.291s
>>>>>>    sys     1m49.394s
>>>>>>    
> ------------------------------------------------------------
>>>>>>    [log]
>>>>>      
>>  /e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/log/pstoedit
>>>>>>     
>>>>>>    The log file is attached.
>>>>>>    The origin of the error, very MS-win like functions, 
> strcpy_s,
>>  and
>>>>>    strcat_s.
>>>>>>    These can be replaced by strncpy and  strncat, 
> respectively.
>>>>>>     
>>>>>    Sorry I have mislead.  MinGW-w64 (32 and 64 bit) has a 
> definition
>>  verry
>>>   MS like
>>>>>    secure functions like (function name)_s.  The definition of 
> in
>>  pstoedit
>>>   and
>>>>>    MinGW-w64 seems to be inconsistent.
>>>>    To overcome this issue, the patch is needed.  In src directory, 
>>>>  there
>>  are
>>>   patch files related to each dependency exist.  For example, for 
>>>  gnuplot,  gnuplot-1-fixes.patch and gnuplot-2-win64.patch exist and 
>>>  applied them
>>  before
>>>   the build process.  How can I make such patch for pstoedit? In the 
>>>  each mk
>>  file,
>>>   patch file does not refer.
>>>>    Perhaps the procedure to apply is described elsewhere. How can I 
>>>>  find
>>  this?
>>>> 
>>>>    Regards
>>>> 
>>>>    Tatsuro
>>>> 
>>>> 
>>> 
>>> 
>>>   Not sure if this will work as I dont have the issue on my version of  
>>>  mingw, however try this patch in the mxe-octave/src directory.
>> 
>> 
>>  Thank you for your explanation for patch and supply your patch to
> pstoedit.
>> 
>>  The patch is almost the same that I planned to apply.
>> 
>>  However, the patch does not enough for my case.
>> 
>>  Failed to build package pstoedit!
>>  ------------------------------------------------------------
>>  make[3]: *** [libpstoedit_la-dynload.lo] Error 1
>>  make[3]: Leaving directory
>> 
> `/e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pstoedit
> -3.62/.build/src'
>>  make[2]: *** [install-recursive] Error 1
>>  make[2]: Leaving directory
>> 
> `/e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pstoedit
> -3.62/.build'
>>  make[1]: *** [build-only-pstoedit] Error 2
>>  make[1]: Leaving directory
>>  `/e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave'
>>  real    9m47.965s
>>  user    0m20.135s
>>  sys     1m49.458s
>>  ------------------------------------------------------------
>>  [log]      
>>  /e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/log/pstoedit
>> 
>>  libtool: compile:  g++ -DHAVE_CONFIG_H -I. 
>>  -I/e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/p
>>  stoedit-3.62/src 
>>  -I/e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/p
>>  stoedit-3.62/othersrc/gsdllinc 
>>  -I/e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/usr/include
>>  -D_LITTLE_ENDIAN -g -O2 -DINTERNALBOOL -MT libpstoedit_la-dynload.lo 
>>  -MD -MP -MF .deps/libpstoedit_la-dynload.Tpo -c 
>>  /e/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pst
>>  oedit-3.62/src/dynload.cpp
>>   -DDLL_EXPORT -DPIC -o .libs/libpstoedit_la-dynload.o In file included 
>>  from
>> 
> e:/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pstoedit-
> 3.62/src/dynload.cpp:22:0:
>> 
> e:/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pstoedit-
> 3.62/src/cppcomp.h: 
>>  In function 'void strncpy_s(char*, size_t, const char*, size_t)':
>> 
> e:/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pstoedit-
> 3.62/src/cppcomp.h:281:87: 
>>  error: new declaration 'void strncpy_s(char*, size_t, const char*, 
>>  size_t)'
>>   static inline void strncpy_s(char * de, size_t de_size, const char *  
>>  so, size_t count)   {
>>                                                                           
>       
>>         ^
>>  In file included from 
>>  c:/mingw/i686-w64-mingw32/include/string.h:176:0,
>>                   from
>>  e:/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pst
>>  oedit-3.62/src/cppcomp.h:253,
>>                   from
>> 
> e:/usr/Tatsu/mingw32work/octave/mxe-octave/mxe-octave/tmp-pstoedit/pstoedit-
> 3.62/src/dynload.cpp:22:
>>  c:/mingw/i686-w64-mingw32/include/sec_api/string_s.h:29:27: error: 
>>  ambiguates old declaration 'errno_t strncpy_s(char*, size_t, const 
> char*,
> size_t)'
>>     _CRTIMP errno_t __cdecl strncpy_s(char *_Dst,size_t 
>>  _DstSizeInChars,const char *_Src,size_t _MaxCount);
>> 
>> 
>>  I will consider in more details.
>> 
>>  Regards
> 
> 
> For me pstoedit are able to be built with attached the patch.
> 
> Tatsuro 
> 
> --
> I doesn’t break my mingw install and works on fedora cross 32 and 64.
> Can you create a mxe-octave patch that includes the patch in the source
> directory and adds  reference to the file in dist-files.mk, and includes
> details on the addition ?
> I will then push it to the mxe-octave repo.



The patch has a problem.  
The patch forces to use implementation of MS-like secure function (function 
name)_s in MinGW-w64 compiler.
(Of course, I am using 32 bit version at present.)

However, this unable the binary to work on Windows XP since msvcrt.dll of 
windows XP does not implement 
MS-like secure function.
(I have experienced similar problem in building libcaca library which is used 
in gnuplot ver. 5 )


I tried your patch which undefine MINGW_HAS_SECURE_API Macro.

But it does not worked as expected.  I have been not able to find the reason 
why.

Therefore the patch is not better to be pushed mxe-octave.

I would like to search the another method not to use implementation of secure 
api of mingw-w64

Tatsuro



reply via email to

[Prev in Thread] Current Thread [Next in Thread]