www.digitalmars.com         C & C++   DMDScript  

c++.windows.32-bits - coff2omf doesn't work correctly - example.zip

coff2omf.exe produce omf file from coff input with some mistakes
I attached an example, where it is very clear to see.

Here the disassempled input from original (coff) obj file

text:00000000                 public _zxfft_bitrev
text:00000000 _zxfft_bitrev   proc near               ; C
text:00000000
..
text:00000022                 xor     edx, edx
text:00000024                 mov     dl, ds:$L1227[eax]
text:0000002A                 jmp     ds:$L1228[edx*4]
text:00000031 $L971:
..
text:0000003A $L973:
..
text:0000013A $L1228          dd offset $L971         ; DATA
text:0000013E                 dd offset $L973
text:00000142                 dd offset $L975
text:00000146                 dd offset $L977
text:0000014A                 dd offset $L979
text:0000014E                 dd offset $L981
text:00000152                 dd offset $L983
;
text:00000156 $L1227          db 0, 7 dup(6), 1, 0Fh dup(6) ;
text:00000156                 db 2, 1Fh dup(6), 3, 3Fh dup(6)
text:00000156                 db 4, 7Fh dup(6), 5

==================================================================
The result of conversion to Omf is totally wrong!!!

_TEXT:00000010                 public _zxfft_bitrev
_TEXT:00000010 _zxfft_bitrev   proc near
..
_TEXT:00000032                 xor     edx, edx
_TEXT:00000034                 mov     dl, byte ptr ds:_zxfft_bitrev[eax]
_TEXT:0000003A                 jmp     dword ptr ds:_zxfft_bitrev[edx*4]
..
_TEXT:0000014A                 dd offset _zxfft_bitrev
_TEXT:0000014E                 dd offset _zxfft_bitrev
_TEXT:00000152                 dd offset _zxfft_bitrev
_TEXT:00000156                 dd offset _zxfft_bitrev
_TEXT:0000015A                 dd offset _zxfft_bitrev
_TEXT:0000015E                 dd offset _zxfft_bitrev
_TEXT:00000162                 dd offset _zxfft_bitrev
_TEXT:00000166                 db 0, 7 dup(6), 1, 0Fh dup(6)
_TEXT:00000166                 db 2, 1Fh dup(6), 3, 3Fh dup(6)
_TEXT:00000166                 db 4, 7Fh dup(6), 5


Regards
Dmitry


begin 0644 example.zip


M>^W;I)?$A="8- GI5W"<SR:%QFVW"I&W/KO=`D7!=6)OXLII0WQ)W$ I/9U*
MM5X.F3]:B;\*$D($5!7S#PB$G$N+`J6".`F2!0:<R$CG^H`3;. F.F)^;W9G
MO.MSG%HM$BOM[F_>O'GSON;-[+9&9&GXW2TM7TQ*TGV2=VWL/MIS('V\QV]*
M&W!W2W.N&E7:F.X92`=(GU,EZ>MX_U[UVD_C;I12S]S?W6-V'>M+]_7NWZD_
M\=0C'4\V!DEMK8\^WJ)K3S0:=C%;7)T8T11+F[3UR>Q4W-(G,Z<F70 Z\9BM
M36Z^,#A$DF?6ODJO<YI#K^EF#N
MO6 ;3O:L;!F.>4XK89!BVEK)7!*13$LK)49TW$9QUSN)W"LD0G,2(W';*.>B



M6'B>.A\[<8]MG/?SC++AQLST'?2>F9E>Z;_K_2R)>6_DRF0*>=4N1-M&J6,N


MTL<PSR4OVXU+_CR7,`]NW=F5/_40-Z28 G9EN&^LP];&4_XT2;`51R_;QG N
M.FAIX[PYQIICTZ=ID#EZ
M5!7RF^H!1!;NS=\JTUG`5; 7.$*^\U>PZZ] \AMN0]GUSJFGR8]P16(DF1$P
MFDF\>=ZBY:N[R)'$R*.#LL
M*N^+)D;.9`L14IPIUP!M5%\;592 [-DH`FNRRL04=LPE,K&0(HZG<")W)$+!

MR0G>B/PU-7-Y9H8EE0,S3$L90F  )F<40S9[\[G,0VQ"I%6))BQ],-$NB19*
M<R$?E=:M0_+\:B/15*1OL2,H02OF776=)X!995I0:"I]PZNM(G`-?N`:Q!;B
M9/(2HD)Y+;*M8J4F::7>)DM2#HO(VVK::=':&KB5(5$7L,9&KR.D.:V0\ I_

