The branch, tromey/use-cloexec has been updated discards da0ccce3bae370c79889e7cfd5762982889310c6 (commit) discards e80bf8f3412418c86edfc4b3d6afd8516011665a (commit) via 6f6912d00ff1ba8c0e421007e5207e982ad2d0f4 (commit) via 741a556721c6a3afee0252777e3b0a5e806d46ec (commit) via df3f6541130aef717e500bc647efa1bde2ac65d3 (commit) via 19c227dcd47973ba3d4ab7b69967b94840df0e34 (commit) via f7eb9e8a850efb3f2c65d29cdacaf88ada15f8bd (commit) via 5e5c0ff1bb5f27ebd180c0696a104f2816d0c145 (commit) via 0d9856c8507b0b2e0a88fda3fc14404228218c74 (commit) via 86beac1070093ae3f91c9e1cd3009bed3e475fa6 (commit) via 295123e116bd75f28ca1a6c310471668960f2fc0 (commit) via bf63885a12b4ff83174a400335f6258536e0ff2a (commit) via 72ba79c167998175b9302b5b83cb472625f886b8 (commit) via 3b3be33462801c7945e328c6570f7e3d6a4acbac (commit) via c3f787aca95e3ecb7215b6b42be6f4620fc7c02c (commit) via 70685987aab47cea63a45e038097fde4fef548fd (commit) via 29fc1b0ae32e3110fac0313a6720aca198de02c9 (commit) via 1016d2d11a157ae44dd2f29620bbfd9d459ab7c8 (commit) via 3b0b4cc40ad6020112bc02ccd539fb0d9b0c6ede (commit) via 5e50ec2db34555434bdf0c61996647573945f047 (commit) via 34bcb4e371534d9a450ea11a578adff28704fa23 (commit) via ea029ce7c43cebe294b644bc316eeefcc774d992 (commit) via d6617aac65a3e5acc91ea0905a0bdd543a821f2d (commit) via a2429991882d4235f1eb017ddd0a9d8f1e8b5398 (commit) via 045f778a4c12658419d10ec5485bd0347935a39d (commit) via 1d3d38e1eacb431efb1d0a4a67e6eacf15c0f2b2 (commit) via 31bfb03710f59e01c2cd123bf01be2f991f29e22 (commit) via 4b42dc673381808a31f0f6cc7ed7eccd3c9043b8 (commit) via cea2b1f6f345e375adba8f2eb9861b004d33c1e8 (commit) via 5c6f64738585ff93d63f5782b9bb044eca637fa0 (commit) via 7b6538165a92ffa94a76d4c7677c8c0a5de527b9 (commit) via 49c16422a06186b20f0fc33380113b131c20c8f8 (commit) via 05920b10b4f7e7c44329c13644bbfa14c427ae92 (commit) via 1614db2f39d46d6ba389e88edfeed3eeef6e3e7e (commit) via f78a17cc8b54f718d16b6cfd63163a39a6df738b (commit) via 74d7e164d1e9d6ff1fd7c1acf675e3589098fa81 (commit) via 7a9088e93d91fb5f872465cb6238fe346f68911a (commit) via 8971f489b0f0e28e401c18844d6c679ffb9b6f6e (commit) via daebb5ec91791a8a577a02c5f5857d5810de684d (commit) via 254638dfadb925d3d1fd55f019841d5c6556e752 (commit) via 45140821a713d7b1ef8cb38c737591abfaaff596 (commit) via a04b16a96f161d6b82bdc72ceddcead8539e3977 (commit) via cbf2f0c9dd67247944d06588fd76c9002d61ae5a (commit) via f112776d5ad2210f7b71b2acfd4ca385377c4755 (commit) via 3e258681182fe2fad8a479355494073134748396 (commit) via c09b84a2353bfde550932fa90c3487c6aa962a18 (commit) via c1357f25675c247a7ed40f6948f40d7d013f0bdd (commit) via 62629fa8221ab05d6d7ad14de41a3f4c9319f0bb (commit) via 7e2fcf5bb7283956d5b15b4c13a1051327f3b4b1 (commit) via 3c0732377364a48042cff54c10a4c23ba320da9e (commit) via 98512ac7e1b764f5e6a97ae0b4abe4e664400f1e (commit) via dfc5309ae76d92023545e15af7905f5fd169d74c (commit) via 436dc645102f7132ab80f5c75a359d4f2603c25d (commit) via 85af929389a14039121edef603bb94dd462db727 (commit) via fa47f0a2380e4cbb7c11f42b093729a368d8a5f4 (commit) via ac31ed2ebb0456bddfce93b1fff1215a68183832 (commit) via e8e160773247fa157b818494256ceeb9a806b351 (commit) via d050582adfca8265d614fbd006962d7d68ef5db7 (commit) via fca593717bca4c547b95d7def0cea736dcbc57c1 (commit) via 06c8b68dd50e339199bba570fb37381ad0cb9c87 (commit) via c80fa5a7c1b1277a6112f2984e2723c27cefd1df (commit) via 4751d00ef7a160c640f599303a85a0cbeee31409 (commit) via 92687545f1f26e54b40d90812b34791d97ecd867 (commit) via 20cf09b42ad2bcb0225cdc36cb228e515bd510a7 (commit) via 766ce5943c7dd9484310bd71a91a8b19d5b7b5c2 (commit) via 972f1ca0327da78f0eb9cd7fe9a760696642dc75 (commit) via cb22b288a796779e3238ff812226a9897854c5aa (commit) via 049dc1118adce445d49828154b415f963c41a4d5 (commit) from da0ccce3bae370c79889e7cfd5762982889310c6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 6f6912d00ff1ba8c0e421007e5207e982ad2d0f4 Author: Tom Tromey Date: Tue Dec 18 07:54:36 2012 -0700 fix file descriptor leaks this is PR 7912 commit 741a556721c6a3afee0252777e3b0a5e806d46ec Author: Tom Tromey Date: Fri Mar 1 07:34:11 2013 -0700 add README.archer commit df3f6541130aef717e500bc647efa1bde2ac65d3 Author: Pedro Alves Date: Fri Apr 19 18:41:32 2013 +0000 s/signness/signedness in gdbint.texinfo. "signedness" is more typical. gdb/doc/ 2013-04-19 Pedro Alves * gdbint.texinfo (Misc Guidelines) : Write "signedness" instead of "signness". commit 19c227dcd47973ba3d4ab7b69967b94840df0e34 Author: Pedro Alves Date: Fri Apr 19 18:32:54 2013 +0000 Enable -Wpointer-sign by default. This enables -Wpointer-sign by default. I've checked that --enable-targets=all builds fine with the following as --host, on x86_64 Fedora 17 --build: x86_64 GNU/Linux i386 GNU/Linux i386 MinGW-w64 i386 msdos/djgpp OK? gdb/ 2013-04-19 Pedro Alves * configure.ac (build_warnings): Replace -Wno-pointer-sign with -Wpointer-sign. * configure: Regenerate. gdb/doc 2013-04-19 Pedro Alves * gdbint.texinfo (Misc Guidelines) : Replace -Wno-pointer-sign text with text on -Wpointer-sign. commit f7eb9e8a850efb3f2c65d29cdacaf88ada15f8bd Author: abidh Date: Fri Apr 19 18:17:32 2013 +0000 2013-04-19 Nathan Froyd * ppc-instructions (isel): New instruction. commit 5e5c0ff1bb5f27ebd180c0696a104f2816d0c145 Author: Pedro Alves Date: Fri Apr 19 17:48:09 2013 +0000 Make GDB -Wpointer-sign clean on MinGW too. This is the remaining issue impeding GDB to build with "-Wpointer-sign -Werror" with Fedora 17's i686-w64-mingw32 cross toolchain. ../../src/gdb/ser-tcp.c: In function 'net_read_prim': ../../src/gdb/ser-tcp.c:341:3: error: pointer targets in passing argument 2 of 'recv' differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/serial.h:23:0, from ../../src/gdb/ser-tcp.c:21: /usr/i686-w64-mingw32/sys-root/mingw/include/winsock2.h:983:34: note: expected 'char *' but argument is of type 'unsigned char *' gdb/ 2013-04-19 Pedro Alves * ser-tcp.c (net_read_prim): Cast second argument to recv to 'void *'. commit 0d9856c8507b0b2e0a88fda3fc14404228218c74 Author: Pedro Alves Date: Fri Apr 19 17:44:17 2013 +0000 -Wpointer-sign: monitor.c. This fixes -Wpointer-sign issues in monitor.c. Tested by building on x86_64 Fedora 17 w/ --enable-targets=all. gdb/ 2013-04-19 Pedro Alves * monitor.c (monitor_write_memory, monitor_write_memory_bytes): Change type of 'myaddr' parameter to gdb_byte pointer. (monitor_write_memory_longlongs): Likewise. Cast 'myaddr' pointer to 'long long' pointer instead of to 'unsigned long long'. (monitor_write_memory_block, monitor_read_memory_single) (monitor_read_memory): Change type of 'myaddr' parameter to gdb_byte pointer. commit 86beac1070093ae3f91c9e1cd3009bed3e475fa6 Author: Pedro Alves Date: Fri Apr 19 15:37:31 2013 +0000 -Wpointer-sign: record.c. ../../src/gdb/record.c: In function ‘set_record_insn_history_size’: ../../src/gdb/record.c:670:5: error: pointer targets in passing argument 2 of ‘validate_history_size’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/record.c:646:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/record.c: In function ‘set_record_call_history_size’: ../../src/gdb/record.c:682:5: error: pointer targets in passing argument 2 of ‘validate_history_size’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/record.c:646:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ This fixes it in the obvious way. gdb/ 2013-04-19 Pedro Alves * record.c (validate_history_size): Make parameter 'setting' unsigned. commit 295123e116bd75f28ca1a6c310471668960f2fc0 Author: Pedro Alves Date: Fri Apr 19 15:36:52 2013 +0000 -Wpointer-sign: ctf.c. ctf_save_write's second parameter is gdb_byte *, and all these arguments are 'char *'. Since this function is ultimately just writing host bytes to a local file with fwrite, an alternative would be to change ctf_save_write to take a 'void *' instead of 'gdb_byte *', thus removing the need for any cast (we have more calls with casts than without). gdb/ 2013-04-19 Pedro Alves * ctf.c (ctf_write_uploaded_tsv, ctf_write_uploaded_tp): Add casts to 'gdb_byte *'. commit bf63885a12b4ff83174a400335f6258536e0ff2a Author: Pedro Alves Date: Fri Apr 19 15:36:24 2013 +0000 -Wpointer-sign: cp-valprint.c. Fix: ../../src/gdb/cp-valprint.c: In function ‘cp_print_class_member’: ../../src/gdb/cp-valprint.c:793:3: error: pointer targets in passing argument 2 of ‘cp_find_class_member’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/cp-valprint.c:721:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ 'fieldno' is used throughout as 'int', so just follow the trend. gdb/ 2013-04-19 Pedro Alves * cp-valprint.c (cp_print_class_member): Change type of 'fieldno' local to int. commit 72ba79c167998175b9302b5b83cb472625f886b8 Author: Pedro Alves Date: Fri Apr 19 15:35:57 2013 +0000 -Wpointer-sign: ada-lang.c, ada-tasks.c. We're reading strings using the target memory access routines, which work with raw bytes, so we need a couple casts. gdb/ 2013-04-19 Pedro Alves * ada-lang.c (print_it_exception): Add cast to gdb_byte *. * ada-tasks.c (read_fat_string_value): Likewise. commit 3b3be33462801c7945e328c6570f7e3d6a4acbac Author: Pedro Alves Date: Fri Apr 19 15:35:21 2013 +0000 -Wpointer-sign: dwarf2-frame.c: Pass unsigned variable to safe_read_uleb128. The 'bytes_read' change should be obvious. As for the other hunk, we're passing the address of the signed 'offset' to safe_read_uleb128, which expects unsigned. Fix it by passing the address of the unsigned 'utmp' instead, like already done on other spots in the file. gdb/ 2013-04-19 Pedro Alves * dwarf2-frame.c (execute_cfa_program): Make 'bytes_read' local unsigned. Pass 'tmp' to safe_read_uleb128 instead of the signed 'offset', and adjust. commit c3f787aca95e3ecb7215b6b42be6f4620fc7c02c Author: Pedro Alves Date: Fri Apr 19 15:34:46 2013 +0000 -Wpointer-sign: dwarf2read.c. This fixes the remaining issues necessary to make the DWARF reader -Wpointer-sign clean. The 'filename' bit should be obvious. 'constant_pool' holds the contents of an obstack, which are 'char *'. gdb_byte would work too, but it'd need more casts elsewhere, so I just chose the minimal approach. Any way would be fine with me. gdb/ 2013-04-19 Pedro Alves * dwarf2read.c (dwarf2_get_dwz_file): Add cast to const char *. (read_index_from_section): Add cast to 'char *'. commit 70685987aab47cea63a45e038097fde4fef548fd Author: Pedro Alves Date: Fri Apr 19 15:33:57 2013 +0000 -Wpointer-sign: xcoffread.c. ../../src/gdb/xcoffread.c: In function ‘xcoff_initial_scan’: ../../src/gdb/xcoffread.c:2982:17: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign] 'debugsec' is a 'bfd_byte *', holding the result of a bfd_get_full_section_contents. 'info->debugsec' holds the same contents throughout the whole xcoff read, and everywhere it's used to read symbol names. Simply adding a cast feels appropriate. gdb/ 2013-04-19 Pedro Alves * xcoffread.c (xcoff_initial_scan): Add cast to 'char *'. commit 29fc1b0ae32e3110fac0313a6720aca198de02c9 Author: Pedro Alves Date: Fri Apr 19 15:33:29 2013 +0000 -Wpointer-sign: coff-pe-read.c: treat strings in PE/COFF data as char *. A couple places take a pointer to the middle of some raw section buffer and treat them as strings. Add casts to char * as appropriate, fixing -Wpointer-sign warnings. gdb/ 2013-04-19 Pedro Alves * coff-pe-read.c (read_pe_exported_syms): Handle strings as char. commit 1016d2d11a157ae44dd2f29620bbfd9d459ab7c8 Author: Pedro Alves Date: Fri Apr 19 15:32:55 2013 +0000 -Wpointer-sign: bookmarks. Bookmarks are opaque to the core code -- by design, the target is free to use any sort of blob as bookmark identifier. The record target chooses to use strings for bookmarks. This adds casts following that direction, fixing -Wpointer-sign warnings. gdb/ 2013-04-19 Pedro Alves * record-full.c (record_full_get_bookmark): Change local 'ret' type to char * and add cast to gdb_byte *. (record_full_goto_bookmark): Handle 'bookmark' argument as a string. * reverse.c (goto_bookmark_command): Add casts to gdb_byte *. commit 3b0b4cc40ad6020112bc02ccd539fb0d9b0c6ede Author: Pedro Alves Date: Fri Apr 19 15:29:08 2013 +0000 -Wpointer-sign: python/. This fixes -Wpointer-sign warnings in the python/ code in the manner that seems most appropriate to me. gdb/ 2013-04-19 Pedro Alves * python/py-inferior.c (infpy_write_memory): Add cast to gdb_byte * python/py-prettyprint.c (print_string_repr): Change type of 'output' local to char *. Add cast to gdb_byte * in LA_PRINT_STRING call. (print_children): Change type of 'output' local to char *. * python/py-value.c (valpy_string): Add cast to const char * in PyUnicode_Decode call. commit 5e50ec2db34555434bdf0c61996647573945f047 Author: Pedro Alves Date: Fri Apr 19 15:28:42 2013 +0000 -Wpointer-sign: remote-mips.c. remote-mips.c has a bunch of -Wpointer-sign warnings: ../../src/gdb/remote-mips.c: In function ‘mips_receive_packet’: ../../src/gdb/remote-mips.c:1128:7: error: pointer targets in passing argument 2 of ‘mips_cksum’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:830:1: note: expected ‘const unsigned char *’ but argument is of type ‘char *’ ../../src/gdb/remote-mips.c:1135:7: error: pointer targets in passing argument 2 of ‘mips_cksum’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:830:1: note: expected ‘const unsigned char *’ but argument is of type ‘char *’ ../../src/gdb/remote-mips.c: In function ‘mips_load_srec’: ../../src/gdb/remote-mips.c:2830:12: error: pointer targets in passing argument 4 of ‘mips_make_srec’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:134:12: note: expected ‘unsigned char *’ but argument is of type ‘char *’ ../../src/gdb/remote-mips.c: In function ‘pmon_zeroset’: ../../src/gdb/remote-mips.c:3030:3: error: pointer targets in passing argument 4 of ‘pmon_makeb64’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:2977:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/remote-mips.c: In function ‘pmon_make_fastrec’: ../../src/gdb/remote-mips.c:3124:6: error: pointer targets in passing argument 3 of ‘pmon_zeroset’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:3025:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/remote-mips.c:3126:4: error: pointer targets in passing argument 4 of ‘pmon_makeb64’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:2977:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/remote-mips.c:3148:3: error: pointer targets in passing argument 3 of ‘pmon_zeroset’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:3025:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/remote-mips.c:3153:3: error: pointer targets in passing argument 3 of ‘pmon_zeroset’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:3025:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/remote-mips.c:3154:8: error: pointer targets in passing argument 4 of ‘pmon_makeb64’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:2977:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/remote-mips.c: In function ‘pmon_load_fast’: ../../src/gdb/remote-mips.c:3423:2: error: pointer targets in passing argument 4 of ‘pmon_makeb64’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:2977:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/remote-mips.c:3457:4: error: pointer targets in passing argument 3 of ‘pmon_checkset’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:3051:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/remote-mips.c:3484:8: error: pointer targets in passing argument 3 of ‘pmon_zeroset’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:3025:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/remote-mips.c:3489:3: error: pointer targets in passing argument 3 of ‘pmon_checkset’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/remote-mips.c:3051:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ The mips packet payload is ASCII, so it makes sense for mips_send_packet and mips_receive_packet to expose 'char *'-based interfaces, as currently they do. But, mips packets have a binary header, so if you look at e.g., mips_receive_packet's implementation, you'll see "unsigned char" buffers in use. I find it the most natural to make the payload pointer passed to mips_cksum 'char *' too. The other changes are straightforward adjustments -- a checksum is naturally unsigned, and there's one point where we're reading a bfd section. gdb/ 2013-04-19 Pedro Alves * remote-mips.c (mips_cksum): Rename 'data' parameter to 'datastr' and change its type to 'const char *'. Adjust. (mips_send_packet): Add cast to 'char *', and remove cast to 'unsigned char *'. (mips_receive_packet): Remove cast to 'unsigned char *'. (mips_load_srec): Use bfd_byte. (pmon_makeb64, pmon_zeroset): Make 'chksum' parameter unsigned. (pmon_checkset): Make 'value' parameter unsigned. commit 34bcb4e371534d9a450ea11a578adff28704fa23 Author: Pedro Alves Date: Fri Apr 19 15:27:54 2013 +0000 gdb_byte for binary buffer, char for string: common/agent.c. Similarly to the remote code, agent commands are mostly ascii. Cast to gdb_byte when treating the command buffer as raw memory bytes. 2013-04-19 Pedro Alves * common/agent.c (agent_run_command): Add cast to gdb_byte *. commit ea029ce7c43cebe294b644bc316eeefcc774d992 Author: Pedro Alves Date: Fri Apr 19 15:27:06 2013 +0000 gdb_byte for binary buffer, char for string: remote.c, tracepoint.c. While the RSP is largely ASCII based (hence the packet buffer type is char *), at places we pass around 8-bit binary packets in that buffer. Functions like hex2bin or remote_escape_output conceptually are handling binary buffers, so I left them as working with gdb_byte, and added casts where necessary. Whether these are host bytes or target bytes is blurry at present, so this is largely a matter of taste. Switching some of these functions to take "char *" or "void *" would be equally good. gdb/ 2013-04-19 Pedro Alves * remote.c (remote_write_bytes_aux, compare_sections_command) (remote_read_qxfer) (remote_search_memory, remote_hostio_pwrite, remote_hostio_pread) (remote_hostio_readlink, remote_bfd_iovec_pread) (remote_set_trace_notes): Use gdb_byte when RSP buffer is used as binary buffer, and char when buffer is used as string. * tracepoint.c (encode_source_string, tfile_write_uploaded_tp) (trace_save, tfile_open, traceframe_walk_blocks) (tfile_fetch_registers): Likewise. commit d6617aac65a3e5acc91ea0905a0bdd543a821f2d Author: Pedro Alves Date: Fri Apr 19 15:26:16 2013 +0000 serial_write: change prototype to take a void-pointer buffer. While remote.c works with "char *" buffers most of the time, other remote targets have binary-ish-er protocols, and choose to use "unsigned char" throughout, like e.g., remote-mips.c or remote-m32r-sdi.c. That results in -Wpointer-sign warnings in those targets, unless we add casts in calls to serial_write. Since serial_write is only concerned about sending raw host bytes out, and serial_ops->write_prim already works with "void *"/"size_t", a similar interface to the "write" or "send" system calls, I find it natural to change serial_write's prototype accordingly, avoiding the need for casts. Tested on x86_64 Fedora 17, and also by building x86_64-mingw32 and DJGPP/go32 -hosted gdbs. gdb/ 2013-04-19 Pedro Alves * ser-base.c (ser_base_write): Change prototype -- take 'void *' buffer and size_t size. Adjust. * ser-base.h (ser_base_write): Adjust. * ser-go32.c (cnts): Change type to size_t. (dos_write): Change prototype -- take 'void *' buffer and size_t size. Adjust. (dos_info): Print elements of 'cnts' as unsigned long. * serial.c (serial_write): Likewise. * serial.h (serial_write): Adjust. (struct serial_ops) : Change prototype -- take 'void *' buffer and size_t size. Adjust. commit a2429991882d4235f1eb017ddd0a9d8f1e8b5398 Author: Pedro Alves Date: Fri Apr 19 15:24:55 2013 +0000 Cast result of obstack_base to gdb_byte * in a couple spots. obstack_base returns char *. Need to cast to gdb_byte * in a couple spots. gdb/ 2013-04-19 Pedro Alves * c-lang.c (evaluate_subexp_c): Cast result of obstack_base to gdb_byte *. * linux-tdep.c (linux_make_mappings_corefile_notes): Likewise. commit 045f778a4c12658419d10ec5485bd0347935a39d Author: Pedro Alves Date: Fri Apr 19 15:24:23 2013 +0000 -Wpointer-sign: alpha-tdep.c. ../../src/gdb/alpha-tdep.c: In function ‘alpha_extract_return_value’: ../../src/gdb/alpha-tdep.c:520:4: error: pointer targets in passing argument 3 of ‘regcache_cooked_read_signed’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/alpha-tdep.c:36:0: We use regcache_cooked_read_unsigned everywhere else too. 2013-04-19 Pedro Alves * alpha-tdep.c (alpha_extract_return_value): Use regcache_cooked_read_unsigned to read 'v0'. commit 1d3d38e1eacb431efb1d0a4a67e6eacf15c0f2b2 Author: Pedro Alves Date: Fri Apr 19 15:23:52 2013 +0000 -Wpointer-sign: xtensa-tdep.c. ../../src/gdb/xtensa-tdep.c:2914:4: error: pointer targets in passing argument 7 of ‘xtensa_operand_get_field’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/xtensa-tdep.c:53:0: ../../src/gdb/../include/xtensa-isa.h:487:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ../../src/gdb/xtensa-tdep.c:2916:4: error: pointer targets in passing argument 4 of ‘xtensa_operand_decode’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/xtensa-tdep.c:53:0: ../../src/gdb/../include/xtensa-isa.h:507:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ../../src/gdb/xtensa-tdep.c:2918:4: error: pointer targets in passing argument 7 of ‘xtensa_operand_get_field’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/xtensa-tdep.c:53:0: ../../src/gdb/../include/xtensa-isa.h:487:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ../../src/gdb/xtensa-tdep.c:2920:4: error: pointer targets in passing argument 4 of ‘xtensa_operand_decode’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/xtensa-tdep.c:53:0: ../../src/gdb/../include/xtensa-isa.h:507:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ../../src/gdb/xtensa-tdep.c:2922:4: error: pointer targets in passing argument 7 of ‘xtensa_operand_get_field’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/xtensa-tdep.c:53:0: ../../src/gdb/../include/xtensa-isa.h:487:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ../../src/gdb/xtensa-tdep.c:2924:4: error: pointer targets in passing argument 4 of ‘xtensa_operand_decode’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/xtensa-tdep.c:53:0: ../../src/gdb/../include/xtensa-isa.h:507:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ Those bfd functions that decode instructions output uint32_t values. Hence this fix: 2013-04-19 Pedro Alves * xtensa-tdep.c (execute_l32e, execute_s32e): Change type of parameters 'at', 'as' and 'offset' to uint32_t. commit 31bfb03710f59e01c2cd123bf01be2f991f29e22 Author: Pedro Alves Date: Fri Apr 19 15:23:17 2013 +0000 -Wpointer-sign: aarch64-tdep.c. ../../src/gdb/aarch64-tdep.c: In function ‘aarch64_analyze_prologue’: ../../src/gdb/aarch64-tdep.c:713:7: error: pointer targets in passing argument 3 of ‘decode_cb’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/aarch64-tdep.c:386:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ ../../src/gdb/aarch64-tdep.c:747:7: error: pointer targets in passing argument 3 of ‘decode_stur’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/aarch64-tdep.c:597:1: note: expected ‘int *’ but argument is of type ‘unsigned int *’ 'is64' is just used as a boolean; signed/unsigned doesn't really matter. 2013-04-19 Pedro Alves * aarch64-tdep.c (aarch64_analyze_prologue): Change type of local 'is64' to signed 'int'. commit 4b42dc673381808a31f0f6cc7ed7eccd3c9043b8 Author: Pedro Alves Date: Fri Apr 19 15:22:46 2013 +0000 -Wpointer-sign: s390-tdep.c. -Wpointer-sign reveals a bunch of: ../../src/gdb/s390-tdep.c:1342:7: error: pointer targets in passing argument 4 of ‘is_rx’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/s390-tdep.c:1038:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ../../src/gdb/s390-tdep.c:1343:9: error: pointer targets in passing argument 5 of ‘is_rxy’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/s390-tdep.c:1055:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ../../src/gdb/s390-tdep.c:1344:9: error: pointer targets in passing argument 5 of ‘is_rxy’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/s390-tdep.c:1055:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ... ../../src/gdb/s390-tdep.c:1363:7: error: pointer targets in passing argument 5 of ‘is_rs’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/s390-tdep.c:966:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ../../src/gdb/s390-tdep.c:1364:9: error: pointer targets in passing argument 6 of ‘is_rsy’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/s390-tdep.c:983:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ../../src/gdb/s390-tdep.c:1365:9: error: pointer targets in passing argument 6 of ‘is_rsy’ differ in signedness [-Werror=pointer-sign] ../../src/gdb/s390-tdep.c:983:1: note: expected ‘unsigned int *’ but argument is of type ‘int *’ ... I don't know much about s390, but from reading the code I believe the right fix is to treat d2 as signed. gdb/ 2013-04-19 Pedro Alves * s390-tdep.c (is_rs, is_rsy, is_rx, is_rxy): Change type of 'd2' parameter to int *. commit cea2b1f6f345e375adba8f2eb9861b004d33c1e8 Author: Pedro Alves Date: Fri Apr 19 15:22:14 2013 +0000 ppc-linux-tdep.c: Wrong signness for buffer holding instructions. There seems to be no reason for this buffer to be signed. We pass it around to functions expecting it to be unsigned (which triggers -Wpointer-sign warnings). gdb/ 2013-04-19 Pedro Alves * ppc-linux-tdep.c (ppc_skip_trampoline_code): Change local 'insnbuf' buffer type to unsigned int[]. commit 5c6f64738585ff93d63f5782b9bb044eca637fa0 Author: Pedro Alves Date: Fri Apr 19 15:21:24 2013 +0000 mips-tdep.c: Wrong signness for local holding PC register. Addresses on MIPS are signed, and we're indeed using regcache_cooked_read_signed to read the PC, but, we're passing it the address of an unsigned variable, which triggers a -Wpointer-sign warning. I've chosen to change the variable's type. I believe this will end up being the same (though I can't test it). gdb/ 2013-04-19 Pedro Alves * mips-tdep.c (mips_read_pc): Change local 'pc' type to LONGEST. commit 7b6538165a92ffa94a76d4c7677c8c0a5de527b9 Author: Pedro Alves Date: Fri Apr 19 15:15:54 2013 +0000 mep-tdep.c: Wrong signness for instruction buffer. There seems to be no reason for this to be signed. gdb/ 2013-04-19 Pedro Alves * mep-tdep.c (mep_get_insn): Change 'insn' parameter type to unsigned long *. commit 49c16422a06186b20f0fc33380113b131c20c8f8 Author: Pedro Alves Date: Fri Apr 19 15:15:21 2013 +0000 alpha-tdep.c/mips-tdep.c: "set heuristic-fence-post" is signed/zinteger. These commands are currently var_zinteger, hence their control variable is signed. gdb/ 2013-04-19 Pedro Alves * alpha-tdep.c (heuristic_fence_post): Change type to int. (alpha_heuristic_proc_start): Adjust to check -1 instead of UINT_MAX. * mips-tdep.c (heuristic_fence_post): Change type to int. (heuristic_proc_start): Adjust to check -1 instead of UINT_MAX. commit 05920b10b4f7e7c44329c13644bbfa14c427ae92 Author: Pedro Alves Date: Fri Apr 19 15:14:23 2013 +0000 cris-tdep.c: Use unsigned variable for unsigned command. "set cris-version" is an unsigned command: /* CRIS-specific user-commands. */ add_setshow_uinteger_cmd ("cris-version", class_support, &usr_cmd_cris_version, _("Set the current CRIS version."), _("Show the current CRIS version."), _("\ Set to 10 for CRISv10 or 32 for CRISv32 if autodetection fails.\n\ Defaults to 10. "), Tested by building on x86_64 Fedora 17. 2013-04-19 Pedro Alves * cris-tdep.c (usr_cmd_cris_version): Make unsigned. (struct gdbarch_tdep) : Make unsigned. (cris_spec_reg_applicable, cris_gdbarch_init): Adjust locals. commit 1614db2f39d46d6ba389e88edfeed3eeef6e3e7e Author: Pedro Alves Date: Fri Apr 19 15:10:53 2013 +0000 -Wpointer-sign: gdb_byte -> char. This is sort of the opposite of the previous patch. Places that manipulate strings or interfaces that return strings are changed to use char* instead of gdb_byte*. gdb/ 2013-04-19 Pedro Alves * avr-tdep.c (avr_io_reg_read_command): New local 'bufstr'. Use it to get a string view of the byte buffer. * i386-cygwin-tdep.c (core_process_module_section): Change local 'buf' type to gdb_byte *. Adjust. * linux-tdep.c (linux_info_proc, linux_find_memory_regions_full): Change local to char *. * solib-darwin.c (find_program_interpreter): Change return type to char *. Adjust. (darwin_solib_get_all_image_info_addr_at_init): Adjust. * solib-dsbt.c (enable_break2): Change local 'buf' to char *. * solib-frv.c (enable_break2): Change local 'buf' to char *. * solib-spu.c (spu_current_sos): Add gdb_byte * cast. * solib-svr4.c (find_program_interpreter): Change return type to char *. Adjust. (enable_break): Change local 'interp_name' to char *. * spu-multiarch.c (spu_xfer_partial): Add cast to 'char *'. * spu-tdep.c (spu_pseudo_register_read_spu): Add cast to 'char *'. (spu_pseudo_register_write_spu): Use char for string buffer. Adjust. (info_spu_event_command, info_spu_signal_command): Add casts to 'char *'. commit f78a17cc8b54f718d16b6cfd63163a39a6df738b Author: Pedro Alves Date: Fri Apr 19 15:09:44 2013 +0000 -Wpointer-sign: char -> gdb_byte. -Wpointer-sign catches all these cases across the codebase that should be using gdb_byte for raw target bytes. I think these are all obvious, hence I've collapsed into a single patch. gdb/ 2013-04-19 Pedro Alves * aarch64-tdep.c (aarch64_default_breakpoint): Change type to gdb_byte[]. (aarch64_breakpoint_from_pc): Change return type to gdb_byte *. * ada-lang.c (ada_value_assign): Use gdb_byte. * alphanbsd-tdep.c (sigtramp_retcode): Change type to gdb_byte[]. (alphanbsd_sigtramp_offset): Use gdb_byte. * arm-linux-tdep.c (arm_linux_arm_le_breakpoint) (arm_linux_arm_be_breakpoint, eabi_linux_arm_le_breakpoint) (eabi_linux_arm_be_breakpoint, arm_linux_thumb_be_breakpoint) (arm_linux_thumb_le_breakpoint, arm_linux_thumb2_be_breakpoint) (arm_linux_thumb2_le_breakpoint): Change type to gdb_byte[]. * arm-tdep.c (arm_stub_unwind_sniffer) (arm_displaced_init_closure): Use gdb_byte. (arm_default_arm_le_breakpoint, arm_default_arm_be_breakpoint) (arm_default_thumb_le_breakpoint) (arm_default_thumb_be_breakpoint): Change type to gdb_byte[]. * arm-tdep.h (struct gdbarch_tdep) : Change type to gdb_byte *. * arm-wince-tdep.c (arm_wince_le_breakpoint) (arm_wince_thumb_le_breakpoint): Change type to gdb_byte[]. * armnbsd-tdep.c (arm_nbsd_arm_le_breakpoint) (arm_nbsd_arm_be_breakpoint, arm_nbsd_thumb_le_breakpoint) (arm_nbsd_thumb_be_breakpoint): Change type to gdb_byte[]. * armobsd-tdep.c (arm_obsd_thumb_le_breakpoint) (arm_obsd_thumb_be_breakpoint): Change type to gdb_byte[]. * cris-tdep.c (push_stack_item, cris_push_dummy_call) (cris_store_return_value, cris_extract_return_value): Use gdb_byte. (constraint): Change type of parameter to char * from signed char*. Use gdb_byte. * dwarf2loc.c (read_pieced_value, write_pieced_value): Change type of local buffer to gdb_byte *. * dwarf2read.c (read_index_from_section): Use gdb_byte. (create_dwp_hash_table): Change type of locals to gdb_byte *. (add_address_entry): Change type of local buffer to gdb_byte[]. * frv-tdep.c (frv_adjust_breakpoint_address, find_func_descr) (frv_push_dummy_call): Use gdb_byte. * hppa-hpux-tdep.c (hppa_hpux_push_dummy_code) (hppa_hpux_supply_ss_fpblock, hppa_hpux_supply_ss_wide) (hppa_hpux_supply_save_state): Use gdb_byte. * hppa-tdep.c (hppa32_push_dummy_call) (hppa64_convert_code_addr_to_fptr): Use gdb_byte. * ia64-tdep.c (extract_bit_field, replace_bit_field) (slotN_contents, replace_slotN_contents): Change type of parameter to gdb_byte *. (fetch_instruction, ia64_pseudo_register_write) (ia64_register_to_value, ia64_value_to_register) (ia64_extract_return_value, ia64_store_return_value) (ia64_push_dummy_call): Use gdb_byte. * m32c-tdep.c (m32c_return_value): Remove cast. * m68hc11-tdep.c (m68hc11_pseudo_register_write) (m68hc11_push_dummy_call, m68hc11_store_return_value): Use gdb_byte. * mipsnbsd-tdep.c (mipsnbsd_get_longjmp_target): Use gdb_byte. * mn10300-tdep.c (mn10300_store_return_value) (mn10300_breakpoint_from_pc, mn10300_push_dummy_call): Use gdb_byte. * moxie-tdep.c (moxie_process_readu): Use gdb_byte. (moxie_process_record): Remove casts. * ppc-ravenscar-thread.c (supply_register_at_address) (ppc_ravenscar_generic_store_registers): Use gdb_byte. * ravenscar-thread.c (get_running_thread_id): Use gdb_byte. * remote-m32r-sdi.c (m32r_fetch_register): Use gdb_byte. * remote-mips.c (mips_xfer_memory): Use gdb_byte. * remote.c (compare_sections_command): Use gdb_byte. * score-tdep.c (score7_free_memblock): Change type of parameter to gdb_byte *. * sh-tdep.c (sh_justify_value_in_reg): Change return type to gdb_byte *. Use gdb_byte. (sh_push_dummy_call_fpu): Use gdb_byte. (sh_extract_return_value_nofpu, sh_extract_return_value_fpu) (sh_store_return_value_nofpu, sh_store_return_value_fpu) (sh_register_convert_to_virtual, sh_register_convert_to_raw): Change parameter type to 'gdb_byte *'. Use gdb_byte. (sh_pseudo_register_read, sh_pseudo_register_write): Use gdb_byte. * sh64-tdep.c (sh64_push_dummy_call): Use gdb_byte. (sh64_store_return_value, sh64_register_convert_to_virtual): Change parameter type to 'gdb_byte *'. Use gdb_byte. (sh64_pseudo_register_write): Use gdb_byte. * solib-darwin.c (darwin_current_sos): Add casts to 'gdb_byte *'. * solib-irix.c (fetch_lm_info): Likewise. Use gdb_byte for byte buffer. (irix_current_sos): Use gdb_byte. * solib-som.c (som_current_sos): Use gdb_byte. * sparc-ravenscar-thread.c (supply_register_at_address) (sparc_ravenscar_generic_store_registers): Use gdb_byte. * spu-multiarch.c (spu_xfer_partial): Add cast to 'char *'. * spu-tdep.c (spu_get_overlay_table): Use gdb_byte. * tic6x-tdep.c (tic6x_breakpoint_from_pc): Change return type to 'gdb_byte *'. * tic6x-tdep.h (struct gdbarch_tdep) : Change type to 'gdb_byte *'. * tracepoint.c (tfile_fetch_registers): Use gdb_byte. * xstormy16-tdep.c (xstormy16_extract_return_value) (xstormy16_store_return_value): Change parameter type to 'gdb_byte *'. Adjust. (xstormy16_push_dummy_call): Use gdb_byte. * xtensa-tdep.c (xtensa_scan_prologue, call0_ret) (call0_analyze_prologue, execute_code): Use gdb_byte. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 32 ++ bfd/coffcode.h | 6 +- bfd/compress.c | 7 +- bfd/elf-ifunc.c | 27 +- bfd/elf32-hppa.c | 6 +- bfd/elf32-m32r.c | 6 +- bfd/elf32-tic6x.c | 5 +- bfd/elfnn-ia64.c | 13 +- bfd/elfxx-mips.c | 24 +- bfd/mach-o.c | 6 +- bfd/mmo.c | 18 +- bfd/opncls.c | 7 +- bfd/peicode.h | 6 +- bfd/version.h | 2 +- bfd/vms-alpha.c | 6 +- gdb/ChangeLog | 381 +++++++++++++++++- gdb/NEWS | 6 + gdb/aarch64-tdep.c | 16 +- gdb/ada-lang.c | 5 +- gdb/ada-tasks.c | 2 +- gdb/alpha-tdep.c | 6 +- gdb/alphanbsd-tdep.c | 8 +- gdb/arm-linux-tdep.c | 16 +- gdb/arm-tdep.c | 12 +- gdb/arm-tdep.h | 6 +- gdb/arm-wince-tdep.c | 4 +- gdb/armnbsd-tdep.c | 8 +- gdb/armobsd-tdep.c | 4 +- gdb/avr-tdep.c | 8 +- gdb/c-lang.c | 2 +- gdb/coff-pe-read.c | 7 +- gdb/common/agent.c | 3 +- gdb/common/gdb_thread_db.h | 445 +-------------------- gdb/common/{gdb_thread_db.h => glibc_thread_db.h} | 89 ++-- gdb/configure | 2 +- gdb/configure.ac | 2 +- gdb/copyright.py | 1 + gdb/cp-valprint.c | 2 +- gdb/cris-tdep.c | 26 +- gdb/ctf.c | 15 +- gdb/doc/ChangeLog | 17 +- gdb/doc/gdb.texinfo | 3 + gdb/doc/gdbint.texinfo | 13 +- gdb/dwarf2-frame.c | 6 +- gdb/dwarf2loc.c | 4 +- gdb/dwarf2read.c | 464 +++++++++++++-------- gdb/frv-tdep.c | 10 +- gdb/gdbserver/ChangeLog | 22 + gdb/gdbserver/Makefile.in | 5 - gdb/gdbserver/config.in | 3 + gdb/gdbserver/configure | 7 +- gdb/gdbserver/configure.ac | 4 +- gdb/gdbserver/linux-low.h | 6 +- gdb/hppa-hpux-tdep.c | 16 +- gdb/hppa-tdep.c | 4 +- gdb/i386-cygwin-tdep.c | 6 +- gdb/i387-tdep.c | 2 +- gdb/ia64-tdep.c | 24 +- gdb/linux-tdep.c | 8 +- gdb/m32c-tdep.c | 3 +- gdb/m68hc11-tdep.c | 14 +- gdb/mep-tdep.c | 2 +- gdb/mips-tdep.c | 6 +- gdb/mipsnbsd-tdep.c | 2 +- gdb/mn10300-tdep.c | 11 +- gdb/monitor.c | 14 +- gdb/moxie-tdep.c | 14 +- gdb/ppc-linux-tdep.c | 2 +- gdb/ppc-ravenscar-thread.c | 6 +- gdb/python/py-inferior.c | 2 +- gdb/python/py-prettyprint.c | 10 +- gdb/python/py-value.c | 3 +- gdb/ravenscar-thread.c | 2 +- gdb/record-full.c | 10 +- gdb/record.c | 2 +- gdb/remote-m32r-sdi.c | 2 +- gdb/remote-mips.c | 34 +- gdb/remote.c | 31 +- gdb/reverse.c | 4 +- gdb/s390-tdep.c | 8 +- gdb/score-tdep.c | 2 +- gdb/ser-base.c | 9 +- gdb/ser-base.h | 2 +- gdb/ser-go32.c | 21 +- gdb/ser-tcp.c | 5 +- gdb/serial.c | 16 +- gdb/serial.h | 6 +- gdb/sh-tdep.c | 44 +- gdb/sh64-tdep.c | 41 +- gdb/solib-darwin.c | 10 +- gdb/solib-dsbt.c | 2 +- gdb/solib-frv.c | 2 +- gdb/solib-irix.c | 12 +- gdb/solib-som.c | 2 +- gdb/solib-spu.c | 2 +- gdb/solib-svr4.c | 6 +- gdb/sparc-ravenscar-thread.c | 6 +- gdb/spu-multiarch.c | 2 +- gdb/spu-tdep.c | 18 +- gdb/testsuite/ChangeLog | 25 ++ gdb/testsuite/gdb.arch/i386-float.S | 34 ++ gdb/testsuite/gdb.arch/i386-float.exp | 43 ++ gdb/testsuite/gdb.dwarf2/missing-sig-type.exp | 68 +++ gdb/testsuite/gdb.mi/mi-var-create-rtti.exp | 6 +- gdb/testsuite/lib/dwarf.exp | 73 ++++ gdb/testsuite/lib/gdb.exp | 20 +- gdb/tic6x-tdep.c | 2 +- gdb/tic6x-tdep.h | 2 +- gdb/top.c | 9 + gdb/tracepoint.c | 19 +- gdb/version.in | 2 +- gdb/xcoffread.c | 2 +- gdb/xstormy16-tdep.c | 10 +- gdb/xtensa-tdep.c | 10 +- opcodes/ChangeLog | 7 + opcodes/cgen-dis.c | 7 +- sim/ChangeLog | 4 + sim/ppc/ppc-instructions | 13 + 118 files changed, 1520 insertions(+), 1097 deletions(-) copy gdb/common/{gdb_thread_db.h => glibc_thread_db.h} (87%) create mode 100644 gdb/testsuite/gdb.arch/i386-float.S create mode 100644 gdb/testsuite/gdb.arch/i386-float.exp create mode 100644 gdb/testsuite/gdb.dwarf2/missing-sig-type.exp First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e717f12..22cf440 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,35 @@ +2013-04-19 Nick Clifton + + PR binutils/15356 + * compress.c (decompress_contents): Always call inflateEnd, even + when another inflation operation fails. + +2013-04-17 H.J. Lu + + * elf-ifunc.c: Update copyright year. + +2013-04-17 Luca Pizzamiglio + + * coffcode.h: Added a cast to void when a bfd_set_section_*() + macro's return value is ignored. + * elf32-hppa.c: Likewise. + * elf32-tic6x.c: Likewise. + * mach-o.c: Likewise. + * mmo.c: Likewise. + * opncls.c: Likewise. + * peicode.h: Likewise. + * elf32-m32r.c: Check return value of bfd_set_section_*(). + * elfnn-ia64.c: Likewise. + * elfxx-mips.c: Likewise. + * vms-alpha.c: Likewise. + +2013-04-15 H.J. Lu + + PR ld/15371 + * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Check + regular reference without non-GOT reference when building + shared library. + 2013-04-15 Alan Modra * archive.c (_bfd_archive_close_and_cleanup): Clear parent diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 49c13c3..9d9c992 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -1,7 +1,5 @@ /* Support for the generic parts of most COFF variants, for BFD. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright 1990-2013 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -3447,7 +3445,7 @@ coff_compute_section_file_positions (bfd * abfd) incremented in coff_set_section_contents. This is right for SVR3.2. */ if (strcmp (current->name, _LIB) == 0) - bfd_set_section_vma (abfd, current, 0); + (void) bfd_set_section_vma (abfd, current, 0); #endif #ifdef ALIGN_SECTIONS_IN_FILE diff --git a/bfd/compress.c b/bfd/compress.c index eb3bc53..46c2bcb 100644 --- a/bfd/compress.c +++ b/bfd/compress.c @@ -45,19 +45,20 @@ decompress_contents (bfd_byte *compressed_buffer, strm.next_in = (Bytef*) compressed_buffer + 12; strm.avail_out = uncompressed_size; + BFD_ASSERT (Z_OK == 0); rc = inflateInit (&strm); while (strm.avail_in > 0 && strm.avail_out > 0) { if (rc != Z_OK) - return FALSE; + break; strm.next_out = ((Bytef*) uncompressed_buffer + (uncompressed_size - strm.avail_out)); rc = inflate (&strm, Z_FINISH); if (rc != Z_STREAM_END) - return FALSE; + break; rc = inflateReset (&strm); } - rc = inflateEnd (&strm); + rc |= inflateEnd (&strm); return rc == Z_OK && strm.avail_out == 0; } #endif diff --git a/bfd/elf-ifunc.c b/bfd/elf-ifunc.c index e56427d..c2fa163 100644 --- a/bfd/elf-ifunc.c +++ b/bfd/elf-ifunc.c @@ -1,5 +1,5 @@ /* ELF STT_GNU_IFUNC support. - Copyright 2009 + Copyright 2009-2013 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -187,23 +187,20 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info, htab = elf_hash_table (info); + /* When building shared library, we need to handle the case where it is + marked with regular reference, but not non-GOT reference since the + non-GOT reference bit may not be set here. */ + if (info->shared && !h->non_got_ref && h->ref_regular) + for (p = *head; p != NULL; p = p->next) + if (p->count) + { + h->non_got_ref = 1; + goto keep; + } + /* Support garbage collection against STT_GNU_IFUNC symbols. */ if (h->plt.refcount <= 0 && h->got.refcount <= 0) { - /* When building shared library, we need to handle the case - where it is marked with regular reference, but not non-GOT - reference. It may happen if we didn't see STT_GNU_IFUNC - symbol at the time when checking relocations. */ - if (info->shared - && !h->non_got_ref - && h->ref_regular) - for (p = *head; p != NULL; p = p->next) - if (p->count) - { - h->non_got_ref = 1; - goto keep; - } - h->got = htab->init_got_offset; h->plt = htab->init_plt_offset; *head = NULL; diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c index 4ffa3d2..dfffbcb 100644 --- a/bfd/elf32-hppa.c +++ b/bfd/elf32-hppa.c @@ -1,7 +1,5 @@ /* BFD back-end for HP PA-RISC ELF files. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 - Free Software Foundation, Inc. + Copyright 1990-2013 Free Software Foundation, Inc. Original code by Center for Software Science @@ -2370,7 +2368,7 @@ elf32_hppa_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, bfd_size_type mask; if (gotalign > pltalign) - bfd_set_section_alignment (dynobj, sec, gotalign); + (void) bfd_set_section_alignment (dynobj, sec, gotalign); mask = ((bfd_size_type) 1 << gotalign) - 1; sec->size = (sec->size + sizeof (plt_stub) + mask) & ~mask; } diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c index 789a456..71e8fc7 100644 --- a/bfd/elf32-m32r.c +++ b/bfd/elf32-m32r.c @@ -1,6 +1,5 @@ /* M32R-specific support for 32-bit ELF. - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + Copyright 1996-2013 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -1390,7 +1389,8 @@ m32r_elf_add_symbol_hook (bfd *abfd, flags); if (s == NULL) return FALSE; - bfd_set_section_alignment (abfd, s, 2); + if (! bfd_set_section_alignment (abfd, s, 2)) + return FALSE; } bh = bfd_link_hash_lookup (info->hash, "_SDA_BASE_", diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c index 04ef708..77c6ad1 100644 --- a/bfd/elf32-tic6x.c +++ b/bfd/elf32-tic6x.c @@ -1,6 +1,5 @@ /* 32-bit ELF support for TI C6X - Copyright 2010, 2011, 2012 - Free Software Foundation, Inc. + Copyright 2010-2013 Free Software Foundation, Inc. Contributed by Joseph Myers Bernd Schmidt @@ -3038,7 +3037,7 @@ elf32_tic6x_add_symbol_hook (bfd *abfd, *secp = bfd_make_section_old_way (abfd, ".scommon"); (*secp)->flags |= SEC_IS_COMMON; *valp = sym->st_size; - bfd_set_section_alignment (abfd, *secp, bfd_log2 (sym->st_value)); + (void) bfd_set_section_alignment (abfd, *secp, bfd_log2 (sym->st_value)); break; } diff --git a/bfd/elfnn-ia64.c b/bfd/elfnn-ia64.c index 05c2f1b..117b4c8 100644 --- a/bfd/elfnn-ia64.c +++ b/bfd/elfnn-ia64.c @@ -1,6 +1,5 @@ /* IA-64 support for 64-bit ELF - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + Copyright 1998-2013 Free Software Foundation, Inc. Contributed by David Mosberger-Tang This file is part of BFD, the Binary File Descriptor library. @@ -1546,7 +1545,8 @@ elfNN_ia64_create_dynamic_sections (bfd *abfd, bfd_set_section_flags (abfd, ia64_info->root.sgot, SEC_SMALL_DATA | flags); /* The .got section is always aligned at 8 bytes. */ - bfd_set_section_alignment (abfd, ia64_info->root.sgot, 3); + if (! bfd_set_section_alignment (abfd, ia64_info->root.sgot, 3)) + return FALSE; } if (!get_pltoff (abfd, info, ia64_info)) @@ -1952,16 +1952,17 @@ get_got (bfd *abfd, struct bfd_link_info *info, if (!dynobj) ia64_info->root.dynobj = dynobj = abfd; if (!_bfd_elf_create_got_section (dynobj, info)) - return 0; + return NULL; got = ia64_info->root.sgot; /* The .got section is always aligned at 8 bytes. */ if (!bfd_set_section_alignment (abfd, got, 3)) - return 0; + return NULL; flags = bfd_get_section_flags (abfd, got); - bfd_set_section_flags (abfd, got, SEC_SMALL_DATA | flags); + if (! bfd_set_section_flags (abfd, got, SEC_SMALL_DATA | flags)) + return NULL; } return got; diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 317e7b2..fa80771 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -1,7 +1,5 @@ /* MIPS-specific support for ELF - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 - Free Software Foundation, Inc. + Copyright 1993-2013 Free Software Foundation, Inc. Most of the information added by Ian Lance Taylor, Cygnus Support, . @@ -7265,20 +7263,24 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info) /* Change alignments of some sections. */ s = bfd_get_linker_section (abfd, ".hash"); if (s != NULL) - bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); + (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); + s = bfd_get_linker_section (abfd, ".dynsym"); if (s != NULL) - bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); + (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); + s = bfd_get_linker_section (abfd, ".dynstr"); if (s != NULL) - bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); + (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); + /* ??? */ s = bfd_get_section_by_name (abfd, ".reginfo"); if (s != NULL) - bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); + (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); + s = bfd_get_linker_section (abfd, ".dynamic"); if (s != NULL) - bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); + (void) bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd)); } if (!info->shared) @@ -13533,7 +13535,8 @@ _bfd_mips_elf_final_link (bfd *abfd, struct bfd_link_info *info) /* Structure for saying that BFD machine EXTENSION extends BASE. */ -struct mips_mach_extension { +struct mips_mach_extension +{ unsigned long extension, base; }; @@ -13541,7 +13544,8 @@ struct mips_mach_extension { /* An array describing how BFD machines relate to one another. The entries are ordered topologically with MIPS I extensions listed last. */ -static const struct mips_mach_extension mips_mach_extensions[] = { +static const struct mips_mach_extension mips_mach_extensions[] = +{ /* MIPS64r2 extensions. */ { bfd_mach_mips_octeon2, bfd_mach_mips_octeonp }, { bfd_mach_mips_octeonp, bfd_mach_mips_octeon }, diff --git a/bfd/mach-o.c b/bfd/mach-o.c index c92b530..e1bbd29 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -1,7 +1,5 @@ /* Mach-O support for BFD. - Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010, 2011, 2012 - Free Software Foundation, Inc. + Copyright 1999-2013 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -2693,7 +2691,7 @@ bfd_mach_o_new_section_hook (bfd *abfd, asection *sec) s->flags = xlat->macho_sectype | xlat->macho_secattr; s->align = xlat->sectalign > bfdalign ? xlat->sectalign : bfdalign; - bfd_set_section_alignment (abfd, sec, s->align); + (void) bfd_set_section_alignment (abfd, sec, s->align); bfd_flags = bfd_get_section_flags (abfd, sec); if (bfd_flags == SEC_NO_FLAGS) bfd_set_section_flags (abfd, sec, xlat->bfd_flags); diff --git a/bfd/mmo.c b/bfd/mmo.c index e336723..cd7b0fc 100644 --- a/bfd/mmo.c +++ b/bfd/mmo.c @@ -1,6 +1,5 @@ /* BFD back-end for mmo objects (MMIX-specific object-format). - Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright 2001-2013 Free Software Foundation, Inc. Written by Hans-Peter Nilsson (hp@bitrange.com). Infrastructure and other bits originally copied from srec.c and binary.c. @@ -662,8 +661,9 @@ mmo_decide_section (bfd *abfd, bfd_vma vma) if (sec == NULL) return NULL; - if (! sec->user_set_vma) - bfd_set_section_vma (abfd, sec, vma); + if (! sec->user_set_vma && ! bfd_set_section_vma (abfd, sec, vma)) + return NULL; + if (! bfd_set_section_flags (abfd, sec, bfd_get_section_flags (abfd, sec) | SEC_CODE | SEC_LOAD | SEC_ALLOC)) @@ -676,8 +676,9 @@ mmo_decide_section (bfd *abfd, bfd_vma vma) if (sec == NULL) return NULL; - if (! sec->user_set_vma) - bfd_set_section_vma (abfd, sec, vma); + if (! sec->user_set_vma && ! bfd_set_section_vma (abfd, sec, vma)) + return NULL; + if (! bfd_set_section_flags (abfd, sec, bfd_get_section_flags (abfd, sec) | SEC_LOAD | SEC_ALLOC)) @@ -692,8 +693,9 @@ mmo_decide_section (bfd *abfd, bfd_vma vma) /* If there's still no suitable section, make a new one. */ sprintf (sec_name, ".MMIX.sec.%d", abfd->tdata.mmo_data->sec_no++); sec = mmo_make_section (abfd, sec_name); - if (! sec->user_set_vma) - bfd_set_section_vma (abfd, sec, vma); + + if (! sec->user_set_vma && ! bfd_set_section_vma (abfd, sec, vma)) + return NULL; if (! bfd_set_section_flags (abfd, sec, bfd_get_section_flags (abfd, sec) diff --git a/bfd/opncls.c b/bfd/opncls.c index 1217cea..3879a65 100644 --- a/bfd/opncls.c +++ b/bfd/opncls.c @@ -1,7 +1,5 @@ /* opncls.c -- open and close a BFD. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 - Free Software Foundation, Inc. + Copyright 1990-2013 Free Software Foundation, Inc. Written by Cygnus Support. @@ -255,12 +253,13 @@ bfd_fopen (const char *filename, const char *target, const char *mode, int fd) return NULL; } nbfd->opened_once = TRUE; + /* If we opened the file by name, mark it cacheable; we can close it and reopen it later. However, if a file descriptor was provided, then it may have been opened with special flags that make it unsafe to close and reopen the file. */ if (fd == -1) - bfd_set_cacheable (nbfd, TRUE); + (void) bfd_set_cacheable (nbfd, TRUE); return nbfd; } diff --git a/bfd/peicode.h b/bfd/peicode.h index 66c8198..64ca092 100644 --- a/bfd/peicode.h +++ b/bfd/peicode.h @@ -1,7 +1,5 @@ /* Support for the generic parts of PE/PEI, for BFD. - Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 - Free Software Foundation, Inc. + Copyright 1995-2013 Free Software Foundation, Inc. Written by Cygnus Solutions. This file is part of BFD, the Binary File Descriptor library. @@ -610,7 +608,7 @@ pe_ILF_make_a_section (pe_ILF_vars * vars, bfd_set_section_flags (vars->abfd, sec, flags | extra_flags); - bfd_set_section_alignment (vars->abfd, sec, 2); + (void) bfd_set_section_alignment (vars->abfd, sec, 2); /* Check that we will not run out of space. */ BFD_ASSERT (vars->data + size < vars->bim->buffer + vars->bim->size); diff --git a/bfd/version.h b/bfd/version.h index a62bb74..e5462d7 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20130415 +#define BFD_VERSION_DATE 20130419 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c index 3383b0f..4edc226 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -1,6 +1,5 @@ /* vms.c -- BFD back-end for EVAX (openVMS/Alpha) files. - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. + Copyright 1996-2013 Free Software Foundation, Inc. Initial version written by Klaus Kaempf (kkaempf@rmi.de) Major rewrite by Adacore. @@ -9118,7 +9117,8 @@ vms_new_section_hook (bfd * abfd, asection *section) vms_debug2 ((1, "vms_new_section_hook (%p, [%d]%s)\n", abfd, section->index, section->name)); - bfd_set_section_alignment (abfd, section, 0); + if (! bfd_set_section_alignment (abfd, section, 0)) + return FALSE; vms_debug2 ((7, "%d: %s\n", section->index, section->name)); diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 72d187b..dd252c9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,4 +1,4 @@ -2013-04-16 Tom Tromey +2013-04-19 Tom Tromey PR gdb/7912: * Makefile.in (SFILES): Add filestuff.c @@ -51,6 +51,385 @@ gdb_fopen_cloexec. * main.c (captured_main): Call notice_open_fds. +2013-04-19 Pedro Alves + + * configure.ac (build_warnings): Replace -Wno-pointer-sign with + -Wpointer-sign. + * configure: Regenerate. + +2013-04-19 Pedro Alves + + * ser-tcp.c (net_read_prim): Cast second argument to recv to + 'void *'. + +2013-04-19 Pedro Alves + + * monitor.c (monitor_write_memory, monitor_write_memory_bytes): + Change type of 'myaddr' parameter to gdb_byte pointer. + (monitor_write_memory_longlongs): Likewise. Cast 'myaddr' pointer + to 'long long' pointer instead of to 'unsigned long long'. + (monitor_write_memory_block, monitor_read_memory_single) + (monitor_read_memory): Change type of 'myaddr' parameter to + gdb_byte pointer. + +2013-04-19 Pedro Alves + + * record.c (validate_history_size): Make parameter 'setting' + unsigned. + +2013-04-19 Pedro Alves hooks/post-receive -- Repository for Project Archer.