From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31516 invoked by alias); 4 Sep 2008 17:25:44 -0000 Received: (qmail 31490 invoked by uid 22791); 4 Sep 2008 17:25:39 -0000 X-Spam-Check-By: sourceware.org Received: from main.gmane.org (HELO ciao.gmane.org) (80.91.229.2) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 04 Sep 2008 17:25:11 +0000 Received: from root by ciao.gmane.org with local (Exim 4.43) id 1KbIZr-0002Vm-09 for pthreads-win32@sourceware.org; Thu, 04 Sep 2008 17:25:03 +0000 Received: from cpmsq.epam.com ([217.21.56.2]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 04 Sep 2008 17:25:02 +0000 Received: from vasili.burdo by cpmsq.epam.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 04 Sep 2008 17:25:02 +0000 To: pthreads-win32@sourceware.org From: "Vasili Burdo" Subject: Patches for building Pthreads-Win32 for AMD64 Date: Thu, 04 Sep 2008 17:25:00 -0000 Message-ID: X-IsSubscribed: yes Mailing-List: contact pthreads-win32-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: pthreads-win32-owner@sourceware.org X-SW-Source: 2008/txt/msg00047.txt.bz2 Hi, folks! I tried to port Pthreds to AMD64 architecture. With few exceptions, porting went smothly. I managed to compile it using Visual C++ 2005 and to pass all tests. I used Windows Server 2003 R3 SP1 x64. So, I post changes I had to make, here. pthreads.patch: It appears, that Windows Server does not export InterlockedXXX() functions in Kernel32.dll. As result, clever tricks with ptw32_interlocked_compare_exchange() have failed. I fixed it by adding "catch all" clause into ptw32_InterlockedCompareExchange.c pthreads-tests.patch: On AMD64, sizeof(int) == 4 and sizeof(void*) == 8; As result, code like "int result; pthread_join (t, (void**)&result);" corrupts stack . And many tests have failed due to this problem. I fixed it by replacing int type with DWORD_PTR. begin 666 pthreads-tests.patch M*BHJ('1EPT*+2TM(#0Q+#0W("TM+2T-"B @ M(VEN8VQU9&4@(G1EPT**BHJ('1E MPT*(" @(" @(" @(" @87-S97)T*'!T:')E861?:F]I;BAT6VE=+" H=F]I M9" J*BD@)G)EPT*(" @(" @(" @(" @87-S97)T*'!T:')E M861?:F]I;BAT6VE=+" H=F]I9" J*BD@)G)EPT*(" @ M(" @("!I;G0@9F%I;" ](# [#0HA(" @(" @($173U)$7U!44B!R97-U;'0@ M/2 P.PT*(" -"B @(" @(" @+RH-"B @(" @(" @("H@5&AE('1HPT*(" @(" @ M("!I;G0@9F%I;" ](# [#0HA(" @(" @(&EN="!R97-U;'0@/2 P.PT*(" - M"B @(" @(" @+RH-"B @(" @(" @("H@5&AE('1H2!C86YC96QA=&EO;B!P;VEN=',L('-O#0HM+2T@,3PT*(" @(" @("!I;G0@9F%I;" ] M(# [#0HA(" @(" @($173U)$7U!44B!R97-U;'0@/2 P.PT*(" -"B @(" @ M(" @+RH-"B @(" @(" @("H@5&AE('1H2!C86YC96QA=&EO;B!P;VEN=',L('-O#0HJ*BH@=&5S=',O8V%N8V5L M-F0N8PE7960@3F]V(# S(# S.C X.C0T(#(P,#0-"BTM+2!T97-T7-4:6UE+G1I;64[#0H@ M(" @86)S=&EM92YT=E]N7-4:6UE*3L-"B @#0HA M(" @86)S=&EM92YT=E]S96,@/2 H;&]N9REC=7)R4WES5&EM92YT:6UE.PT* M(" @(&%B7-4:6UE*3L-"B @#0HA(" @86)S=&EM M92YT=E]S96,@/2 H;&]N9REC=7)R4WES5&EM92YT:6UE.PT*(" @(&%B7-4:6UE M+G1I;64[#0H@(" @86)S=&EM92YT=E]N7-4:6UE M+G1I;64[#0H@(" @86)S=&EM92YT=E]N7-4:6UE*3L-"B @#0HA(" @ M86)S=&EM92YT=E]S96,@/2 H;&]N9REC=7)R4WES5&EM92YT:6UE.PT*(" @ M(&%B%]L;V-K*"9M=71E>"D@ M/3T@,"D[#0HM+2T@,3,X+#$T-" M+2TM#0H@(" @+RH@9V5T(&-U7-4:6UE*3L-"B @ M#0HA(" @86)S=&EM92YT=E]S96,@/2!A8G-T:6UE+G1V7W-E8R ]("AL;VYG M*6-U7-4:6UE+G1I;64@*R U.PT*(" @(&%B7-4:6UE+FUI;&QI=&T[#0H@( T*(" @(&%S7-4:6UE+G1I;64[#0H@(" @ M(&%B7-4:6UE+G1I;64[ M#0H@(" @(&%B7-4:6UE+G1I M;64[#0H@(" @(&%B%]L;V-K*"9M='@I(#T](# I.PT*(" -"B$@(" @ M86)S=&EM92YT=E]S96,@/2 H;&]N9REC=7)R4WES5&EM92YT:6UE.PT*(" @ M("!A8G-T:6UE+G1V7VYS96,@/2!.04Y/4T5#7U!%4E]-24Q,25-%0R J(&-U M7-4:6UE+FUI;&QI=&T[#0H@(" @(&%B7-4:6UE*3L-"B @#0HA(" @86)S=&EM92YT=E]S96,@/2 H;&]N9REC M=7)R4WES5&EM92YT:6UE.PT*(" @(&%B7-4:6UE*3L- M"B @#0HA(" @86)S=&EM92YT=E]S96,@/2!C=7)R4WES5&EM92YT:6UE.PT* M(" @(&%B7-4:6UE*3L-"B @#0HA(" @86)S M=&EM92YT=E]S96,@/2!C=7)R4WES5&EM92YT:6UE.PT*(" @(&%B7-4:6UE+G1I;64[#0H@(" @86)S=&EM M92YT=E]N7-4:6UE*3L-"B @#0HA(" @86)S=&EM92YT=E]S96,@ M/2!C=7)R4WES5&EM92YT:6UE.PT*(" @(&%B7-4:6UE+G1I;64[#0H@(" @86)S M=&EM92YT=E]N7-4:6UE*3L-"B @#0HA(" @ M86)S=&EM92YT=E]S96,@/2 H;&]N9REC=7)R4WES5&EM92YT:6UE.PT*(" @ M(&%B7-4:6UE+G1I;64[#0H@(" @86)S=&EM92YT=E]N M7-4:6UE*3L-"B @#0HA M(" @86)S=&EM92YT=E]S96,@/2 H;&]N9REC=7)R4WES5&EM92YT:6UE.PT* M(" @(&%B#@V M(&]N;'DA(2$-"B @(" @(" @("HO#0HK("-I9B!D969I;F5D*%]-7TE8.#8I M#0H@(" @(" @(&-O;G1E>'0N16EP(#T@*$173U)$*2!A;F]T:&5R16YD:6YG M.PT**R C96QI9B!D969I;F5D*%]-7TE!-C0I#0HK("-E'0N4FEP(#T@*$173U)$-C0I(&%N;W1H97)%;F1I M;F<[#0HK("-E;F1I9@T*(" @(" @("!39714:')E861#;VYT97AT*&A4:')E M860L("9C;VYT97AT*3L-"B @(" @(" @4F5S=6UE5&AR96%D*&A4:')E860I M.PT*(" @(" @?0T**BHJ('1EPT*(" @(" @("!I;G0@ M9F%I;" ](# [#0HA(" @(" @($173U)$7U!44B!R97-U;'0@/2 P.PT*(" - M"B @"2\J($-A;F-E;&5D('1H2 Q-2 Q.#HR.#HR." R M,# U#0HM+2T@=&5S=',O:F]I;C$N8PE4:'4@4V5P(# T(#$Y.C0V.C0R(#(P M,#@-"BHJ*BHJ*BHJ*BHJ*BHJ*@T**BHJ(#4V+#8R("HJ*BH-"B @>PT*(" ) M<'1HPT*(" )<'1H2 Q-2 Q.#HR.#HR." R M,# U#0HM+2T@=&5S=',O:F]I;C(N8PE4:'4@4V5P(# T(#$Y.C0V.C0X(#(P M,#@-"BHJ*BHJ*BHJ*BHJ*BHJ*@T**BHJ(#4P+#4V("HJ*BH-"B @>PT*(" ) M<'1HPT*(" )<'1H2 Q-2 Q.#HR.#HR." R M,# U#0HM+2T@=&5S=',O:F]I;C,N8PE4:'4@4V5P(# T(#$Y.C0V.C4R(#(P M,#@-"BHJ*BHJ*BHJ*BHJ*BHJ*@T**BHJ(#4P+#4V("HJ*BH-"B @>PT*(" ) M<'1HPT*(" )<'1H#9E+F,)5&AU(%-E<" P-" Q.3HT-CHU M.2 R,# X#0HJ*BHJ*BHJ*BHJ*BHJ*BH-"BHJ*B W-"PX," J*BHJ#0H@(&UA M:6XH*0T*("![#0H@(" @<'1H&%T=')?:6YI="@F;7A!='1R*2 ]/2 P*3L-"BTM+2 W-"PX M," M+2TM#0H@(&UA:6XH*0T*("![#0H@(" @<'1H&%T=')?:6YI="@F;7A!='1R M*2 ]/2 P*3L-"BHJ*B!T97-T#9E#9R+F,)4V%T($IA;B P,2 Q-CHS-CHR," R,# U#0HM M+2T@=&5S=',O;75T97@VPT*(" @('!T:')E861?="!T.PT*(2 @(&EN="!R97-U;'0@/2 P.PT*(" @ M(&EN="!M>%1Y<&4@/2 M,3L-"B @#0H@(" @87-S97)T*'!T:')E861?;75T M97AA='1R7VEN:70H)FUX071TPT*(" @('!T:')E861?="!T.PT*(2 @($173U)$7U!4 M4B!R97-U;'0@/2 P.PT*(" @(&EN="!M>%1Y<&4@/2 M,3L-"B @#0H@(" @ M87-S97)T*'!T:')E861?;75T97AA='1R7VEN:70H)FUX071T#9RPT*(" @('!T:')E861?="!T.PT*(2 @(&EN="!R97-U;'0@/2 P M.PT*(" -"B @("!A#=E+F,)5&AU(%-E<" P-" Q.3HT-SHQ.2 R,# X#0HJ*BHJ*BHJ*BHJ M*BHJ*BH-"BHJ*B W-"PX," J*BHJ#0H@(&UA:6XH*0T*("![#0H@(" @<'1H M&%T=')?:6YI M="@F;7A!='1R*2 ]/2 P*3L-"BTM+2 W-"PX," M+2TM#0H@(&UA:6XH*0T* M("![#0H@(" @<'1H&%T=')?:6YI="@F;7A!='1R*2 ]/2 P*3L-"BHJ*B!T97-T M#=R+F,)4V%T($IA;B P,2 Q-CHS-CHR," R,# U#0HM+2T@=&5S M=',O;75T97@WPT*(" @ M('!T:')E861?="!T.PT*(2 @(&EN="!R97-U;'0@/2 P.PT*(" @(&EN="!M M>%1Y<&4@/2 M,3L-"B @#0H@(" @87-S97)T*'!T:')E861?;75T97AA='1R M7VEN:70H)FUX071TPT*(" @('!T:')E861?="!T.PT*(2 @($173U)$7U!44B!R97-U M;'0@/2 P.PT*(" @(&EN="!M>%1Y<&4@/2 M,3L-"B @#0H@(" @87-S97)T M*'!T:')E861?;75T97AA='1R7VEN:70H)FUX071T7-4:6UE+G1I;64[#0H@(" @86)S=&EM92YT=E]N7-4:6UE*3L-"B @#0HA(" @86)S=&EM92YT=E]S96,@/2 H M;&]N9REC=7)R4WES5&EM92YT:6UE.PT*(" @(&%B#AN+F,)5V5D($9E8B R," P-CHS.3HU-B R,# R#0HM+2T@=&5S=',O;75T M97@X;BYC"51H=2!397 @,#0@,3DZ,3@Z,#(@,C P. T**BHJ*BHJ*BHJ*BHJ M*BHJ#0HJ*BH@-37-4 M:6UE*3L-"B @#0HA(" @86)S=&EM92YT=E]S96,@/2!C=7)R4WES5&EM92YT M:6UE.PT*(" @(&%B7-4:6UE+G1I;64[#0H@(" @86)S=&EM92YT=E]N#AR M+F,)5&AU(%-E<" P-" Q.3HQ.#HP-B R,# X#0HJ*BHJ*BHJ*BHJ*BHJ*BH- M"BHJ*B U-RPV,R J*BHJ#0H@( T*(" @(%]F=&EM92@F8W5R7-4:6UE+G1I;64[ M#0H@(" @86)S=&EM92YT=E]N7-4:6UE+G1I;64[ M#0H@(" @86)S=&EM92YT=E]N7-4:6UE+G1I;64[ M#0H@(" @86)S=&EM92YT=E]N7-4:6UE+G1I;64[ M#0H@(" @86)S=&EM92YT=E]N7-4:6UE+G1I;64[ M#0H@(" @86)S=&EM92YT=E]N7-4:6UE*3L-"B @#0HA(" @86)S M=&EM92YT=E]S96,@/2!C=7)R4WES5&EM92YT:6UE.PT*(" @(&%B7-4:6UE+FUI;&QI=&T[#0H@( T*(" @(&%BPT*(" @('!T:')E861?="!T.PT*(" @ M('-E;5]T(',[#0HA(" @1%=/4D1?4%12(')E%]T7R @(#0T#0HM(" @(" @(" @("!P=&AR96%D M7VUU=&5X871T5]T7R @(#$V#0HM(" @ M(" @(" @(" @(" @('!T:')E861?8V]N9%]T7R @(#,R#0HM(" @(" @(" @ M(" @<'1HPT*(2 @(&QO;F<@PT*(2 ):6YT(')E MPT*(2 ):6YT(')E&5C=71I;VX@9V5T0T*(" @(" J('5N&-H86YG92AL;V-A=&EO;BP@=F%L=64I.PT**R )?0T**R C M96QS90T*(" @("\J#0H@(" @("H@268@97AE8W5T:6]N(&=E=',@=&\@:&5R M92!T:&5N('=E)W)E(')U;FYI;F<@;VX@82!C=7)R96YT;'D-"B @(" @*B!U M;G-U<'!O