delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/03/01/21:32:13

Date: Thu, 2 Mar 2000 00:30:43 +0100
From: Frank Heckenbach <frank AT g-n-u DOT de>
Message-Id: <50ECD832.20000302003043.FOO-1F9A.frank@g-n-u.de>
X-Mailer: smtphack 0.3.5 by Jan Andres
To: pavenis AT lanet DOT lv, peter AT gerwinski DOT de, djgpp AT delorie DOT com
Subject: Re: Bill Currie's `serio' module: License and bugs
X-Counter: 1495 peter AT gerwinski DOT de
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com

Hi,

I'm the one who did the work with bcserio. Peter forwarded your mail
to me.

I'm not subscribed to the DJGPP list, so please CC any replies.

> On 27 Feb 00, at 10:09, Peter Gerwinski wrote:
> 
> > Hello,
> > 
> > we would like to use Bill Currie's `serio' module in GPLed and
> > non-GPLed projects.
> 
> I also tried to use bcsio20 with:
> 	DJGPP v2.03
> 	gcc-2.95.2
> 	recent binutils snapshots (this year)
> 
> Before I was able to do anything usefull I had to fix some bugs...
> 
> > Second, we think that we have found a bug in _sio_write():
> > 
> >     _sio_write:.globl       _sio_write
> >                     call    disable
> >                     pushl   %eax
> >                     pushl   %ebx
> >                     pushl   %ebp
> >                     pushl   %edi
> >                     movl    24(%esp),%ebp
> > 
> > There is the return address (4 bytes) on the stack, and we
> > are `pushl'ing four registers, so the parameters should be
> > accessible at 20(%esp).  However we try to access them at
> > 24(%esp).  Did this routine ever work correctly?
> > 
> 
> sio_write() is broken. But this is not only broken procedure.
>
> I'm including my diffs in attachment.

Yes, I discovered some more problems. I'm attaching my diffs with
yours integrated.

I'm not sure if it's necessary to save and restore ecx for gcc in
higher optimization levels. ISTR it was, but since I don't usually
program in assembler, I'm not sure. I did that now, and it won't
hurt, anyway (it's not in the interrupt handlers, therefore not time
critical).

Also, I think that the need for the separate linker script can be
quite easily circumvented by declaring dummies before and after the
critical code and data and use their addresses for locking, rather
than the linker-resolved symbols. I did that, and it seems to work.
Are there any problems with that method?

Frank

-- 
Frank Heckenbach, frank AT g-n-u DOT de
http://fjf.gnu.de/
PGP and GPG keys: http://fjf.gnu.de/plan

begin 600 Bcsio.dif.gz
M'XL("*6EO3@"`T)C<VEO+F1I9@#56GN/V\81_YOZ%(OXC.HL2B:IUTF!6\?V
MN75ZCHWS!0%:%`(?*VEMBE2XRY.<(M^],[/+E\13[-RE10^P*>YC=AZ_G9W9
M82262Y9F8O4T3!.5B>!I$$J1>LY3R3.1#B1+^.ZNODZ_WS\YV?J)1^S[/&9L
MQEQW[@[G[@5S9[-II]?KG:)LW:QS]M;/&/.8X^!$9\0\QW$ZSY^SOCN;VJ['
M>OB<L>?/.\RR!I(K2_(DVJ>);7EETRI5^W2YM*UAAW5Z`\7WJM-;R$6,O^;6
M8!6G06P5#3"F/Q!+]OK=]>+5]W]]_[[3)SJA$FEB#?28_H#'DE-/\9Y$8MEA
MCQZQ-Q^NV3+-V(_?7=\PD2B>9?E6$3=^+%8)<A:F&^B9DRB>-[:GK.=Y'CRT
M)!F'\>[<LOPDBJVSH?V8^WL+_X"^2$)?<N9.QF,'%K2L37K["PCPV(]I''(5
M^G%LP2*;UWD2WOA!S+O49X_.D01V,[7FS-]NLW2;"5]QY&G#LC17(N&=GJ'Q
MY#Y$F%7^H5[>7#][YK`N\`G/<];_,]O(K&V09P:Y-&B_$:IMU,B,\FA4%MZ2
M-H>CL7W!>L.15^("N`E(.V?.WG>P!3066&=.X+@N`,IU;.@EPG++0[$4(0-S
MLG19F:_KG1^2\IQ._\E3FI9QJ=*,DS8ROA(29DD&QH,WE6<)4RGUE>1 AT 3X1I
M!``:@9&WZ1:L%TE4^GV(]4;S)T^12$F0%;\1%M5+5'^10NOM8HHH'%Z@^LQ^
M*N&*)IAC$["G@#U:O]-'A((J8R"5J:L/UUVD=F[3`KU'C]PY,G/7`*`FDL`"
M/O>H?GP/U,ZRSF[^=GT)+7MM:K4OE<#X9JL^X\"/H66Y2^)[/''($8S',]L=
M$N=H1[2?S\*UG_DA3!T8W4GF,-C;,@]#+N4RCVWF8H/*_$2"D"S(ETM824@&
MG7%3"POP3XMMKN:EQ]#OI/)<KE&;(0E&6R<2$O<,J=KT&BN8-]!\[2V AT C4O:
M<B>HJ"TJ"L;T#5X]IV AT -P9LRAMI9<6V+4E`$1\!1?E4JOYJ(Y'H%N=%7DF.&
M'()AS?VH-":8RN!")"MR?>DMSY9QNF,R97'J1PS'(V!35BBA)*5\$==P@:00
MZ]A<S(CVY:8%9FV<!7:B2;0\N2,PA.%[W6`<UR6AM&DU:`#E<`SU\.FY!NZ-
MG4(6Y$EA0.(6K:L];+G'C+W)7[>`99<)Q1MPH9;?"YB@^;:MTVF"*1(EF"H[
MXXRR]>(88K$U],K62%3XN:A3Z!V/E=78X:1.`3UF!IX57\J6C[]8UG#9!J=@
M^_O AT A":=N)X]!`<V<<?V:&A,^C&!M=R AT P[QY:<-@;S>7+/5/!TU_.#\6$(S4
MJ]HG]7:8+/,@+D0,&WY6-/UL!1O08]43[!\&?J"UEVL>?B*=55L8X`_'%FR/
MOG%N79=M./B[PMDEJ=*N];P%PKB#HC1IHKAH/(+N$;!K\"Q`=M&&&[>!)GW2
M@%\N'`1[]HP55L/-3#L:SD@?_B5I):P\V.S]`T>C+80!TL;HKP1#R<J14PI)
MX\<S]`!"`%<)1]_4;CN*SL+XT'@-1'R))?U;8`OI5B;$3CC;_*C5>-A+G0WK
ME:WW.+CZK7;KM1Y AT I34A1BN,"3_9UQJSV`B&3.W\(=8W9O_8T%\S#SF'L6=/
MP#=,W#+$?I#M]I,/(<.!C:HX3:@J[.B[-"X`O7_2+$TO,$Z=7%R4<2K115U9
MUJ_FQZ^H:#P1Z_M9UH&`[H/Y,=HS_DS>$<+!'0"TT/:Y"2OO(J&=HQ]AHC%"
M AT VU___&D0S;IWW)&?'51YE48:BM,(=!VP0Q3S\73MV&'8FX1_!Y,/V6P?GU#
M_8;U>@=C*U-^T!&C-E"[&Z0^LY,.6K_>\;5LH)`.OB3?!&`B2#XJ>X4\CB6&
M-.LTCEBYXI?MP*\CJS?K#H&=)TKH#*\(CPUVRCC\SM@>,X-&=$_V'TUQ%TXA
M8B]V8:"RG77VXOKRN[]CR-](L1X?IBEW[4-B<9G&$"%@Q*!V*03O">7KDD%J
M>BLB<"X4\1>Y4R1NA01PQ;X*UU66I=D<3VQW!'Q.`:YCG5$0+C-A:*;:+0'I
M5>9O!JUP49!*\JAVNU!K+8T_:D08#0CUCD"CA:;D1LD6*8QHMWZ<`V^^E.`(
M#*=2^>&G`6.OWEU^8#^\NS&$PC2!R`H\6)9N6.#GT:!IU)=HU'!_*F&38+Y7
M5]^]T`D;NAFCYQ-*/C2RUL:N$M4OQ-_5T%U+&Y"Y5U=7!\S5:5J%HMC5AQ<(
M>L/+`8FW=1)D^^G0=B&*G();]AP#TF.ILSNDCGSE/RWS<J8=U`G)OS2/6+7"
M:?4P<%JUPJF&EA(GF%/]SU!RPG(@W![S##K]BR.BSH55",K>GH+#(:)TQHGK
M^VL-C]G(GHQ9[P*2C:G7\&$/`8?&*7<O;Q>)C(?JP.EMTHAO&%VWIK%V:IJ3
M`5GY^O+EN[=O+W]X=?D*(BY5T(HH<-EAF-:D"@=!QG_.H2UJ]X";,#OR?]!V
M'[B6QGK;1%UQ1U*YD+B\Z*BYD/@^._!(G-4?)@[[+4#_`>B(1<+_B^"(6\`1
M__^"(VX!QT.)<_5 AT X,`#47W>ZFOZ/!&A;X`!$>&&,JXN&A<O!"CO`F?/,E_Q
M]HL!!=,V\LB*U'K/,PFBEWS#(=*$L!7\*%\"..DB3Q>'UFR'"6,.(0Z<4\BJ
M'BCU_649WF0$R4"H,I4T`&?!9\4I5PO]!"\*/^92L33[$ZRB4K#=6N>;YC)2
MWY^T[13:)HKV21O.@()>?@N1\R[-Z*Q.,[!5'7 AT P")0F(*8N>R>-7LB)MD2G
M%;?'B_3:R9A%BM[J7OA AT D=/@`X7HXHGCTM^)K7.`P#ZH\P842#4SXS`$Y(J"
MG!`>SWZ6YCH/RU=HLI4/D(RCOYR#CQ$0'H0^V!Q=2YP:[!)1&*D+<T2'7%[R
M>=!6QVM4[TS1KK?@A[5`T]#IF6H"*#??DO&IJE=6)"!MALP`6!K`(-Q%"@/P
M3.!!+^E"`S%*3I+[X9JHE9/I0B#%3!V2=S\0,1B'X$917?<OT`YFX%A_-31@
M.?3J`-ETN92H4[PI31GL>X868\9B9*MO02T!,SZ![40<TT+M$$:&=)8^&U(Y
M<E;+TH"GG26RGZ.-+S])+`(&>]O#R@&DEE@'#/-82XZI!_*CKPI@*3`M3&R4
M[_2%2<S])-]6E[1+-`^%4D0=$E):#(&D6^N-E%\V:G%N+5Y;'R$2"W^NEFXT
M(^FFHU(Z<ITTHIC7B/MJ(SP]HF]"VA9&Y2&C*)XN5M%=^,YJU2->>3?J?N_?
MO&0XB'15:!$UNUO[BAW40R%;E_H,II$0YN6@>VP4B5`"W/8O7`L_&]LSUG,=
M#S);G=W4KL81.V_>G*S1]?3NQW+1V;30EER#,SDKE8>UN2%9\^-FB_.%6B#I
M!5:MRP(RDJ+^)W<-:)PXS4%4BAS$:;*RQ':!163Z),`9>[;KHGS3"ZP)F AT NF
MJEQ270[)K5U>PE?%E5.7.*"I(V]"&>IBL8@^KK;;1207P*\ORR(\=9,X:9Y%
MLLQI6V;4,M['Y7A6?%30<N23P*X[Q`L5UQU5>[404)C0H,.&\U.7*&TU"*T8
M]-EZ&<_3RXRK91Y*JXV2%3/K35R\>($%9TY1T^VP\?P+ZBI?(M-O?-^!25O]
M^X[B71\5^I6^'L%?C:]'J(O1QQW5)Q,UK`)0;8O*"_#(PEOX'_VP5+Y1M#?S
M["'(/71G]JC^48NI>,*$9>RO9&]DE<7QZFZ<1@)9/;"8TWOQX^O7E]=7ES_0
M]>K1A/?OKF\^O/G'I6;I:(($WX$),WD6J;(\5'G&]9'95(!IZ$3X.5$_SX;M
MGP7!.;,9A*T?_NBNN[\HTOV-#XJ<N3.=C[W3'Q35YKWF AT 9DWGLU'3O4]D3>A
M<T$_4/-P^O,LT?4529+]\U\0EFY8]QO]^LWYM\U1O#F*5Z,Z?;2Q"-EM*B*V
M6/@*^<L57RRZ7>(6U)IFY^<0U7Q:&"C*+HX&1WEZKCPYF?T;#+U8I4-O$6TW
H8D%C\&.1KJ0`Q^;TZ.LWY/5H-$K1U2+;6J:^?H/1_P%,^QNC.R8`````
`
end

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019