Re: [Mingw-w64-public] MSYS2 is violating the GPL again

2014-12-09 Thread Corinna Vinschen
On Dec  8 20:27, Alexpux wrote:
> > 8 дек. 2014 г., в 17:50, Corinna Vinschen <> написал(а):
> > On Dec  8 15:12, Alexpux wrote:
> >>> 8 дек. 2014 г., в 14:27, Corinna Vinschen <> написал(а):
> >>> On Dec  8 14:01, Alexpux wrote:
>  Will update sf.net  repo today.
> >>> 
> >>> Ok.
> >> 
> >> Done.
> >>> 
> > And this is only for Cygwin.  The situation of the other upstream
> > packages isn't better.  About half of the binary packages are younger
> > than 6 month, while the latest source archives have been updated
> > 2014-06-11.
> > 
> > You're violating the GPL again in a pretty big style.  Yes, not all of
> > the affected packages are GPLed, but a lot are.  What is so complicated
> > to keep the sources up to date with the binary packages?
>  
>  I’m provide git repository with build scripts and patches that applies 
>  to sources:
>  For mingw:
>  https://github.com/Alexpux/MINGW-packages
>  
>  For msys2:
>  https://github.com/Alexpux/MSYS2-packages 
>  
> >>> 
> >>> In how far does that alleviate the problem of the GPL breach?
> >> 
> >> No problem, will upload sources soon too. Problem just in
> >> bandwidth/limited time for it.
> > 
> > I'm suffering limited bandwidth, too.  I workaround that by always
> > uploading source and binary package at once, so I'm never falling back.
> 
> All sources uploaded:
> https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/Sources

Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat


pgpA85r2mGYiP.pgp
Description: PGP signature
--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] TDM-GCC 4.9.2 released

2014-12-09 Thread K. Frank
Hi Greg!

I can attempt tp answer your question about
-fno-keep-inline-dllexport.

On Tue, Dec 9, 2014 at 1:29 AM, Greg Jung  wrote:
> Hi John,
>   If you would indulge my questions, I am intrigued by the advice re:
> "-fno-keep-inline-dllexport" flag
> because it mentions wxWidgets which I am trying to incorporate into an
> already-large program.
> Do you know what problem it addresses, is it needed to unclutter a
> namespace?

I've used -fno-keep-inline-dllexport when building Qt with mingw-w64.

The issue was that I would run out of memory when linking QtGui.dll
(or maybe QtCore.dll or maybe both).  The link process would use
in excess of 3 GB.  Running the build with -fno-keep-inline-dllexport
made in possible for me to build Qt on a 4 GB machine.  Linking the
dll was still memory intensive, but less.  I think when using
-fno-keep-inline-dllexport the linking step took 2+ GB of memory.

>From John's comment I assume something similar is going on with
wxWidgets.


Good luck.


K. Frank


> ...
> On Mon, Dec 8, 2014 at 7:41 PM, John E. / TDM  wrote:
>>
>> Greetings!
>>
>> === TDM-GCC 4.9.2 is now available! ===
>> ...
>>   * Remember to use the "-fno-keep-inline-dllexport" flag to fix memory
>> usage problems when linking DLLs with a large number of inline functions
>> (such as wxWidgets).
>> ...
>> Cheers,
>> John E. / TDM

--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] TDM-GCC 4.9.2 released

2014-12-09 Thread John E. / TDM
On 12/8/2014 11:29 PM, Greg Jung wrote:
> Hi John,
>   If you would indulge my questions, I am intrigued by the advice re: 
> "-fno-keep-inline-dllexport" flag
> because it mentions wxWidgets which I am trying to incorporate into an 
> already-large program.
> Do you know what problem it addresses, is it needed to unclutter a 
> namespace?

Hi Greg,

GCC versions before 4.5 didn't emit class member functions into DLLs if 
they were declared with the "inline" keyword. This tended not to be a 
problem, because their full definition is available and inlinable to any 
user of the class. But as of 4.5 GCC was changed to match Microsoft 
Visual C/C++ behavior by also emitting said functions into the DLL.

The more inline class member functions, the more memory it takes to link 
the DLL. wxWidgets grew big enough that when the 4.5 change came around, 
suddenly there were too many inline class member functions to fit in 
link-time memory, and the linker would fail.

