[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