From: cgf AT bbc DOT com (Christopher Faylor) Subject: Re: New snapshot; Philippe's dll shared data patch 7 Feb 1998 15:40:13 -0800 Message-ID: References: <199802070236 DOT SAA02011 AT rtl DOT cygnus DOT com> Reply-To: cygwin32-developers AT cygnus DOT com To: cygwin32-developers AT cygnus DOT com In article <199802070236 DOT SAA02011 AT rtl DOT cygnus DOT com>, Geoffrey Noer wrote: >In addition, I received the copyright assignment form for Philippe's >patch which copies data areas of cygwin-compiled dlls on fork and >implements the dlopen/dlsym/dlclose/dlerror calls. The patch to apply >to this new snapshot can be found on the ftp site as >dlldataareas-980206-patch. I'd be glad to get feedback on these >changes since they're sizeable and make significant changes to >important parts of the Cygwin library (like fork). > >When I apply this, recompile Cygwin, and then build binaries with the >new libcygwin.a, they crash on completion of cygwin.dll initialization >with a STATUS_ACCESS_VIOLATION. I haven't looked into this yet. >Sergey, have you successfully gotten this stuff to work, out of >curiosity? Unless we get it working soon, I can't put this into >beta 19. :-( There is a problem with crt0.c in newlib (in my version anyway). The patch below fixes it. The DLL stuff (correctly) expects that it will be passed the address of the `main' function but the definition for main was incorrect in crt0.c. To be on the safe side, however, I've patched sigproc.cc to avoid all attempts to copy its data since it is unnecessary. That patch is also below. *** libc/sys/cygwin32/crt0.c~ Thu Dec 11 04:38:05 1997 --- libc/sys/cygwin32/crt0.c Sat Feb 07 18:15:25 1998 *************** *** 21,27 **** int __cygwin_crt0_bp = 0; #endif ! extern main; void mainCRTStartup () --- 21,27 ---- int __cygwin_crt0_bp = 0; #endif ! extern int main(int argc, char **argv); void mainCRTStartup () -- patch from cgf AT bbc DOT com (Christopher Faylor) * sigproc.cc: Ensure that no dll data is copied for this module as it is currently unnecessary. begin 664 nocopy_sigproc.gz M'XL(```````"`]58;5/;1A#^3'[%A AT X!&QOL``TOI3,43.,98C*<&9JF&IA;$O:EV?WGGMN<;U>!WM>7WV!9[07`9J`^J;]`Q>;37:+UM`SYX!T%V`9\]!::ZE M"R=7YQ]U^YV!IKY4`CYGT22HY`')@A/$GDM9D"]/NJ=G'7(R.7:]9TP"L=J%5D8>C$;_&OO!!(`A!V2BK288C&";1&#!= MT^33?B*X=SNN>5#,9,MQ0"D&8 AT T]A+&([7M5JTGH+L8'ZJR#9M0]Y?*07'3D M1>7@@U1C'9I,!I'V18*4TC[P<#(#`1/X213*+X@@"BNQ1.,X$%HL%-NY%J&> M[3SP[!I\KLIYAC*4RD>K)$*E AT 48K23:I$DE3Q<*50SF+99B& M+BT2N$BQ!3A^08I\BQW&"A>Y`\]GGBPC!JSC(>6FR923PHZGF8:I,R08B:+ M-N#79GFRR"G";+XL;>_<.3Y_^PZ?L\>;/-BC31[LB4X>[%^=/-@3FCS8TYD\ MV!.;/-C3FCS8`R[#^;/-C_:?)@3V3R8/>?/-B# M)P]V[\F#/6CR8(\U>;#[31[L,2>/^=\[1D([V13A?H0UNUMO?*X;VX`XH3SA!5QI"H-=:K8/C*T+>%\7[)2KB-4)KINMUJM!KYMV?H) M'UZU\=;65H[09M$)=P6LD6?-P%['9.*S%I AT L%VT2U[Y9WP/SF(S!2\=FC'/\]++ MQ,I\AC(0[_%[(,(B',)&\1Z+FM62PB_#;+!E[E%,PF'!U:HMD5!YP-LM[7W' MR2V+,L&P*''CR5H)<0,6L$Y#SB2,`AR!D'.[?B=%@ M.O(D1U$@6=&^5$A85!>ES=#CFG&UB`!UH/WK&'5U4$*<-/:X%ALEB\UR AT Z>+ M62JLJ.%;OAS'Y[U^Y[<^N'@"XM+9Y]G%QK']/`WXB.0TLW7H\^+\S-K:;0`L MQ=$H]"SE8:W$_RPGT?M7H>V]+'#9K`$OLK2UG.#E[5+LEQQ;9Q#79A!GF&<;=HD:W1'@N6[59CC#SAOY(-?-LI?JDNM-*.7=C< MXS1!B%F/N]B%K*),(>JQU528R3=(A^^W6A\.[%&2JZJ)>9A/=34KA^T=@K!3 1"/9#(+`[0_@;6>%7&BX8``"8 ` end -- http://www.bbc.com/ cgf AT bbc DOT com "Strange how unreal VMS=>UNIX Solutions Boston Business Computing the real can be."