The "-fno-keep-inline-dllexport" option reverts to pre-4.5 behavior by 
not emitting inline class member functions into a DLL, allowing software 
like wxWidgets (monolithic) to link successfully. The only downsides to 
using it are that it breaks Microsoft compatibility (almost always not a 
problem with C++), and that you can't take the address in the DLL of one 
of said functions (which you shouldn't be doing anyway for inlines).

> Also regarding
> TDM, how many hooks into the windows registry does it maintain?  I 
> un-installed a TDM from a previous system and was dismayed at what 
> seemed like 2,000 entries in the registry wind-down - am I 
> hallucinating that?

You are. The TDM-GCC installer intentionally avoids the registry like 
the plague. All is done through file magic. :)

-John E. / TDM

--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] TDM-GCC 4.9.2 released

2014-12-09 Thread Ruben Van Boxem
2014-12-09 14:24 GMT+01:00 John E. / TDM :

> On 12/8/2014 11:29 PM, Greg Jung wrote:
> > Hi John,
> >   If you would indulge my questions, I am intrigued by the advice re:
> > "-fno-keep-inline-dllexport" flag
> > because it mentions wxWidgets which I am trying to incorporate into an
> > already-large program.
> > Do you know what problem it addresses, is it needed to unclutter a
> > namespace?
>
> Hi Greg,
>
> GCC versions before 4.5 didn't emit class member functions into DLLs if
> they were declared with the "inline" keyword. This tended not to be a
> problem, because their full definition is available and inlinable to any
> user of the class. But as of 4.5 GCC was changed to match Microsoft
> Visual C/C++ behavior by also emitting said functions into the DLL.
>
> The more inline class member functions, the more memory it takes to link
> the DLL. wxWidgets grew big enough that when the 4.5 change came around,
> suddenly there were too many inline class member functions to fit in
> link-time memory, and the linker would fail.
>
> The "-fno-keep-inline-dllexport" option reverts to pre-4.5 behavior by
> not emitting inline class member functions into a DLL, allowing software
> like wxWidgets (monolithic) to link successfully. The only downsides to
> using it are that it breaks Microsoft compatibility (almost always not a
> problem with C++), and that you can't take the address in the DLL of one
> of said functions (which you shouldn't be doing anyway for inlines).
>

In my never-ending war on misconceptions regarding C++:
1. inline does not tell your compiler to inline. It is merely a hint and
the fact that some compilers take it as a serious hint is a coincidence.
Nothing in the C or C++ language says there is even the slightest
guarantee. The point of inline is to be able to write inline definitions of
functions, and respect the One Definition Rule. But you knew that already I
suppose ;-)
2. There is absolutely no problem in taking the address of an inline
function. It is very legal. See for example
http://stackoverflow.com/q/3318322/256138
3. I do believe this compiler option makes GCC behave in a non-standard
way, but I haven't checked that myself.

Nevertheless, since ld is too inefficient, this option was necessary to
make it work for stuff like wxWidgets (Qt also added the option to its
build).

Cheers,

Ruben


> > Also regarding
> > TDM, how many hooks into the windows registry does it maintain?  I
> > un-installed a TDM from a previous system and was dismayed at what
> > seemed like 2,000 entries in the registry wind-down - am I
> > hallucinating that?
>
> You are. The TDM-GCC installer intentionally avoids the registry like
> the plague. All is done through file magic. :)
>
> -John E. / TDM
>
>
> --
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> ___
> Mingw-w64-public mailing list
> Mingw-w64-public@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>
--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] pthread.h patch

2014-12-09 Thread Marty Plummer
Patch provided in answer to my request regarding conflicts with ruby's
pthread definitions
diff --git a/pthread.h.orig b/pthread.h
index 2029713..c488aa1 100644
--- a/pthread.h.orig
+++ b/pthread.h
@@ -68,6 +68,8 @@
 #include 
 
 #include 
+#include 
+#include 
 
 #include "pthread_compat.h"
 
