[Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
Hi, I'm building an opensource project on mingw32 and found the generated dll depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. I tried to add ldflags = -static- libgcc, but seems it doesn't work. Could any one let me know how can I get rid of this dependency? Thanks -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
Hi, On Mon, May 05, 2014, YIRAN LI wrote: > Hi, > > I'm building an opensource project on mingw32 and found the generated dll > depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. > > I tried to add ldflags = -static- libgcc, but seems it doesn't work. > > Could any one let me know how can I get rid of this dependency? Not something I usually do and top of my head, so this might not be enough. The flags you use should rather be "-static -static-libgcc" (both of them and notice the different spelling). HTH, Adrien Nader -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] mingw-w64 may move to git in the future
On Mon, May 05, 2014, JonY wrote: > > This is a simple change in vim's configuration file (in the case SF > > doesn't changing that in some Web UI). I don't think I can check on > > jon_y's repo (seems I don't have the rights to access it through ssh). > > > > Right now, I made it readonly except to administrators, I'll try to > allow you access to it. > Thanks, works. >From /home/git/p/mingw-w64/mingw-w64.git/config: [receive] denyNonFastforwards = true I don't know if you're the one who put it there or if it's by default but in any case, this is what forbids rewriting history. -- Adrien Nader -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
0) Try -static first. I have been using this option since long ago and it never fails; 1) Try -static-libgcc -static-libstdc++. These two should be used together. Using only one of them does not work, at least on my machine. 2) There is no space in '-static-libgcc'. -- Best regards, lh_mouse 2014-05-05 - 发件人:YIRAN LI 发送日期:2014-05-05 15:19 收件人:mingw-w64-public 抄送: 主题:[Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency Hi, I'm building an opensource project on mingw32 and found the generated dll depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. I tried to add ldflags = -static- libgcc, but seems it doesn't work. Could any one let me know how can I get rid of this dependency? Thanks -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
2014-05-05 17:32 GMT+10:00 lh_mouse : > 0) Try -static first. I have been using this option since long ago and it > never fails; > 1) Try -static-libgcc -static-libstdc++. These two should be used > together. Using only one of them does not work, at least on my machine. > 2) There is no space in '-static-libgcc'. > > Thanks, I used -static, but seems it causes the project to generate static libs instead of dlls. I think it should be the problem of the project (libtheora) and I've sent out a mail to libtheora's mail list. -- > Best regards, > lh_mouse > 2014-05-05 > > - > 发件人:YIRAN LI > 发送日期:2014-05-05 15:19 > 收件人:mingw-w64-public > 抄送: > 主题:[Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency > > Hi, > > I'm building an opensource project on mingw32 and found the generated dll > depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. > > I tried to add ldflags = -static- libgcc, but seems it doesn't work. > > Could any one let me know how can I get rid of this dependency? > > Thanks > > > > -- > Is your legacy SCM system holding you back? Join Perforce May 7 to find > out: > • 3 signs your SCM is hindering your productivity > • Requirements for releasing software faster > • Expert tips and advice for migrating your SCM now > http://p.sf.net/sfu/perforce > ___ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
05 мая 2014 г., в 12:22, YIRAN LI написал(а): > > > > 2014-05-05 17:32 GMT+10:00 lh_mouse : > 0) Try -static first. I have been using this option since long ago and it > never fails; > 1) Try -static-libgcc -static-libstdc++. These two should be used together. > Using only one of them does not work, at least on my machine. > 2) There is no space in '-static-libgcc'. > > > Thanks, I used -static, but seems it causes the project to generate static > libs instead of dlls. I think it should be the problem of the project > (libtheora) and I've sent out a mail to libtheora's mail list. > > Use -static you always get only static libs. > -- > Best regards, > lh_mouse > 2014-05-05 > > - > 发件人:YIRAN LI > 发送日期:2014-05-05 15:19 > 收件人:mingw-w64-public > 抄送: > 主题:[Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency > > Hi, > > I'm building an opensource project on mingw32 and found the generated dll > depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. > > I tried to add ldflags = -static- libgcc, but seems it doesn't work. > > Could any one let me know how can I get rid of this dependency? > > Thanks > > > -- > Is your legacy SCM system holding you back? Join Perforce May 7 to find out: > • 3 signs your SCM is hindering your productivity > • Requirements for releasing software faster > • Expert tips and advice for migrating your SCM now > http://p.sf.net/sfu/perforce > ___ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > > -- > Is your legacy SCM system holding you back? Join Perforce May 7 to find out: > • 3 signs your SCM is hindering your productivity > • Requirements for releasing software faster > • Expert tips and advice for migrating your SCM now > http://p.sf.net/sfu/perforce___ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
2014-05-05 18:28 GMT+10:00 Alexpux : > > 05 мая 2014 г., в 12:22, YIRAN LI написал(а): > > > > > 2014-05-05 17:32 GMT+10:00 lh_mouse : > >> 0) Try -static first. I have been using this option since long ago and it >> never fails; >> 1) Try -static-libgcc -static-libstdc++. These two should be used >> together. Using only one of them does not work, at least on my machine. >> 2) There is no space in '-static-libgcc'. >> >> > Thanks, I used -static, but seems it causes the project to generate static > libs instead of dlls. I think it should be the problem of the project > (libtheora) and I've sent out a mail to libtheora's mail list. > > > Use -static you always get only static libs. > Thanks, then -static is not what I want. I need dlls. but these dlls can't be dynamically linked to libgcc. I also checked MinGW folder hxuanyu-nch@hxuanyu-PC/cygdrive/c/i686-4.9.0-release-win32-sjlj-rt_v3-rev1/mingw32 $ find ./ -name "libgcc.a" ./lib/gcc/i686-w64-mingw32/4.9.0/64/libgcc.a ./lib/gcc/i686-w64-mingw32/4.9.0/libgcc.a hxuanyu-nch@hxuanyu-PC/cygdrive/c/i686-4.9.0-release-win32-sjlj-rt_v3-rev1/mingw32 $ find ./ -name "libgcc_s.a" ./i686-w64-mingw32/lib/libgcc_s.a ./i686-w64-mingw32/lib64/libgcc_s.a ./lib/gcc/i686-w64-mingw32/lib/libgcc_s.a ./lib/gcc/i686-w64-mingw32/lib64/libgcc_s.a see that there's no libgcc_s.a in ./lib/gcc/i686-w64-mingw32/4.9.0, I'm not sure if I specify -static-libgcc, ld could find correct libgcc_s.a Thanks > > -- >> Best regards, >> lh_mouse >> 2014-05-05 >> >> - >> 发件人:YIRAN LI >> 发送日期:2014-05-05 15:19 >> 收件人:mingw-w64-public >> 抄送: >> 主题:[Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency >> >> Hi, >> >> I'm building an opensource project on mingw32 and found the generated dll >> depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. >> >> I tried to add ldflags = -static- libgcc, but seems it doesn't work. >> >> Could any one let me know how can I get rid of this dependency? >> >> Thanks >> >> >> >> -- >> Is your legacy SCM system holding you back? Join Perforce May 7 to find >> out: >> • 3 signs your SCM is hindering your productivity >> • Requirements for releasing software faster >> • Expert tips and advice for migrating your SCM now >> http://p.sf.net/sfu/perforce >> ___ >> Mingw-w64-public mailing list >> Mingw-w64-public@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public >> > > > -- > Is your legacy SCM system holding you back? Join Perforce May 7 to find > out: > • 3 signs your SCM is hindering your productivity > • Requirements for releasing software faster > • Expert tips and advice for migrating your SCM now > http://p.sf.net/sfu/perforce___ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > > > > > -- > Is your legacy SCM system holding you back? Join Perforce May 7 to find > out: > • 3 signs your SCM is hindering your productivity > • Requirements for releasing software faster > • Expert tips and advice for migrating your SCM now > http://p.sf.net/sfu/perforce > ___ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > > -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
It is possible to build a DLL with -static. You may need --enable-shared or something if you are using configure script (I am not familiar with it though). When you specify -static or -static-libgcc -static-libstdc++, g++ links against libgcc_eh.a rather than libgcc_s.a. These two files are in different folders. -- Best regards, lh_mouse 2014-05-05 - 发件人:YIRAN LI 发送日期:2014-05-05 16:34 收件人:mingw-w64-public 抄送: 主题:Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency 2014-05-05 18:28 GMT+10:00 Alexpux : > > 05 мая 2014 г., в 12:22, YIRAN LI написал(а): > > > > > 2014-05-05 17:32 GMT+10:00 lh_mouse : > >> 0) Try -static first. I have been using this option since long ago and it >> never fails; >> 1) Try -static-libgcc -static-libstdc++. These two should be used >> together. Using only one of them does not work, at least on my machine. >> 2) There is no space in '-static-libgcc'. >> >> > Thanks, I used -static, but seems it causes the project to generate static > libs instead of dlls. I think it should be the problem of the project > (libtheora) and I've sent out a mail to libtheora's mail list. > > > Use -static you always get only static libs. > Thanks, then -static is not what I want. I need dlls. but these dlls can't be dynamically linked to libgcc. I also checked MinGW folder hxuanyu-nch@hxuanyu-PC/cygdrive/c/i686-4.9.0-release-win32-sjlj-rt_v3-rev1/mingw32 $ find ./ -name "libgcc.a" ./lib/gcc/i686-w64-mingw32/4.9.0/64/libgcc.a ./lib/gcc/i686-w64-mingw32/4.9.0/libgcc.a hxuanyu-nch@hxuanyu-PC/cygdrive/c/i686-4.9.0-release-win32-sjlj-rt_v3-rev1/mingw32 $ find ./ -name "libgcc_s.a" ./i686-w64-mingw32/lib/libgcc_s.a ./i686-w64-mingw32/lib64/libgcc_s.a ./lib/gcc/i686-w64-mingw32/lib/libgcc_s.a ./lib/gcc/i686-w64-mingw32/lib64/libgcc_s.a see that there's no libgcc_s.a in ./lib/gcc/i686-w64-mingw32/4.9.0, I'm not sure if I specify -static-libgcc, ld could find correct libgcc_s.a Thanks -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
On 05/05/14 09:19, YIRAN LI wrote: > Hi, > > I'm building an opensource project on mingw32 and found the generated dll > depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. > > I tried to add ldflags = -static- libgcc, but seems it doesn't work. > > Could any one let me know how can I get rid of this dependency? > > Thanks See http://people.videolan.org/~funman/win/howto-gcc -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
2014-05-05 20:42 GMT+10:00 Rafaël Carré : > On 05/05/14 09:19, YIRAN LI wrote: > > Hi, > > > > I'm building an opensource project on mingw32 and found the generated dll > > depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. > > > > I tried to add ldflags = -static- libgcc, but seems it doesn't work. > > > > Could any one let me know how can I get rid of this dependency? > > > > Thanks > > See http://people.videolan.org/~funman/win/howto-gcc > > Thanks Rafael, The script seems doesn't work on my machine. I'm using i686-4.8.2-release-win32-sjlj-rt_v3-rev3, but gcc -v prints nothing containing LIBRARY_PATH. What the script does is remove libgcc_s_sjlj-1.dll (I only need to remove the dependency on libgcc). I manually moved libgcc_s_sjlj-1.dll and libgcc.a. And then ln -s libgcc_eh.a libgcc_s.a But libtheora can't pass ./configure. ld.exe can't find -lgcc. I have to put libgcc_s_sjlj-1.dll and libgcc.a back to get configure and build succeed. Thanks -- > Is your legacy SCM system holding you back? Join Perforce May 7 to find > out: > • 3 signs your SCM is hindering your productivity > • Requirements for releasing software faster > • Expert tips and advice for migrating your SCM now > http://p.sf.net/sfu/perforce > ___ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
On 05/05/14 13:51, YIRAN LI wrote: > 2014-05-05 20:42 GMT+10:00 Rafaël Carré : > >> On 05/05/14 09:19, YIRAN LI wrote: >>> Hi, >>> >>> I'm building an opensource project on mingw32 and found the generated dll >>> depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. >>> >>> I tried to add ldflags = -static- libgcc, but seems it doesn't work. >>> >>> Could any one let me know how can I get rid of this dependency? >>> >>> Thanks >> >> See http://people.videolan.org/~funman/win/howto-gcc >> >> > Thanks Rafael, > > The script seems doesn't work on my machine. I'm using > i686-4.8.2-release-win32-sjlj-rt_v3-rev3, but gcc -v prints nothing > containing LIBRARY_PATH. > > What the script does is remove libgcc_s_sjlj-1.dll (I only need to remove > the dependency on libgcc). I manually moved libgcc_s_sjlj-1.dll and > libgcc.a. And then ln -s libgcc_eh.a libgcc_s.a > > But libtheora can't pass ./configure. ld.exe can't find -lgcc. I have to > put libgcc_s_sjlj-1.dll and libgcc.a back to get configure and build > succeed. > > Thanks What is your distro? I tested it on gcc builds of archlinux and debian -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
On 5.5.2014 10:19, YIRAN LI wrote: > I'm building an opensource project on mingw32 and found the generated > dll depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. > > I tried to add ldflags = -static- libgcc, but seems it doesn't work. > > Could any one let me know how can I get rid of this dependency? This should work: CC='gcc -static-libgcc -static-libstdc++' CXX='g++ -static-libgcc -static-libstdc++' ./configure -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
On Mon, May 05, 2014, YIRAN LI wrote: > 2014-05-05 17:32 GMT+10:00 lh_mouse : > > > 0) Try -static first. I have been using this option since long ago and it > > never fails; > > 1) Try -static-libgcc -static-libstdc++. These two should be used > > together. Using only one of them does not work, at least on my machine. > > 2) There is no space in '-static-libgcc'. > > > > > Thanks, I used -static, but seems it causes the project to generate static > libs instead of dlls. I think it should be the problem of the project > (libtheora) and I've sent out a mail to libtheora's mail list. You use -static and possible -static-something when building the final executable and only it. If you are not able to easily single out the build of the final executable (because it is a tool built as part of a larger project), a very efficient way is to build as usual, find the corresponding compilation command, copy-paste it and add -static yourself. It's not terribly clean but it's the easiest way to do it. -- Adrien Nader -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH] More ARM related changes to winnt.h
Please review, i'll commit it. (most likely i'll split it up into individual patches, if that's ok) Index: mingw-w64-headers/include/winnt.h === --- mingw-w64-headers/include/winnt.h (Revision 6596) +++ mingw-w64-headers/include/winnt.h (Arbeitskopie) @@ -32,6 +32,13 @@ #endif #endif /* _AMD64_ */ +#if defined(__arm__) && \ + !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined (__ia64__)) +#if !defined(_ARM_) +#define _ARM_ +#endif +#endif /* _ARM_ */ + #if defined(__ia64__) && \ !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined (__arm__)) #if !defined(_IA64_) @@ -1728,6 +1735,172 @@ #endif /* end of _AMD64_ */ +#ifdef _ARM_ + +#if defined(__arm__) && !defined(RC_INVOKED) + +#ifdef __cplusplus + extern "C" { +#endif + +#define BitTest _bittest +#define BitTestAndComplement _bittestandcomplement +#define BitTestAndSet _bittestandset +#define BitTestAndReset _bittestandreset + +#define BitScanForward _BitScanForward +#define BitScanReverse _BitScanReverse + +#define InterlockedIncrement16 _InterlockedIncrement16 +#define InterlockedDecrement16 _InterlockedDecrement16 +#define InterlockedCompareExchange16 _InterlockedCompareExchange16 + +#define InterlockedAnd _InterlockedAnd +#define InterlockedOr _InterlockedOr +#define InterlockedXor _InterlockedXor +#define InterlockedIncrement _InterlockedIncrement +#define InterlockedIncrementAcquire InterlockedIncrement +#define InterlockedIncrementRelease InterlockedIncrement +#define InterlockedDecrement _InterlockedDecrement +#define InterlockedDecrementAcquire InterlockedDecrement +#define InterlockedDecrementRelease InterlockedDecrement +#define InterlockedAdd _InterlockedAdd +#define InterlockedExchange _InterlockedExchange +#define InterlockedExchangeAdd _InterlockedExchangeAdd +#define InterlockedCompareExchange _InterlockedCompareExchange +#define InterlockedCompareExchangeAcquire InterlockedCompareExchange +#define InterlockedCompareExchangeRelease InterlockedCompareExchange + +#define InterlockedAnd64 _InterlockedAnd64 +#define InterlockedAndAffinity InterlockedAnd64 +#define InterlockedOr64 _InterlockedOr64 +#define InterlockedOrAffinity InterlockedOr64 +#define InterlockedXor64 _InterlockedXor64 +#define InterlockedIncrement64 _InterlockedIncrement64 +#define InterlockedDecrement64 _InterlockedDecrement64 +#define InterlockedAdd64 _InterlockedAdd64 +#define InterlockedExchange64 _InterlockedExchange64 +#define InterlockedExchangeAcquire64 InterlockedExchange64 +#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 +#define InterlockedCompareExchange64 _InterlockedCompareExchange64 +#define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64 +#define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64 + +#define InterlockedExchangePointer _InterlockedExchangePointer +#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer +#define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer +#define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer + +#ifdef __cplusplus + } +#endif +#endif /* defined(__arm__) && !defined(RC_INVOKED) */ + +#define EXCEPTION_READ_FAULT0 +#define EXCEPTION_WRITE_FAULT 1 +#define EXCEPTION_EXECUTE_FAULT 8 + +#if !defined(RC_INVOKED) + +#define CONTEXT_ARM0x020 + +#define CONTEXT_CONTROL (CONTEXT_ARM | 0x0001) +#define CONTEXT_INTEGER (CONTEXT_ARM | 0x0002) +#define CONTEXT_FLOATING_POINT (CONTEXT_ARM | 0x0004) +#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM | 0x0008) + +#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT) + +#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS) + +#define CONTEXT_EXCEPTION_ACTIVE0x0800 +#define CONTEXT_SERVICE_ACTIVE 0x1000 +#define CONTEXT_EXCEPTION_REQUEST 0x4000 +#define CONTEXT_EXCEPTION_REPORTING 0x8000 + +#define CONTEXT_UNWOUND_TO_CALL 0x2000 + +#endif /* !defined(RC_INVOKED) */ + +#define INITIAL_CPSR 0x10 +#define INITIAL_FPSCR 0x00 + +#define ARM_MAX_BREAKPOINTS 8 +#define ARM_MAX_WATCHPOINTS 1 + + + typedef struct _NEON128 { +ULONGLONG Low; +LONGLONG High; + } NEON128, *PNEON128; + + typedef struct DECLSPEC_ALIGN(8) _CONTEXT { +DWORD ContextFlags; + +DWORD R0; +DWORD R1; +DWORD R2; +DWORD R3; +DWORD R4; +DWORD R5; +DWORD R6; +DWORD R7; +DWORD R8; +DWORD R9; +DWORD R10; +DWORD R11; +DWORD R12; + +DWORD Sp; +DWORD Lr; +DWORD Pc; +DWORD Cpsr; + +DWORD Fpscr; +DWORD Padding; +union { +NEON128 Q[16]; +ULONGLONG D[32]; +DWORD S[32]; +} DUMMYUNIONNAME; + +DWORD Bvr[ARM_MAX_BREAKPOINTS]; +DWORD Bcr[ARM_MAX_BREAKPOINTS]; +DWORD Wvr[ARM_MAX_WATCHPOINTS]; +DWORD Wcr[ARM_MAX_
Re: [Mingw-w64-public] [PATCH] More ARM related changes to winnt.h
Am 05.05.2014 22:17, schrieb André Hentschel: > Please review, i'll commit it. (most likely i'll split it up into individual > patches, if that's ok) Sorry, now with the correct changes attached Index: mingw-w64-headers/include/winnt.h === --- mingw-w64-headers/include/winnt.h (Revision 6606) +++ mingw-w64-headers/include/winnt.h (Arbeitskopie) @@ -256,7 +256,11 @@ #endif #endif /* FASTCALL */ +#if defined(_ARM_) +#define NTAPI +#else #define NTAPI __stdcall +#endif #define NTAPI_INLINE NTAPI #if !defined(_NTSYSTEM_) @@ -1870,9 +1874,10 @@ DWORD Wcr[ARM_MAX_WATCHPOINTS]; DWORD Padding2[2]; - } CONTEXT; + } CONTEXT, *PCONTEXT; typedef struct _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; + typedef PRUNTIME_FUNCTION (*PGET_RUNTIME_FUNCTION_CALLBACK)(DWORD64 ControlPc,PVOID Context); #define UNW_FLAG_NHANDLER 0x0 #define UNW_FLAG_EHANDLER 0x1 @@ -1896,6 +1901,26 @@ UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; + typedef struct _KNONVOLATILE_CONTEXT_POINTERS { +PDWORD R4; +PDWORD R5; +PDWORD R6; +PDWORD R7; +PDWORD R8; +PDWORD R9; +PDWORD R10; +PDWORD R11; +PDWORD Lr; +PULONGLONG D8; +PULONGLONG D9; +PULONGLONG D10; +PULONGLONG D11; +PULONGLONG D12; +PULONGLONG D13; +PULONGLONG D14; +PULONGLONG D15; + } KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; + #define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME "OutOfProcessFunctionTableCallback" #endif /* _ARM_ */ -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH] More ARM related changes to winnt.h
Hallo André, the patch is ok for apply. Thanks, Kai 2014-05-05 22:19 GMT+02:00 André Hentschel : > Am 05.05.2014 22:17, schrieb André Hentschel: >> Please review, i'll commit it. (most likely i'll split it up into individual >> patches, if that's ok) > > Sorry, now with the correct changes attached > > > -- > Is your legacy SCM system holding you back? Join Perforce May 7 to find out: > • 3 signs your SCM is hindering your productivity > • Requirements for releasing software faster > • Expert tips and advice for migrating your SCM now > http://p.sf.net/sfu/perforce > ___ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH] Don't use __stdcall on ARM
Please review, i'll commit it. Index: mingw-w64-headers/include/winnt.h === --- mingw-w64-headers/include/winnt.h (Revision 6596) +++ mingw-w64-headers/include/winnt.h (Arbeitskopie) @@ -32,6 +32,13 @@ #endif #endif /* _AMD64_ */ +#if defined(__arm__) && \ + !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined (__ia64__)) +#if !defined(_ARM_) +#define _ARM_ +#endif +#endif /* _ARM_ */ + #if defined(__ia64__) && \ !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined (__arm__)) #if !defined(_IA64_) @@ -1728,6 +1735,172 @@ #endif /* end of _AMD64_ */ +#ifdef _ARM_ + +#if defined(__arm__) && !defined(RC_INVOKED) + +#ifdef __cplusplus + extern "C" { +#endif + +#define BitTest _bittest +#define BitTestAndComplement _bittestandcomplement +#define BitTestAndSet _bittestandset +#define BitTestAndReset _bittestandreset + +#define BitScanForward _BitScanForward +#define BitScanReverse _BitScanReverse + +#define InterlockedIncrement16 _InterlockedIncrement16 +#define InterlockedDecrement16 _InterlockedDecrement16 +#define InterlockedCompareExchange16 _InterlockedCompareExchange16 + +#define InterlockedAnd _InterlockedAnd +#define InterlockedOr _InterlockedOr +#define InterlockedXor _InterlockedXor +#define InterlockedIncrement _InterlockedIncrement +#define InterlockedIncrementAcquire InterlockedIncrement +#define InterlockedIncrementRelease InterlockedIncrement +#define InterlockedDecrement _InterlockedDecrement +#define InterlockedDecrementAcquire InterlockedDecrement +#define InterlockedDecrementRelease InterlockedDecrement +#define InterlockedAdd _InterlockedAdd +#define InterlockedExchange _InterlockedExchange +#define InterlockedExchangeAdd _InterlockedExchangeAdd +#define InterlockedCompareExchange _InterlockedCompareExchange +#define InterlockedCompareExchangeAcquire InterlockedCompareExchange +#define InterlockedCompareExchangeRelease InterlockedCompareExchange + +#define InterlockedAnd64 _InterlockedAnd64 +#define InterlockedAndAffinity InterlockedAnd64 +#define InterlockedOr64 _InterlockedOr64 +#define InterlockedOrAffinity InterlockedOr64 +#define InterlockedXor64 _InterlockedXor64 +#define InterlockedIncrement64 _InterlockedIncrement64 +#define InterlockedDecrement64 _InterlockedDecrement64 +#define InterlockedAdd64 _InterlockedAdd64 +#define InterlockedExchange64 _InterlockedExchange64 +#define InterlockedExchangeAcquire64 InterlockedExchange64 +#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 +#define InterlockedCompareExchange64 _InterlockedCompareExchange64 +#define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64 +#define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64 + +#define InterlockedExchangePointer _InterlockedExchangePointer +#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer +#define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer +#define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer + +#ifdef __cplusplus + } +#endif +#endif /* defined(__arm__) && !defined(RC_INVOKED) */ + +#define EXCEPTION_READ_FAULT0 +#define EXCEPTION_WRITE_FAULT 1 +#define EXCEPTION_EXECUTE_FAULT 8 + +#if !defined(RC_INVOKED) + +#define CONTEXT_ARM0x020 + +#define CONTEXT_CONTROL (CONTEXT_ARM | 0x0001) +#define CONTEXT_INTEGER (CONTEXT_ARM | 0x0002) +#define CONTEXT_FLOATING_POINT (CONTEXT_ARM | 0x0004) +#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM | 0x0008) + +#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT) + +#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS) + +#define CONTEXT_EXCEPTION_ACTIVE0x0800 +#define CONTEXT_SERVICE_ACTIVE 0x1000 +#define CONTEXT_EXCEPTION_REQUEST 0x4000 +#define CONTEXT_EXCEPTION_REPORTING 0x8000 + +#define CONTEXT_UNWOUND_TO_CALL 0x2000 + +#endif /* !defined(RC_INVOKED) */ + +#define INITIAL_CPSR 0x10 +#define INITIAL_FPSCR 0x00 + +#define ARM_MAX_BREAKPOINTS 8 +#define ARM_MAX_WATCHPOINTS 1 + + + typedef struct _NEON128 { +ULONGLONG Low; +LONGLONG High; + } NEON128, *PNEON128; + + typedef struct DECLSPEC_ALIGN(8) _CONTEXT { +DWORD ContextFlags; + +DWORD R0; +DWORD R1; +DWORD R2; +DWORD R3; +DWORD R4; +DWORD R5; +DWORD R6; +DWORD R7; +DWORD R8; +DWORD R9; +DWORD R10; +DWORD R11; +DWORD R12; + +DWORD Sp; +DWORD Lr; +DWORD Pc; +DWORD Cpsr; + +DWORD Fpscr; +DWORD Padding; +union { +NEON128 Q[16]; +ULONGLONG D[32]; +DWORD S[32]; +} DUMMYUNIONNAME; + +DWORD Bvr[ARM_MAX_BREAKPOINTS]; +DWORD Bcr[ARM_MAX_BREAKPOINTS]; +DWORD Wvr[ARM_MAX_WATCHPOINTS]; +DWORD Wcr[ARM_MAX_WATCHPOINTS]; + +DWORD Padding2[2]; + } CONTEXT; + + typedef str
Re: [Mingw-w64-public] [PATCH] Don't use __stdcall on ARM
Am 05.05.2014 23:29, schrieb André Hentschel: > Please review, i'll commit it. Again the right patch attached now, it's getting late, sorry. Index: ddk/include/ddk/usbbusif.h === --- ddk/include/ddk/usbbusif.h (Revision 6609) +++ ddk/include/ddk/usbbusif.h (Arbeitskopie) @@ -3,8 +3,12 @@ #define _USBBUSIF_ #ifndef USB_BUSIFFN +#if defined(_ARM_) +#define USB_BUSIFFN +#else #define USB_BUSIFFN __stdcall #endif +#endif #if (NTDDI_VERSION >= NTDDI_WINXP) Index: ddk/include/ddk/bdasup.h === --- ddk/include/ddk/bdasup.h (Revision 6609) +++ ddk/include/ddk/bdasup.h (Arbeitskopie) @@ -6,7 +6,11 @@ extern "C" { #endif +#if defined(_ARM_) +#define STDMETHODCALLTYPE +#else #define STDMETHODCALLTYPE __stdcall +#endif #ifndef _WDMDDK_ typedef GUID *PGUID; Index: ddk/include/ddk/hubbusif.h === --- ddk/include/ddk/hubbusif.h (Revision 6609) +++ ddk/include/ddk/hubbusif.h (Arbeitskopie) @@ -19,8 +19,12 @@ #define USBD_DEVHACK_SET_DIAG_ID 0x0004 #ifndef USB_BUSIFFN +#if defined(_ARM_) +#define USB_BUSIFFN +#else #define USB_BUSIFFN __stdcall #endif +#endif #define CD_ERR_V1 0x0001 Index: ddk/include/ddk/strmini.h === --- ddk/include/ddk/strmini.h (Revision 6609) +++ ddk/include/ddk/strmini.h (Arbeitskopie) @@ -5,7 +5,12 @@ #include #include +#if defined(_ARM_) +#define STREAMAPI +#else #define STREAMAPI __stdcall +#endif + #define STREAM_SYSTEM_TIME_MASK ((STREAM_SYSTEM_TIME)0x0001) typedef enum { Index: crt/intrin.h === --- crt/intrin.h (Revision 6609) +++ crt/intrin.h (Arbeitskopie) @@ -92,8 +92,12 @@ #endif #ifndef WINAPI +#if defined(_ARM_) +#define WINAPI +#else #define WINAPI __stdcall #endif +#endif #if defined(__MMX__) || defined(__MINGW_FORCE_SYS_INTRINS) #if defined(__cplusplus) Index: include/wincrypt.h === --- include/wincrypt.h (Revision 6609) +++ include/wincrypt.h (Arbeitskopie) @@ -37,12 +37,20 @@ #include #ifndef WINAPI +#if defined(_ARM_) +#define WINAPI +#else #define WINAPI __stdcall #endif +#endif #ifndef CALLBACK +#if defined(_ARM_) +#define CALLBACK +#else #define CALLBACK __stdcall #endif +#endif #ifndef CONST #define CONST const Index: include/evntprov.h === --- include/evntprov.h (Revision 6609) +++ include/evntprov.h (Arbeitskopie) @@ -24,9 +24,17 @@ #ifndef EVNTAPI #ifndef MIDL_PASS #ifdef _EVNT_SOURCE_ +#if defined(_ARM_) +#define EVNTAPI +#else #define EVNTAPI __stdcall +#endif #else +#if defined(_ARM_) +#define EVNTAPI DECLSPEC_IMPORT +#else #define EVNTAPI DECLSPEC_IMPORT __stdcall +#endif #endif /* _EVNT_SOURCE_ */ #endif /* MIDL_PASS */ #endif /* EVNTAPI */ Index: include/odbcinst.h === --- include/odbcinst.h (Revision 6609) +++ include/odbcinst.h (Arbeitskopie) @@ -75,8 +75,12 @@ #ifndef RC_INVOKED #ifndef WINAPI +#if defined(_ARM_) +#define WINAPI +#else #define WINAPI __stdcall #endif +#endif #define INSTAPI WINAPI Index: include/ncrypt.h === --- include/ncrypt.h (Revision 6609) +++ include/ncrypt.h (Arbeitskopie) @@ -12,8 +12,12 @@ #endif #ifndef WINAPI +#if defined(_ARM_) +#define WINAPI +#else #define WINAPI __stdcall #endif +#endif #ifndef __SECSTATUS_DEFINED__ typedef LONG SECURITY_STATUS; Index: include/sspi.h === --- include/sspi.h (Revision 6609) +++ include/sspi.h (Arbeitskopie) @@ -54,8 +54,12 @@ #endif #ifndef WINAPI +#if defined(_ARM_) +#define WINAPI +#else #define WINAPI __stdcall #endif +#endif #define SEC_TEXT TEXT #define SEC_FAR Index: include/comutil.h === --- include/comutil.h (Revision 6609) +++ include/comutil.h (Arbeitskopie) @@ -29,8 +29,12 @@ #undef new #ifndef WINAPI +#if defined(_ARM_) +#define WINAPI +#else #define WINAPI __stdcall #endif +#endif class _com_error; Index: include/comdef.h === --- include/comdef.h (Revision 6609) +++ include/comdef.h (Arbeitskopie) @@ -19,8 +19,12 @@ #include #ifndef WINAPI +#if defined(_ARM_) +#define WINAPI +#else #define WINAPI __stdcall #endif +#endif #ifdef __cplusplus Index: include/evntrace.h === --- include/evntrace.h (Revision 6609) +++ include/evntrace.h (Arbeitskopie) @@ -11,10 +11,18 @@ #ifndef WMIAPI #ifndef MIDL_PASS #ifdef _WMI_SOURCE_ +
Re: [Mingw-w64-public] [PATCH] Don't use __stdcall on ARM
Patch is ok for apply. Thanks, Kai -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] how to remove libgcc_s_sjlj-1.dll dependency
2014-05-05 22:16 GMT+10:00 Teemu Nätkinniemi : > On 5.5.2014 10:19, YIRAN LI wrote: > > I'm building an opensource project on mingw32 and found the generated > > dll depends on libgcc_s_sjlj-1.dll. The function referenced is __divdi3. > > > > I tried to add ldflags = -static- libgcc, but seems it doesn't work. > > > > Could any one let me know how can I get rid of this dependency? > > This should work: > > CC='gcc -static-libgcc -static-libstdc++' CXX='g++ -static-libgcc > -static-libstdc++' ./configure > > This works for me! I used CC='gcc -static-libgcc' and got what I want. What I used before that didn't work was ./configure --enable-shared --disable-static CFLAGS='-static-libgcc'. Maybe cflags were wrongly ordered. Anyway, I'm able to statically build now. Thanks to all of your guys > > > > -- > Is your legacy SCM system holding you back? Join Perforce May 7 to find > out: > • 3 signs your SCM is hindering your productivity > • Requirements for releasing software faster > • Expert tips and advice for migrating your SCM now > http://p.sf.net/sfu/perforce > ___ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public