Version (X86_64) for struct_stat64 on Linux x86_64

Chuck Blake cb at mit.edu
Tue Dec 28 17:28:59 PST 2010


Hi.  I realize that 64-bit phobos is relatively work in progress.  I thought
I'd contribute.  struct_stat64 is broken on Linux x86_64 which further breaks
an awful lot of file IO.  I have a small patch that fixes it.  I tested this
with gdc 2.051 within gcc-4.5.2, with an attached program and comparing to the
output from the 'stat' utility.  It is so basic and logic-free that I
seriously doubt environmental considerations matter.  This doesn't completely
fix file IO, but it at least gives it a running chance.  I can read files
under 8MB, for example. :)
begin 644 stat64_x86_64.patch
M(R!(1R!C:&%N9V5S970@<&%T8V@*(R!5<V5R(&-B0&UI="YE9'4*(R!$871E
M(#$R.3,U.#(W,#(@,3 at P,#`*(R!.;V1E($E$(#8R,S$Y8F$Q861A-C$Q-C`T
M8S0U.3`T9C8W,&8V9&%D83<R-64Q.64*(R!087)E;G0@(#9E-V1E-C(W86-D
M9&4Y93,W-C8T93$Q,#`Q.3=C,&$R,S0W9&,V8SD*061D(&$@=F5R<VEO;B!F
M;W)K(&9O<B!A('!R;W!E<B!S=')U8W1?<W1A=#8T(&1E9FEN:71I;VX at 9F]R
M('@X-E\V-"!,:6YU>"X*"F1I9F8 at +7(@-F4W9&4V,C=A8V1D("UR(#8R,S$Y
M8F$Q861A-B!D+W!H;V)O<S(O<W1D+V9I;&4N9`HM+2T at 82]D+W!H;V)O<S(O
M<W1D+V9I;&4N9`E-;VX at 1&5C(#(W(#$X.C$T.C4V(#(P,3`@*S`P,#`**RLK
M(&(O9"]P:&]B;W,R+W-T9"]F:6QE+F0)5'5E($1E8R`R."`Q.3HS,3HT,B`R
M,#$P("TP-3`P"D!`("TQ,#`L,S`@*S$P,"PU-"!`0`H@("`@('T*("`@("!E
M;'-E"B`@("`@>PHM("`@("`@("!S=')U8W0@<W1R=6-T7W-T870V-"`@("`@
M("`@+R\@9&ES=&EN9W5I<V@@:70 at 9G)O;2!T:&4@<W1A="@I(&9U;F-T:6]N
M"BL@("`@("`@('9E<G-I;VX@*%@X-E\V-"D@>R`@("`@("`@("`O+R!,:6YU
M>"!X.#9?-C0L(')E86QL>0HK("`@("`@("`@("`@<W1R=6-T('-T<G5C=%]S
M=&%T-C0**R`@("`@("`@("`@('L**R`@("`@("`@("`@("`@("!U;&]N9R!S
M=%]D978[("`@("`@("\O($1E=FEC92X**R`@("`@("`@("`@("`@("!U;&]N
M9R!S=%]I;F\[("`@("`@("\O($9I;&4@<V5R:6%L(&YU;6)E<BX**R`@("`@
M("`@("`@("`@("!U;&]N9R!S=%]N;&EN:SL@("`@("\O($QI;FL at 8V]U;G0N
M"BL@("`@("`@("`@("`@("`@=6EN="`@<W1?;6]D93L@("`@("`O+R!&:6QE
M(&UO9&4N"BL@("`@("`@("`@("`@("`@=6EN="`@<W1?=6ED.R`@("`@("`O
M+R!5<V5R($E$(&]F('1H92!F:6QE)W,@;W=N97(N(`HK("`@("`@("`@("`@
M("`@('5I;G0@('-T7V=I9#L@("`@("`@+R\@1W)O=7`@240@;V8@=&AE(&9I
M;&4G<R!G<F]U<"X**R`@("`@("`@("`@("`@("!I;G0@("!?7W!A9#`["BL@
M("`@("`@("`@("`@("`@=6QO;F<@<W1?<F1E=CL@("`@("`O+R!$979I8V4@
M;G5M8F5R+"!I9B!D979I8V4N"BL@("`@("`@("`@("`@("`@;&]N9R`@<W1?
M<VEZ93L@("`@("`O+R!3:7IE(&]F(&9I;&4L(&EN(&)Y=&5S+ at HK("`@("`@
M("`@("`@("`@(&QO;F<@('-T7V)L:W-I>F4[("`@+R\@3W!T:6UA;"!B;&]C
M:R!S:7IE(&9O<B!)+T\N"BL@("`@("`@("`@("`@("`@;&]N9R`@<W1?8FQO
M8VMS.R`@("`O+R!.<BX at -3$R+6)Y=&4 at 8FQO8VMS(&%L;&]C871E9"X**R`@
M("`@("`@("`@("`@("!L;VYG("!S=%]A=&EM93L@("`@("\O(%1I;64@;V8@
M;&%S="!A8V-E<W,N"BL@("`@("`@("`@("`@("`@=6QO;F<@<W1?871I;65N
M<V5C.R`O+R!.<V-E8W,@;V8@;&%S="!A8V-E<W,N"BL@("`@("`@("`@("`@
M("`@;&]N9R`@<W1?;71I;64[("`@("`O+R!4:6UE(&]F(&QA<W0@;6]D:69I
M8V%T:6]N+ at HK("`@("`@("`@("`@("`@('5L;VYG('-T7VUT:6UE;G-E8SL@
M+R\@3G-E8W,@;V8@;&%S="!M;V1I9FEC871I;VXN"BL@("`@("`@("`@("`@
M("`@;&]N9R`@<W1?8W1I;64[("`@("`O+R!4:6UE(&]F(&QA<W0@<W1A='5S
M(&-H86YG92X**R`@("`@("`@("`@("`@("!U;&]N9R!S=%]C=&EM96YS96,[
M("\O($YS96-S(&]F(&QA<W0@<W1A='5S(&-H86YG92X**R`@("`@("`@("`@
M("`@("!L;VYG("!?7W5N=7-E9%LS73L**R`@("`@("`@("`@('T**R`@("`@
M("`@?0HK("`@("`@("!E;'-E"B`@("`@("`@('L*+2`@("`@("`@("`@('5L
M;VYG('-T7V1E=CL@("`@("`@("\O+R!D979I8V4*+2`@("`@("`@("`@('5I
M;G0 at 7U]P860Q.PHM("`@("`@("`@("`@=6EN="!S=%]I;F\[("`@("`@("`O
M+R\@9FEL92!S97)I86P@;G5M8F5R"BT@("`@("`@("`@("!U:6YT('-T7VUO
M9&4[("`@("`@("`O+R\@9FEL92!M;V1E"BT@("`@("`@("`@("!U:6YT('-T
M7VYL:6YK.R`@("`@("`@+R\O(&QI;FL at 8V]U;G0*+2`@("`@("`@("`@('5I
M;G0@<W1?=6ED.R`@("`@("`@+R\O('5S97(@240@;V8 at 9FEL92=S(&]W;F5R
M"BT@("`@("`@("`@("!U:6YT('-T7V=I9#L@("`@("`@("\O+R!U<V5R($E$
M(&]F(&=R;W5P)W,@;W=N97(*+2`@("`@("`@("`@('5L;VYG('-T7W)D978[
M("`@("`@("`O+R\@:68 at 9&5V:6-E('1H96X at 9&5V:6-E(&YU;6)E<@HM("`@
M("`@("`@("`@=6EN="!?7W!A9#(["BT@("`@("`@("`@("!A;&EG;B at T*2!U
M;&]N9R!S=%]S:7IE.PHM("`@("`@("`@("`@:6YT('-T7V)L:W-I>F4[("`@
M("`@("`O+R\@;W!T:6UA;"!)+T\@8FQO8VL@<VEZ90HM("`@("`@("`@("`@
M=6QO;F<@<W1?8FQO8VMS.R`@("`@("`@+R\O(&YU;6)E<B!O9B!A;&QO8V%T
M960 at -3$R(&)Y=&4 at 8FQO8VMS"BT@("`@("`@("`@("!I;G0@<W1?871I;64[
M"BT@("`@("`@("`@("!U:6YT('-T7V%T:6UE;G-E8SL*+2`@("`@("`@("`@
M(&EN="!S=%]M=&EM93L*+2`@("`@("`@("`@('5I;G0@<W1?;71I;65N<V5C
M.PHM("`@("`@("`@("`@:6YT('-T7V-T:6UE.PHM("`@("`@("`@("`@=6EN
M="!S=%]C=&EM96YS96,["BT*+2`@("`@("`@("`@('5L;VYG('-T7VEN;S8T
M.PHK("`@("`@("`@("`@<W1R=6-T('-T<G5C=%]S=&%T-C0@("`@+R\@9&ES
M=&EN9W5I<V@@:70 at 9G)O;2!T:&4@<W1A="@I(&9U;F-T:6]N"BL@("`@("`@
M("`@("!["BL@("`@("`@("`@("`@("`@=6QO;F<@<W1?9&5V.R`@("`@("`O
M+R\@9&5V:6-E"BL@("`@("`@("`@("`@("`@=6EN="`@7U]P860Q.PHK("`@
M("`@("`@("`@("`@('5I;G0@('-T7VEN;SL@("`@("`@+R\O(&9I;&4@<V5R
M:6%L(&YU;6)E<@HK("`@("`@("`@("`@("`@('5I;G0@('-T7VUO9&4[("`@
M("`@+R\O(&9I;&4@;6]D90HK("`@("`@("`@("`@("`@('5I;G0@('-T7VYL
M:6YK.R`@("`@+R\O(&QI;FL at 8V]U;G0**R`@("`@("`@("`@("`@("!U:6YT
M("!S=%]U:60[("`@("`@("\O+R!U<V5R($E$(&]F(&9I;&4G<R!O=VYE<@HK
M("`@("`@("`@("`@("`@('5I;G0@('-T7V=I9#L@("`@("`@+R\O('5S97(@
M240@;V8 at 9W)O=7`G<R!O=VYE<@HK("`@("`@("`@("`@("`@('5L;VYG('-T
M7W)D978[("`@("`@+R\O(&EF(&1E=FEC92!T:&5N(&1E=FEC92!N=6UB97(*
M*R`@("`@("`@("`@("`@("!U:6YT("!?7W!A9#(["BL@("`@("`@("`@("`@
M("`@86QI9VXH-"D@=6QO;F<@<W1?<VEZ93L**R`@("`@("`@("`@("`@("!I
M;G0@("!S=%]B;&MS:7IE.R`@("\O+R!O<'1I;6%L($DO3R!B;&]C:R!S:7IE
M"BL@("`@("`@("`@("`@("`@=6QO;F<@<W1?8FQO8VMS.R`@("`O+R\@;G5M
M8F5R(&]F(&%L;&]C871E9"`U,3(@8GET92!B;&]C:W,**R`@("`@("`@("`@
M("`@("!I;G0@("!S=%]A=&EM93L**R`@("`@("`@("`@("`@("!U:6YT("!S
M=%]A=&EM96YS96,["BL@("`@("`@("`@("`@("`@:6YT("`@<W1?;71I;64[
M"BL@("`@("`@("`@("`@("`@=6EN="`@<W1?;71I;65N<V5C.PHK("`@("`@
M("`@("`@("`@(&EN="`@('-T7V-T:6UE.PHK("`@("`@("`@("`@("`@('5I
M;G0@('-T7V-T:6UE;G-E8SL**R`@("`@("`@("`@("`@("!U;&]N9R!S=%]I
M;F\V-#L**R`@("`@("`@("`@('T*("`@("`@("`@?0HM"B`@("`@("`@(&5X
M=&5R;BA#*2!I;G0 at 9G-T870V-"AI;G0L('-T<G5C=%]S=&%T-C0J*3L*("`@
M("`@("`@97AT97)N*$,I(&EN="!S=&%T-C0H:6X at 8VAA<BHL('-T<G5C=%]S
0=&%T-C0J*3L*("`@("!]"@``
`
end
begin 644 stat.d
M:6UP;W)T('-T9"YS=&1I;RP@<W1D+F9I;&4L('-T9"YS=')I;F<["@II;G0@
M;6%I;BAC:&%R6UU;72!A<F=S*2!["B`@("!V97)S:6]N("A0;W-I>"D@>PH@
M("`@("`@('-T<G5C=%]S=&%T-C0@<W0@/2!V;VED.PH@("`@("`@(&9O<F5A
M8V@@*'!A=&@[(&%R9W-;,2`N+B!A<F=S+FQE;F=T:%TI('L*("`@("`@("`@
M("`@<W1A=#8T*'1O4W1R:6YG>BAP871H*2P@)G-T*3L*("`@("`@("`@("`@
M:68@*'!A=&@@(3T at 87)G<ULQ72D*("`@("`@("`@("`@("`@('=R:71E9FQN
M*"(B*3L*("`@("`@("`@("`@=W)I=&5F;&XH(G!A=&@@("`@("`@("`Z("5S
M(BP@<&%T:"D["B`@("`@("`@("`@('=R:71E9FQN*")S=%]D978@("`@("`@
M.B`E<R(L('-T+G-T7V1E=BD["B`@("`@("`@("`@('=R:71E9FQN*")S=%]I
M;F\@("`@("`@.B`E<R(L('-T+G-T7VEN;RD["B`@("`@("`@("`@('=R:71E
M9FQN*")S=%]N;&EN:R`@("`@.B`E<R(L('-T+G-T7VYL:6YK*3L*("`@("`@
M("`@("`@=W)I=&5F;&XH(G-T7VUO9&4@("`@("`Z("5O(BP@<W0N<W1?;6]D
M92D["B`@("`@("`@("`@('=R:71E9FQN*")S=%]U:60@("`@("`@.B`E<R(L
M('-T+G-T7W5I9"D["B`@("`@("`@("`@('=R:71E9FQN*")S=%]G:60@("`@
M("`@.B`E<R(L('-T+G-T7V=I9"D["B`@("`@("`@("`@('=R:71E9FQN*")S
M=%]R9&5V("`@("`@.B`E<R(L('-T+G-T7W)D978I.PH@("`@("`@("`@("!W
M<FET969L;B at B<W1?<VEZ92`@("`@(#H@)7,B+"!S="YS=%]S:7IE*3L*("`@
M("`@("`@("`@=W)I=&5F;&XH(G-T7V)L:W-I>F4@("`Z("5S(BP@<W0N<W1?
M8FQK<VEZ92D["B`@("`@("`@("`@('=R:71E9FQN*")S=%]B;&]C:W,@("`@
M.B`E<R(L('-T+G-T7V)L;V-K<RD["B`@("`@("`@("`@('=R:71E9FQN*")S
M=%]A=&EM92`@("`@.B`E<R(L('-T+G-T7V%T:6UE*3L*("`@("`@("`@("`@
M=W)I=&5F;&XH(G-T7V%T:6UE;G-E8R`Z("5S(BP@<W0N<W1?871I;65N<V5C
M*3L*("`@("`@("`@("`@=W)I=&5F;&XH(G-T7VUT:6UE("`@("`Z("5S(BP@
M<W0N<W1?;71I;64I.PH@("`@("`@("`@("!W<FET969L;B at B<W1?;71I;65N
M<V5C(#H@)7,B+"!S="YS=%]M=&EM96YS96,I.PH@("`@("`@("`@("!W<FET
M969L;B at B<W1?8W1I;64@("`@(#H@)7,B+"!S="YS=%]C=&EM92D["B`@("`@
M("`@("`@('=R:71E9FQN*")S=%]C=&EM96YS96, at .B`E<R(L('-T+G-T7V-T
J:6UE;G-E8RD["B`@("`@("`@?0H@("`@?0H@("`@<F5T=7)N(#`["GT*
`
end


More information about the Digitalmars-d-bugs mailing list