@@ -414,48 +416,66 @@ intWINPTHREAD_API pthread_rwlockattr_init(pthread_rwlock
 intWINPTHREAD_API pthread_rwlockattr_setpshared(pthread_rwlockattr_t *a, int s);
 
 /* Recursive API emulation.  */
-#undef localtime_r
-#define localtime_r(_Time, _Tm)	({ struct tm *___tmp_tm;		\
-		pthread_testcancel();	\
-		___tmp_tm = localtime((_Time));\
-		if (___tmp_tm) {	\
-		  *(_Tm) = *___tmp_tm;	\
-		  ___tmp_tm = (_Tm);	\
-		}			\
-		___tmp_tm;	})
-
-#undef gmtime_r
-#define gmtime_r(_Time,_Tm)	({ struct tm *___tmp_tm;		\
-		pthread_testcancel();	\
-		___tmp_tm = gmtime((_Time)); \
-		if (___tmp_tm) {	\
-		  *(_Tm) = *___tmp_tm;	\
-		  ___tmp_tm = (_Tm);	\
-		}			\
-		___tmp_tm;	})
-
-#undef ctime_r
-#define ctime_r(_Time,_Str)	({ char *___tmp_tm;			\
-		pthread_testcancel();	\
-		___tmp_tm = ctime((_Time));  \
-		if (___tmp_tm)		\
-		 ___tmp_tm =		\
-		   strcpy((_Str),___tmp_tm); \
-		___tmp_tm;	})
-
-#undef asctime_r
-#define asctime_r(_Tm, _Buf)	({ char *___tmp_tm;			\
-		pthread_testcancel();	\
-		___tmp_tm = asctime((_Tm)); \
-		if (___tmp_tm)		\
-		 ___tmp_tm =		\
-		   strcpy((_Buf),___tmp_tm);\
-		___tmp_tm;	})
-
-#ifndef rand_r
-#define rand_r(__seed) (__seed == __seed ? rand () : rand ())
+#ifdef __GNUC__
+#define PTHREAD_ALWAYS_INLINE static inline __attribute__((always_inline))
+#else
+#define PTHREAD_ALWAYS_INLINE static
 #endif
 
+PTHREAD_ALWAYS_INLINE struct tm * localtime_r(const time_t *_Time, struct tm *_Tm){
+  struct tm *___tmp_tm;
+  pthread_testcancel();
+  ___tmp_tm = localtime(_Time);
+  if (___tmp_tm) {
+*_Tm = *___tmp_tm;
+___tmp_tm = _Tm;
+  }
+  return ___tmp_tm;
+}
+
+PTHREAD_ALWAYS_INLINE struct tm * gmtime_r(const time_t *_Time, struct tm *_Tm){
+  struct tm *___tmp_tm;
+  pthread_testcancel();
+  ___tmp_tm = gmtime(_Time);
+  if (___tmp_tm) {
+*(_Tm) = *___tmp_tm;
+___tmp_tm = (_Tm);
+  }
+  return ___tmp_tm;
+}
+
+PTHREAD_ALWAYS_INLINE char *_ptstrcpy(char *_Str, const char *_Src){
+  char *ret = _Str;
+  while(_Src) {
+if((*_Str = *_Src) == '\0') break;
+_Src++;
+_Str++;
+  }
+  return ret;
+}
+
+PTHREAD_ALWAYS_INLINE char * ctime_r(const time_t *_Time, char *_Str){
+  char *___tmp_tm;
+  pthread_testcancel();
+  ___tmp_tm = ctime((_Time));
+  if (___tmp_tm)
+___tmp_tm = _ptstrcpy((_Str),___tmp_tm);
+  return ___tmp_tm;
+}
+
+PTHREAD_ALWAYS_INLINE char * asctime_r(const struct tm *_Tm, char *_Buf){
+  char *___tmp_tm;
+  pthread_testcancel();
+  ___tmp_tm = asctime((_Tm));
+  if (___tmp_tm)
+___tmp_tm = _ptstrcpy((_Buf),___tmp_tm);
+  return ___tmp_tm;
+}
+
+PTHREAD_ALWAYS_INLINE int rand_r(unsigned int *__seed){
+   return  __seed ? rand () : rand ();
+}
+
 #ifndef SIG_BLOCK
 #define SIG_BLOCK 0
 #endif


signature.asc
Description: OpenPGP digital signature
--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] pthread.h patch

2014-12-09 Thread Marty Plummer
Patch provided in answer to my request regarding conflicts with ruby's
pthread definitions
diff --git a/pthread.h.orig b/pthread.h
index 2029713..c488aa1 100644
--- a/pthread.h.orig
+++ b/pthread.h
@@ -68,6 +68,8 @@
 #include 
 
 #include 
+#include 
+#include 
 
 #include "pthread_compat.h"
 
