Alexandre Oliva
5ec1b87a26
include/elf/ChangeLog:
...
Introduce TLS descriptors for i386 and x86_64.
* common.h (DT_TLSDESC_GOT, DT_TLSDESC_PLT): New.
* i386.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL, R_386_TLS_DESC):
New.
* x86-64.h (R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
R_X86_64_TLSDESC): New.
bfd/ChangeLog:
Introduce TLS descriptors for i386 and x86_64.
* reloc.c (BFD_RELOC_386_TLS_GOTDESC, BFD_RELOC_386_TLS_DESC,
BFD_RELOC_386_TLS_DESC_CALL, BFD_RELOC_X86_64_GOTPC32_TLSDESC,
BFD_RELOC_X86_64_TLSDESC, BFD_RELOC_X86_64_TLSDESC_CALL): New.
* libbfd.h, bfd-in2.h: Rebuilt.
* elf32-i386.c (elf_howto_table): New relocations.
(R_386_tls): Adjust.
(elf_i386_reloc_type_lookup): Map new relocations.
(GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P): New macros.
(GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): New macros.
(struct elf_i386_link_hash_entry): Add tlsdesc_got field.
(struct elf_i386_obj_tdata): Add local_tlsdesc_gotent field.
(elf_i386_local_tlsdesc_gotent): New macro.
(struct elf_i386_link_hash_table): Add sgotplt_jump_table_size.
(elf_i386_compute_jump_table_size): New macro.
(link_hash_newfunc): Initialize tlsdesc_got.
(elf_i386_link_hash_table_create): Set sgotplt_jump_table_size.
(elf_i386_tls_transition): Handle R_386_TLS_GOTDESC and
R_386_TLS_DESC_CALL.
(elf_i386_check_relocs): Likewise. Allocate space for
local_tlsdesc_gotent.
(elf_i386_gc_sweep_hook): Handle R_386_TLS_GOTDESC and
R_386_TLS_DESC_CALL.
(allocate_dynrelocs): Count function PLT relocations. Reserve
space for TLS descriptors and relocations.
(elf_i386_size_dynamic_sections): Reserve space for TLS
descriptors and relocations. Set up sgotplt_jump_table_size.
Don't zero reloc_count in srelplt.
(elf_i386_always_size_sections): New. Set up _TLS_MODULE_BASE_.
(elf_i386_relocate_section): Handle R_386_TLS_GOTDESC and
R_386_TLS_DESC_CALL.
(elf_i386_finish_dynamic_symbol): Use GOT_TLS_GD_ANY_P.
(elf_backend_always_size_sections): Define.
* elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_GOTPC32_TLSDESC,
R_X86_64_TLSDESC, R_X86_64_TLSDESC_CALL.
(R_X86_64_standard): Adjust.
(x86_64_reloc_map): Map new relocs.
(elf64_x86_64_rtype_to_howto): New, split out of...
(elf64_x86_64_info_to_howto): ... this function, and...
(elf64_x86_64_reloc_type_lookup): ... use it to map elf_reloc_val.
(GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P): New macros.
(GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): New macros.
(struct elf64_x86_64_link_hash_entry): Add tlsdesc_got field.
(struct elf64_x86_64_obj_tdata): Add local_tlsdesc_gotent field.
(elf64_x86_64_local_tlsdesc_gotent): New macro.
(struct elf64_x86_64_link_hash_table): Add tlsdesc_plt,
tlsdesc_got and sgotplt_jump_table_size fields.
(elf64_x86_64_compute_jump_table_size): New macro.
(link_hash_newfunc): Initialize tlsdesc_got.
(elf64_x86_64_link_hash_table_create): Initialize new fields.
(elf64_x86_64_tls_transition): Handle R_X86_64_GOTPC32_TLSDESC and
R_X86_64_TLSDESC_CALL.
(elf64_x86_64_check_relocs): Likewise. Allocate space for
local_tlsdesc_gotent.
(elf64_x86_64_gc_sweep_hook): Handle R_X86_64_GOTPC32_TLSDESC and
R_X86_64_TLSDESC_CALL.
(allocate_dynrelocs): Count function PLT relocations. Reserve
space for TLS descriptors and relocations.
(elf64_x86_64_size_dynamic_sections): Reserve space for TLS
descriptors and relocations. Set up sgotplt_jump_table_size,
tlsdesc_plt and tlsdesc_got. Make room for them. Don't zero
reloc_count in srelplt. Add dynamic entries for DT_TLSDESC_PLT
and DT_TLSDESC_GOT.
(elf64_x86_64_always_size_sections): New. Set up
_TLS_MODULE_BASE_.
(elf64_x86_64_relocate_section): Handle R_386_TLS_GOTDESC and
R_386_TLS_DESC_CALL.
(elf64_x86_64_finish_dynamic_symbol): Use GOT_TLS_GD_ANY_P.
(elf64_x86_64_finish_dynamic_sections): Set DT_TLSDESC_PLT and
DT_TLSDESC_GOT. Set up TLS descriptor lazy resolver PLT entry.
(elf_backend_always_size_sections): Define.
binutils/ChangeLog:
Introduce TLS descriptors for i386 and x86_64.
* readelf.c (get_dynamic_type): Handle DT_TLSDESC_GOT and
DT_TLSDESC_PLT.
gas/ChangeLog:
Introduce TLS descriptors for i386 and x86_64.
* config/tc-i386.c (tc_i386_fix_adjustable): Handle
BFD_RELOC_386_TLS_GOTDESC, BFD_RELOC_386_TLS_DESC_CALL,
BFD_RELOC_X86_64_GOTPC32_TLSDESC, BFD_RELOC_X86_64_TLSDESC_CALL.
(optimize_disp): Emit fix up for BFD_RELOC_386_TLS_DESC_CALL and
BFD_RELOC_X86_64_TLSDESC_CALL immediately, and clear the
displacement bits.
(build_modrm_byte): Set up zero modrm for TLS desc calls.
(lex_got): Handle @tlsdesc and @tlscall.
(md_apply_fix, tc_gen_reloc): Handle the new relocations.
ld/testsuite/ChangeLog:
Introduce TLS descriptors for i386 and x86_64.
* ld-i386/i386.exp: Run on x86_64-*-linux* and amd64-*-linux*.
Add new tests.
* ld-i386/pcrel16.d: Add -melf_i386.
* ld-i386/pcrel8.d: Likewise.
* ld-i386/tlsbindesc.dd: New.
* ld-i386/tlsbindesc.rd: New.
* ld-i386/tlsbindesc.s: New.
* ld-i386/tlsbindesc.sd: New.
* ld-i386/tlsbindesc.td: New.
* ld-i386/tlsdesc.dd: New.
* ld-i386/tlsdesc.rd: New.
* ld-i386/tlsdesc.s: New.
* ld-i386/tlsdesc.sd: New.
* ld-i386/tlsdesc.td: New.
* ld-i386/tlsgdesc.dd: New.
* ld-i386/tlsgdesc.rd: New.
* ld-i386/tlsgdesc.s: New.
* ld-x86-64/x86-64.exp: Run new tests.
* ld-x86-64/tlsbindesc.dd: New.
* ld-x86-64/tlsbindesc.rd: New.
* ld-x86-64/tlsbindesc.s: New.
* ld-x86-64/tlsbindesc.sd: New.
* ld-x86-64/tlsbindesc.td: New.
* ld-x86-64/tlsdesc.dd: New.
* ld-x86-64/tlsdesc.pd: New.
* ld-x86-64/tlsdesc.rd: New.
* ld-x86-64/tlsdesc.s: New.
* ld-x86-64/tlsdesc.sd: New.
* ld-x86-64/tlsdesc.td: New.
* ld-x86-64/tlsgdesc.dd: New.
* ld-x86-64/tlsgdesc.rd: New.
* ld-x86-64/tlsgdesc.s: New.
2006-01-18 21:07:47 +00:00
DJ Delorie
f18076d44e
merge from gcc
2006-01-18 21:05:51 +00:00
Christopher Faylor
d0236d66d9
* heap.cc (heap_init): Remove Sleep.
2006-01-18 20:40:52 +00:00
Corinna Vinschen
339306c5ec
* net.cc (rresvport): Remove extern declaration.
2006-01-18 18:37:35 +00:00
Corinna Vinschen
06a5dd435e
* autoload.cc (rresvport): Remove.
...
* net.cc (last_used_rrecvport): New global shared variable.
(cygwin_rresvport): Implement rresvport without using rresvport from
wsock32.
2006-01-18 18:24:33 +00:00
Christopher Faylor
25ef7a93b6
Wasn't going to check this in but since it did get checked in, here's a ChangeLog.
2006-01-18 16:11:53 +00:00
Christopher Faylor
14a4d5989a
bad_keywords
2006-01-18 15:57:56 +00:00
Corinna Vinschen
3b5d71b3a2
* include/cygwin/socket.h (struct sockaddr_storage): Fix typo in
...
ss_family member name.
2006-01-18 15:37:23 +00:00
Dave Korn
79f24ec37d
* cygpath.cc (dowin): Remove stray debugging printf statement.
2006-01-18 12:34:59 +00:00
Nathan Sidwell
b985a434a0
* mt/ms2.ld (.sram): Correct typo in section names.
2006-01-18 10:57:19 +00:00
Chris Sutcliffe
7c9feabf98
2006-01-17 Chris Sutcliffe <ir0nh34d@users.sf.net>
...
* include/w32api.h: Increment version to 3.6.
* Makefile.in: Ditto.
2006-01-17 18:56:12 +00:00
Andreas Schwab
2f80ebc927
PR binutils/1486
...
binutils/:
* configure.in: Don't define DISASSEMBLER_NEEDS_RELOCS.
* configure: Regenerate.
* objdump.c (struct objdump_disasm_info): Don't check for
DISASSEMBLER_NEEDS_RELOCS.
(objdump_print_addr): Likewise.
(disassemble_bytes): Check disassembler_needs_relocs from
disassemble_info at run-time instead of DISASSEMBLER_NEEDS_RELOCS
at compile-time.
(disassemble_section): Likewise.
(disassemble_data): Initialize it.
include/:
* dis-asm.h (struct disassemble_info): Add
disassembler_needs_relocs.
objdump/:
* disassemble.c (disassemble_init_for_target): Set
disassembler_needs_relocs for bfd_arch_arm.
2006-01-17 17:39:17 +00:00
Christopher Faylor
4d7c0b51bf
copyright
2006-01-17 15:37:13 +00:00
Corinna Vinschen
3d7e89f8a2
* Makefile.in: Replace etcdir with sysconfdir.
2006-01-17 12:33:46 +00:00
Christopher Faylor
05ee4328f2
* include/cygwin/version.h: Bump DLL minor version number to 20.
2006-01-17 03:49:04 +00:00
Jeff Johnston
6c54812ca3
2006-01-16 Nathan Sidwell <nathan@codesourcery.com>
...
* mt/Makefile.in (SCRIPTS, CRT0): Add ms2 files.
(crt0-ms2.o): New target.
* mt/crt0-ms2.S, mt/exit-ms2.c, mt/ms2.ld, mt/startup-ms2.S: New.
2006-01-16 23:23:30 +00:00
Christopher Faylor
6ac6bb392a
fix minor typo
2006-01-16 19:52:21 +00:00
Corinna Vinschen
95dc88409d
* configure.in: Add AC_PROG_INSTALL handling.
...
* configure: Regenerate.
* Makefile.in (install): Install CYGWIN_LICENSE.
2006-01-16 17:48:36 +00:00
Nick Clifton
24ebb0c0d9
Sync top level config files from the master config repository
2006-01-16 17:34:37 +00:00
Corinna Vinschen
d0f3c2dd3b
* CYGWIN_LICENSE: Fix contact information.
2006-01-16 14:57:34 +00:00
Corinna Vinschen
8581551218
* Makefile.in (cygcheck.exe): Do not link against libwininet.a.
...
* cygcheck.cc (pInternetCloseHandle): Define global function pointer.
(display_internet_error): Use it.
(package_grep): Attempt to load wininet.dll at runtime. Call WinInet
API through function pointers throughout.
2006-01-15 09:29:02 +00:00
Corinna Vinschen
053d5eed93
* cygcheck.cc (dump_sysinfo): Convert k32 to HMODULE.
2006-01-13 15:36:29 +00:00
Corinna Vinschen
71f98c4caa
* uname.cc (uname): Concatenate a "-WOW64" to utsname's sysname
...
member to see when running under WOW64.
2006-01-13 14:00:10 +00:00
Corinna Vinschen
67066cabad
* cygcheck.cc (dump_sysinfo): Convert osname to const and remove casts
...
in subsequent assignments. Recognize Longhorn/Vista and report as not
yet supported. Recognize when running under WOW64 and report native
CPU type. Slightly rearrange \n printing.
2006-01-13 13:39:05 +00:00
Corinna Vinschen
494139ffe3
* net.cc (cygwin_setsockopt): Ignore errors when setting IP_TOS on
...
Windows 2000 and above. Clarify the comment about IP_TOS and move
to the place where the magic happens.
(get_ifconf): Remove unused code.
* wincap.h (wincaps::has_disabled_user_tos_setting): New element.
* wincap.cc: Implement above element throughout.
2006-01-13 10:18:31 +00:00
Joshua Daniel Franklin
b22830942a
* faq-setup.xml (faq.setup.setup): Correct URL typo.
...
(faq.setup.snapshots): Clarify.
2006-01-13 03:55:23 +00:00
Christopher Faylor
951bd8e9f1
* cygcheck.cc: Replace ` with ' throughout.
2006-01-12 17:43:53 +00:00
Corinna Vinschen
f68671330f
* wincap.cc: New file.
...
* wincap.h: New file.
* Makefile.in: Accomodate having our own wincap implementation now.
2006-01-12 16:59:15 +00:00
Corinna Vinschen
0ae86d187c
* Update copyrights.
2006-01-12 15:53:51 +00:00
Corinna Vinschen
d855cf1ec8
* doctool.c (scan_directory): Ignore "CVS" directories.
2006-01-12 11:31:55 +00:00
Christopher Faylor
9287bcd534
* fhandler_console.cc (set_console_state_for_spawn): Fix to recognize ttys >=
...
0.
2006-01-12 05:17:12 +00:00
Christopher Faylor
750874d33d
* fhandler.h (set_console_state_for_spawn): Whackamole the argument back to a
...
bool.
* spawn.cc (spawn_guts): Ditto, i.e., once again call
set_console_state_for_spawn with an indication of whether we're about to start
a cygwin process.
* fhandler_console.cc (set_console_state_for_spawn): Don't set the console
state if we know we're starting a cygwin process or if we're using a "real"
tty.
2006-01-12 05:03:15 +00:00
Christopher Faylor
9156ef9120
copyright
2006-01-12 04:52:51 +00:00
Christopher Faylor
904305952b
copyright
2006-01-12 04:41:06 +00:00
Jeff Johnston
33c9cfbde9
2006-01-11 Jeff Johnston <jjohnstn@redhat.com>
...
* acinclude.m4: Add hack to prevent INSTALL in subdirs
from being set to "../".
* Makefile.am: Pass INSTALL in AM_MAKEFLAGS.
* aclocal.m4: Regenerated.
* configure: Ditto.
* Makefile.in: Ditto.
* doc/aclocal.m4: Ditto.
* doc/configure: Ditto.
* iconvdata/aclocal.m4: Ditto.
* iconvdata/configure: Ditto.
* libc/*/aclocal.m4: Ditto.
* libc/*/configure: Ditto.
* libc/libc.texinfo: Ditto.
* libm/*/aclocal.m4: Ditto.
* libm/*/configure: Ditto.
2006-01-11 23:50:33 +00:00
Danny Smith
3683edc658
* include/wincrypt.h (WINADVAPI): Add to prototypes of
...
advapi32.dll functions.
2006-01-11 23:19:16 +00:00
Danny Smith
cf8fbc710f
* include/winsock2.h (struct sockaddr_storage): Use RFC 2553
...
names for padding size constants.
2006-01-11 22:56:05 +00:00
Danny Smith
16442a4a8f
* include/aclapi.h (WINADVAPI): Add to prototypes.
...
* include/winreg.h (WINADVAPI): Likewise.
* include/winsvc.h (WINADVAPI): Likewise.
2006-01-11 22:49:06 +00:00
Corinna Vinschen
b773a592d3
* dcrt0.cc (dll_crt0_0): Remove call to wincap.init.
...
* init.cc (dll_entry): Rename is_wow64_proc to wow64_test_stack_marker.
Call wincap.init here before doing anything else. Use wincap.is_wow64
to determine if we're running in a WOW64 emulator.
* mmap.cc (MapViewNT): Don't use AT_ROUND_TO_PAGE in WOW64, it's
apparently not supported.
(mmap64): Don't create mappings beyond EOF, which would need to use
AT_ROUND_TO_PAGE, on WOW64.
* wincap.cc (wincap): Throw into the .cygwin_dll_common section.
(wincapc::init): Determine if running in WOW64 and set wow_64 flag.
* wincap.h (class wincapc): Add wow64 member.
(wincapc::is_wow64): New method.
2006-01-10 18:11:32 +00:00
Jeff Johnston
dea958bc06
2006-01-10 Eric Blake <ebb9@byu.net>
...
* libc/stdio/freopen.c (_freopen_r): Fix use of oflags.
* libc/stdio64/freopen64.c (_freopen64_r): Likewise.
2006-01-10 17:09:43 +00:00
Jeff Johnston
216633f73c
2006-01-10 Jeff Johnston <jjohnstn@redhat.com>
...
* libm/mathfp/s_frexp.c: Check for special values on
the original input, not the manipulated output value.
* libm/mathfp/sf_frexp.c: Ditto.
* libm/mathfp/s_atangent.c: Don't use local value branch
when checking for quadrant.
* libm/mathfp/sf_atangent.c: Ditto.
2006-01-10 16:51:58 +00:00
Christopher Faylor
23de77b72b
* fhandler_proc.cc (format_proc_cpuinfo): Avoid leading whitespace in model
...
name.
2006-01-10 16:49:28 +00:00
Christopher Faylor
4c8650efd8
.
2006-01-10 14:49:20 +00:00
Christopher Faylor
5da5f949d8
* spawn.cc (spawn_guts): Reorganize slightly so that 16 bit check is done prior
...
to check for command.com/cmd.com. Don't bother setting CREATE_SUSPENDED flag
for a MS-DOS process since it doesn't work anyway. Avoid calling remember()
when the child process has already exited.
(av::fixup): Explicitly set cygexec flag to falseon a 16 bit process.
2006-01-10 02:39:22 +00:00
Bob Wilson
e93a726084
* xtensa-config.h (XCHAL_HAVE_MUL32_HIGH): Define.
2006-01-09 23:47:37 +00:00
Jeff Johnston
64ae8ab5f0
2006-01-09 Jeff Johnston <jjohnstn@redhat.com>
...
* libc/stdio/freopen.c: Switch to use isatty instead of _isatty.
* libc/stdio64/freopen64.c: Ditto.
2006-01-09 20:01:09 +00:00
Jeff Johnston
0da7297ef1
2006-01-09 Eric Blake <ebb9@byu.net>
...
* libc/stdio/freopen.c (_freopen_r): Accept NULL filename.
* libc/stdio64/freopen64.c (_freopen64_r): Likewise.
2006-01-09 17:51:01 +00:00
Nick Clifton
fd50e04bf1
Define EM_ALTERA_NIOS2 and EM_NIOS32.
2006-01-09 17:21:17 +00:00
Corinna Vinschen
e3786825c0
Check FreeBSD upstream changes and apply important patches.
...
* sysv_sem.cc (__semctl): Check copyin return value (from 1.76).
* sysv_shm.cc (shminit): Actually use the iterating variable in the
for loop when trying to avoid overflow (from 1.102).
2006-01-09 15:10:14 +00:00
Corinna Vinschen
104fffd24d
* include/getopt.h (getopt_long_only): Declare.
2006-01-09 12:41:54 +00:00