* Makefile.in (DLL_OFILES): Add pseudo-reloc.o.
* dcrt0.cc (child_info_fork::handle_fork): Call _pei386_runtime_relocator here. (dll_crt0_1): Ditto for non-fork case. * dll_init.cc (dll::init): Complain more in comment. Clean up slightly. (dll_dllcrt0_1): Call _pei386_runtime_relocator when we know we have a filled-in per_process structure. * globals.cc (__cygwin_user_data): Accommodate new fields for _pei386_runtime_relocator. * pseudo-reloc.cc: New file adapted from old lib/pseudo-reloc.c. Include winsup.h directly. Collapse #ifdef __CYGWIN__ into one block. Perform minor whitespace code reformatting. (__report_error): Use small_printf to output error. (_pei386_runtime_relocator): Conditionalize for cygwin to take per_process pointer parameter. * winsup.h (_pei386_runtime_relocator): Declare. * include/cygwin/version.h (CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED): New macro. (CYGWIN_VERSION_USER_API_VERSION_COMBINED): Use above macro. (CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL): New macro. (CYGWIN_VERSION_API_MINOR): Bump to 227. * include/sys/cygwin.h: Remove obsolete comment. (per_process::unused2): Shorten. (per_process::pseudo_reloc_start): New field. (per_process::pseudo_reloc_end): Ditto. (per_process::image_base): Ditto. * lib/_cygwin_crt0_common.cc: Declare pseudo runtime externs needed for per_process structure. (_cygwin_crt0_common): Fill in pseudo_reloc runtime constants. * lib/pseudo-reloc-dummy.c: New file. Dummy function to satisify ld. * lib/pseudo-reloc.c: Delete.
This commit is contained in:
@ -62,8 +62,11 @@ details. */
|
||||
/* Every version of cygwin <= this uses an old, incorrect method
|
||||
to determine signal masks. */
|
||||
|
||||
#define CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED(u) \
|
||||
CYGWIN_VERSION_DLL_MAKE_COMBINED ((u)->api_major, (u)->api_minor)
|
||||
|
||||
#define CYGWIN_VERSION_USER_API_VERSION_COMBINED \
|
||||
CYGWIN_VERSION_DLL_MAKE_COMBINED (user_data->api_major, user_data->api_minor)
|
||||
CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED (user_data)
|
||||
|
||||
/* API versions <= this had a termios structure whose members were
|
||||
too small to accomodate modern settings. */
|
||||
@ -98,6 +101,9 @@ details. */
|
||||
#define CYGWIN_VERSION_CHECK_FOR_OLD_CTYPE \
|
||||
(CYGWIN_VERSION_USER_API_VERSION_COMBINED <= 209)
|
||||
|
||||
#define CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL(u) \
|
||||
(CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED (u) >= 227)
|
||||
|
||||
#define CYGWIN_VERSION_CYGWIN_CONV 181
|
||||
|
||||
/* API_MAJOR 0.0: Initial version. API_MINOR changes:
|
||||
@ -380,12 +386,13 @@ details. */
|
||||
224: Export xdr* functions.
|
||||
225: Export __xdr* functions.
|
||||
226: Export __locale_mb_cur_max.
|
||||
227: Add pseudo_reloc_start, pseudo_reloc_end, image_base to per_process
|
||||
*/
|
||||
|
||||
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
||||
|
||||
#define CYGWIN_VERSION_API_MAJOR 0
|
||||
#define CYGWIN_VERSION_API_MINOR 226
|
||||
#define CYGWIN_VERSION_API_MINOR 227
|
||||
|
||||
/* There is also a compatibity version number associated with the
|
||||
shared memory regions. It is incremented when incompatible
|
||||
|
Reference in New Issue
Block a user