diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index b48ce0a3f..bbcb72eb1 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2005-03-10 Christopher Faylor + + * autoload.cc (LoadDllprime): Scrap use of .linkonce and just use an + ifdef guard to load .foo_init into data segment. + + * dcrt0.cc (initial_env): Allow colon or space as CYGWIN_DEBUG + separator for consistency. + 2005-03-09 Christopher Faylor * pinfo.h (pinfo::pinfo): Clear more elements in the constructor. diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc index 482820424..5d852d4f9 100644 --- a/winsup/cygwin/autoload.cc +++ b/winsup/cygwin/autoload.cc @@ -56,14 +56,18 @@ details. */ additional initialization routine to call prior to calling the first function. */ #define LoadDLLprime(dllname, init_also) __asm__ (" \n\ - .section ." #dllname "_info,\"w\" \n\ - .linkonce \n\ +.ifndef " #dllname "_primed \n\ + .data \n\ + .align 4 \n\ +."#dllname "_info: \n\ .long _std_dll_init \n\ .long 0 \n\ .long -1 \n\ .long " #init_also " \n\ .asciz \"" #dllname "\" \n\ .text \n\ + .set " #dllname "_primed, 1 \n\ +.endif \n\ "); /* Create a "decorated" name */ diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index df639c20f..524b30034 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -552,7 +552,7 @@ initial_env () len = GetModuleFileName (NULL, buf1, CYG_MAX_PATH); strlwr (buf1); strlwr (buf); - char *p = strchr (buf, ':'); + char *p = strpbrk (buf, ":="); if (!p) p = (char *) "gdb.exe -nw"; else