www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/1998/02/07/15:40:13

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: <Eo1879.6xA.cygnus.cygwin32.developers@bbc.com>
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  <cygwin32-developers AT cygnus DOT com> 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&<U9
M.EO7R)*B.T&<3/K;NWLGR;(M,N6E'>IA;$O:EV?WGGMN<;U>!W<R"E/5W-MM
MO6S]N*GD*$XB=\-UEZZ$!Z=B`*UM:._MM[;WVSOX96_W6;/9A!L9JC0NFS.N
MK?DK:+W<;[?WM[>M>7WV!9[07`9J`^J;]`Q>;37:+UM`SYX!T%V`9\]!::ZE
M"R=7YQ<G0$F<((IBYX9+#8?0[9UV>]U^YV!I<Q.NZ-XP2D"E`[(42 AT D%.@+Q
M6>KY4`CYGT22HY`')@A/$GDM9D"]/NJ=G'7(R.7:]9TP"L=<AABM=WEV9B+U
M?0%*C'GL1XG(PF%#;WP18J AT E>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<JN1!@C,=*EL^YVFYU#F^$"=*:B0<*DP$47/UW$Q
MNEJ$6V"L9D85'J2X<CRI8EHNS#F%<Y?>)$*E AT 48K23:I$DE3Q<*50SF+99B&
M+BT2N$BQ!3A^08I\B<CI-0\]Y'LT+'&FNKV9O]W AT Y66F$)$)017G!EF4126A
M?FM)O6A9"&]*FT!Z%6HQ8YTQ_%9[2C[C\-:N4,FC0DCRXAU<8CU=*/(_CD*=
M1,'\3L!ZL]ZC9)KVCS$+'PGXE(I44/Q$I_$B*S",8]2THI5Y+NY:R#,;-K=7
M.AU2;OS;K,,E<7DP,<)Y&B5OD"D2]\#YX$_A:M1XTD$EC+SY9JV-I+J^#(J]
M)M1&IOOS8`6Q5+U_R[J_=V`=VA\,RJ,@@/'$QDA$N*KRR.OK&.<'3^!&P6SY
M<UBS82A`S91RA6HCS-8N;')L`S&2)96)93B,H![G=A;*AP.HP`%DN^#Z)1H/
MI%"YXU+)T1.NX-2^6R(@3R$LGA6$ZJ7C`:HE\ITCTZZG1<QY9IFK'!<RH^O4
MF\CXR;X[/G'V$+ZVOF7T)UI1",LR$C$R7"6]S)2K.A!MNSQ$E!!/R;?R$&.=
MX\N+;O^=<]3O7W1_N>QW&"A>Y`\]GGBPC!JSC(>6FR923PHZGF8:I,R08B:+
M-N#79GFRR"G";+XL;>_<.3Y_^PZ?L\>;/-BC31[LB4X>[%^=/-@3FCS8TYD\
MV!.;/-C3FCS8`R</]EB3![O;Y,'N.'FP^TP>[#^;/-C_:?)@3V3R8/>?/-B#
M)P]V[\F#/6CR8(\U>;#[31[L,2>/^=\[1D([V13A?H0UNUMO?*X;V<Z]YD'-
M_!*RM]MJ[.UNYS^%?"5R9C:)>X`XH3SA!5QI"H-=:K8/C*T<PMKSA8U6,\](
M3G6:A'!Z=,8Z!V9`VMMM8\*=?$*J2L@>+>%\7[)2KB-4)KINMUJM!KYMV?H)
M'UZU\=;65H[09M$)=P6LD6?-P%['9.*S%I AT L%VT2U[Y9WP/SF(S!2\<QNG-:
M!]?G"6:JT6-C0;6,)TH$P^;/-@5R1WV$%^"P_L71<<?I=:Y.NV>=FC'/\]++
MQ,I\AC(0[_%[(,(B',)&\1Z+FM62PB_#;+!E[E%,PF'!U:HMD5!YP-LM[7W'
MR2V+,L&P*''CR5H)<0,6L$Y#SB2<ABQ9*!GC;20)]G"92J!M&8J;K"J@%+"Z
MHE8;4&[MRN<_PN4&1J'#I!)-R;J4KG*9#N&ON86:.N`&Q>,`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!<X+0V
M%K<!,)8S-"D.&!*"5"$3:E942)_72'"D.4+PXZ?I<827Z^NYP"S&@Q4LQ)ZI
ML!(WS$J:85\D8QGB>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."

- Raw text -


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