MQ(3HR^G%=BH#G#T'67/53&8"6GJ)F=,+[;3F;3GEB00;O)L2?'J!(E[PG%-8
MG'H*J2?LAI,^2L.AY?R64RK`]&)[4(!1S%]7,U<\"9X[+"B$0&._=G)*RF(K
MF;9[UBA/C?XGD%])DY4MMOK+?IYA8>AE&D.K?UF$#APHA/'\9=4B%5W*%F11

M3US,M$I 6 ?3NH%I'3$MI)M62F8I96!3:$< XMDS44M#K56R4U%+5Z8NWO _
M<=_-[?B?NN_F45N\^QJ0LFI.T4B8IU'F+"ML1GF!;31)CKT*-J\4.%0*6%&+

M "PC452(6&E?7,41$??VO%)H<K_>E0+UCHX-H:QJD?DQ!`FG9`O(%3ISJ< $


MUE39*]O)ER^D5_G':UJ?9;'/3:^8E\R^.B1L^A==6C$FY2MTFZ13M#N7.TEJ
MC-(FQKX8RS;5KG X,<B](4N%85BCELR&\&3*G"J"YZ5C2\]I8SA`?W4:BZGX
M_A\L8\S6Q *Q\)U5O)FS6/G(OD>'F9)_"B]YIW`$GDH&_$9?!$KP PK9I"G/
MTN>,6M&G4A\EZ[G=,OM>4I H07DVP YHF%>!7O%4<!AY-#L5J>A4O$[!<&]^

MB=Q),O19H.4,/0RD>O*`ZAG:"Z0P]#A0


MK66T-=4<;:_F(\QJ+N]$-1_[/='[2S'B;P(MB?,1*^-\1*> '1&T;\>YE&%!

M8UL4KDN?Z/V:PD><%B O1EP0(Y;7<=I==9S65L>E/"-HU?6<KZ&>TQZLYWRZ
MH+T!]"F&W 9:S]`_Z[U??DEI?8+SG11H!& 50W\$NMO32N7HTRKOW6CV]O$_

MH>!O1YGQT(]'^MGXK]4_V3HK/2IX&G&O;7U QV:T>OQ1,=:W/*"-Q[,)Z,LA