@@ -414,48 +416,66 @@ intWINPTHREAD_API pthread_rwlockattr_init(pthread_rwlock
 intWINPTHREAD_API pthread_rwlockattr_setpshared(pthread_rwlockattr_t *a, int s);
 
 /* Recursive API emulation.  */
-#undef localtime_r
-#define localtime_r(_Time, _Tm)	({ struct tm *___tmp_tm;		\
-		pthread_testcancel();	\
-		___tmp_tm = localtime((_Time));\
-		if (___tmp_tm) {	\
-		  *(_Tm) = *___tmp_tm;	\
-		  ___tmp_tm = (_Tm);	\
-		}			\
-		___tmp_tm;	})
-
-#undef gmtime_r
-#define gmtime_r(_Time,_Tm)	({ struct tm *___tmp_tm;		\
-		pthread_testcancel();	\
-		___tmp_tm = gmtime((_Time)); \
-		if (___tmp_tm) {	\
-		  *(_Tm) = *___tmp_tm;	\
-		  ___tmp_tm = (_Tm);	\
-		}			\
-		___tmp_tm;	})
-
-#undef ctime_r
-#define ctime_r(_Time,_Str)	({ char *___tmp_tm;			\
-		pthread_testcancel();	\
-		___tmp_tm = ctime((_Time));  \
-		if (___tmp_tm)		\
-		 ___tmp_tm =		\
-		   strcpy((_Str),___tmp_tm); \
-		___tmp_tm;	})
-
-#undef asctime_r
-#define asctime_r(_Tm, _Buf)	({ char *___tmp_tm;			\
-		pthread_testcancel();	\
-		___tmp_tm = asctime((_Tm)); \
-		if (___tmp_tm)		\
-		 ___tmp_tm =		\
-		   strcpy((_Buf),___tmp_tm);\
-		___tmp_tm;	})
-
-#ifndef rand_r
-#define rand_r(__seed) (__seed == __seed ? rand () : rand ())
+#ifdef __GNUC__
+#define PTHREAD_ALWAYS_INLINE static inline __attribute__((always_inline))
+#else
+#define PTHREAD_ALWAYS_INLINE static
 #endif
 
+PTHREAD_ALWAYS_INLINE struct tm * localtime_r(const time_t *_Time, struct tm *_Tm){
+  struct tm *___tmp_tm;
+  pthread_testcancel();
+  ___tmp_tm = localtime(_Time);
+  if (___tmp_tm) {
+*_Tm = *___tmp_tm;
+___tmp_tm = _Tm;
+  }
+  return ___tmp_tm;
+}
+
+PTHREAD_ALWAYS_INLINE struct tm * gmtime_r(const time_t *_Time, struct tm *_Tm){
+  struct tm *___tmp_tm;
+  pthread_testcancel();
+  ___tmp_tm = gmtime(_Time);
+  if (___tmp_tm) {
+*(_Tm) = *___tmp_tm;
+___tmp_tm = (_Tm);
+  }
+  return ___tmp_tm;
+}
+
+PTHREAD_ALWAYS_INLINE char *_ptstrcpy(char *_Str, const char *_Src){
+  char *ret = _Str;
+  while(_Src) {
+if((*_Str = *_Src) == '\0') break;
+_Src++;
+_Str++;
+  }
+  return ret;
+}
+
+PTHREAD_ALWAYS_INLINE char * ctime_r(const time_t *_Time, char *_Str){
+  char *___tmp_tm;
+  pthread_testcancel();
+  ___tmp_tm = ctime((_Time));
+  if (___tmp_tm)
+___tmp_tm = _ptstrcpy((_Str),___tmp_tm);
+  return ___tmp_tm;
+}
+
+PTHREAD_ALWAYS_INLINE char * asctime_r(const struct tm *_Tm, char *_Buf){
+  char *___tmp_tm;
+  pthread_testcancel();
+  ___tmp_tm = asctime((_Tm));
+  if (___tmp_tm)
+___tmp_tm = _ptstrcpy((_Buf),___tmp_tm);
+  return ___tmp_tm;
+}
+
+PTHREAD_ALWAYS_INLINE int rand_r(unsigned int *__seed){
+   return  __seed ? rand () : rand ();
+}
+
 #ifndef SIG_BLOCK
 #define SIG_BLOCK 0
 #endif


signature.asc
Description: OpenPGP digital signature
--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] pthread.h patch

2014-12-09 Thread Martell Malone
Hey,

I already remove all those _r time function from pthread.
Can you check the latest head?
As this patch won't apply

Martell

On Tue, Dec 9, 2014 at 3:36 PM, Marty Plummer 
wrote:

> Patch provided in answer to my request regarding conflicts with ruby's
> pthread definitions
>
>
> --
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> ___
> Mingw-w64-public mailing list
> Mingw-w64-public@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>
>
--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public