M7:K ^7/(AW1-X_YWG'N#KANXM

MLTF=A[L&<!_L_\K1SI-^3\_`$1]U=7=W=N_OXZKUI[L.]C3Y??W']GM]K-77
M?ZB7Q/DVF'TO^!V'CW!D#G0

M+U!+`P04````"`!F=" S:OXIZA )``#X
M>VP<1QV>W9POYWCMVZ07UPA4D'!+:7FD21JBID"=9*,0>>/S8Y<6%!UY>!M'
M;DECY]%(#CF=`EEO#Z5_-

M6W1V.L+80`\[7<W8ZVJ[OJ6M YVN0;FE>>O.)E5I9V>;&:M*=2C/=E2EMC9U
M-%5M:=G9WA%);6YOKVYL;'].W=S2W+Z\L;'CN:32'MG2LE6)D- R]$>W*ILA
M0!EZ(]N:FSK8#ZI9U




M ,RR]R\1/OB>.6>C-/C54Q \C^[_CJ'S/OH_N0)]LVWH!0#GVG&A]I[*AVCI
M-^-HD/R&+K3<IA9V+AH1*->L8J;XB?B((IE*WE+SF<F8J>;3?7D'G4>W64I^

M5(N69F<NB:9F&Y>5$ 9)AJ64C"J!&:92BH^H^+3BIG?BV>_1%(H='XE96CD;
MV6$J94NU,SG15&U,$A\1+=7))IK<V3,715.Q+;5L6"L-4RM8).WPBHPR[W9;
MM()AKK04AS<Y]QN!  K!V.2NF9D9Z]:N7[.%?E'W)T0K?V)TX=^R1?H7^T4^
MY/ /^ZOB<%J#J,F_('A=FT`0\_!<OA5A;RN0:S)O(^S*!"`W82I7+/5*)B>8
M2/NN1(\^9FE7/)P1&N[.3#U$^<S,5+V7UWDHB;HYL))/`E>MP=265FJ;W2I!

M9V_07AS1G,Q-X=35PZOG*L!MTR;67<Q,"_'7+VXG&'/DCQ.0+266E<Z8ZAC6
MN>ZB7;ONK7,=Z^!3[4VYOJ_ZAA23T*X,]XVU6<IXTELF`;'BZ`U+&\]&^DUE

M87G^R_5"-+^M7JC*M]0+D?RS]<*R_.YZ0<SO1^G64Y"[]15*-E.RC9(=E.RD
MI`W)T(MZ];NO4>&WNC#T5UT:WJ%7#U_0XR[K !CA=:QN:?#Z>Q2/B<EEV%7$

MF$0:J -DQD>V]HM!N1GEMW((6U:SX?22[_08Z&:36CX1A4--K3SU?3"$WQ>)
MCUS,%`12G"O7`&UD3QLY(+[,I0C 9'`^Y`K;1I5((J2([2H<SQX4"&)$7 XI
MG;LIFUH)>HPZ+B."[<HPH3\W(2.0%B)_A_-H$:25!6`LM13>#W(;H<AO<$?D



M8AUIL2V04PH4\D(6GL$IU78O)`& .3;(,!(D%V%?S>.*AH5=0;`WS$ _%D1?
M5BVV$OGXXEG,-5O-1#JDI0O,K%IH)::QQ*0[)<3 W60 IQ8HX 5R#AMXB>4;
MB7`>I>1SE*SA_$/)1DJ>1C+X4[UF\/?ZBO-[]9KSO7K=^4&]]OP?];JAC^DU




MV\5Y5O4:E[*L%%K6QK).:%D[6!:S&V92Y'C6<"*U(A"QS,6(J8#HI<QDQ%2E
MR6MW_T_<=W\[_J?NNW_4ENZ^!D!6SDH*3>9JE+[$654K+W"&)\BQMR'F\I!-
M/,09-;80H7*)[6)(I$`B.&E*;&`;&ZP"L]3K=8,IY`>1_TBO';P`AODZF.8$

MG7*<'U8L2LH+.L->Q!D5JB^ND,05N <KLHRF(FKC)]72."S`D'N$ERH6]QBT


M[[CO*^,Y1\2-T^#O
MS?SIQG"'N>;0'C0(K]`M3T\19[9T M08I6.1/[O+%K%AK!(8Y-X*2P/#L.M-
MD0_QP93N*T+FY.'JR\H8W /?F<)F*K[_)U,;LY2Q4"P\9Q7OYRQ.2)GWZ&Y6
M\AX5)?=1 <`3"<%O]*R2PJ]2H$F1#M";4)[3)U,? ?7R,R)_=$I\JJ!E8!<;


MT&4FA3F=DML9"#R>P^-JH)H-KM)7#WY1C


M=' N;V)J4$L!`A4&" ``````-P8I,P````````````````0````````````0
M`,!!Y`D``$]M9B]02P$"%084````"`!F=" S:OXIZA )``#X
M`````"`` ($&" ``3VUF+V9F=' N;V)J4$L%! `````$``0`V ```$ 3````
!````
`
end
Sep 08 2005