This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb and binutils branch master updated. 1b5d0ab34c53d6e896d2c0958b1176e324bb7878


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
       via  1b5d0ab34c53d6e896d2c0958b1176e324bb7878 (commit)
      from  cca5b8b64b3286bb96cd7a2c18232d1acea85cd9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1b5d0ab34c53d6e896d2c0958b1176e324bb7878

commit 1b5d0ab34c53d6e896d2c0958b1176e324bb7878
Author: Pedro Alves <palves@redhat.com>
Date:   Wed Jul 16 19:25:41 2014 +0100

    gdb.trace/tfile.c: Remove Thumb bit in one more more, general cleanup
    
    I noticed that the existing code casts a function's address to 'long',
    but that doesn't work correctly on some ABIs, like Win64, where long
    is 32-bit and while pointers are 64-bit:
    
      func_addr = (long) &write_basic_trace_file;
    
    Fixing that showed there's actually another place in the file that
    writes a function address to file, and therefore should clear the
    Thumb bit.  This commit adds a macro+function pair to centralize the
    Thumb bit handling, and uses it in both places.
    
    The rest is just enough changes to make the file build without
    warnings with "-Wall -Wextra" with x86_64-w64-mingw32-gcc and
    i686-w64-mingw32-gcc cross compilers, and with -m32/-m64 on x86_64
    GNU/Linux.  Currently with x86_64-w64-mingw32-gcc we get:
    
      $ x86_64-w64-mingw32-gcc tfile.c  -Wall -DTFILE_DIR=\"\"
      tfile.c: In function 'start_trace_file':
      tfile.c:51:23: error: 'S_IRGRP' undeclared (first use in this function)
    	 S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
    			 ^
      tfile.c:51:23: note: each undeclared identifier is reported only once for each function it appears in
      tfile.c:51:31: error: 'S_IROTH' undeclared (first use in this function)
    	 S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
    				 ^
      tfile.c: In function 'add_memory_block':
      tfile.c:79:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
         ll_x = (unsigned long) addr;
    	    ^
      tfile.c: In function 'write_basic_trace_file':
      tfile.c:113:15: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
         func_addr = (long) &write_basic_trace_file;
    		 ^
      tfile.c:137:3: warning: passing argument 1 of 'add_memory_block' from incompatible pointer type [enabled by default]
         add_memory_block (&testglob, sizeof (testglob));
         ^
      tfile.c:72:1: note: expected 'char *' but argument is of type 'int *'
       add_memory_block (char *addr, int size)
       ^
      tfile.c:139:3: warning: passing argument 1 of 'add_memory_block' from incompatible pointer type [enabled by default]
         add_memory_block (&testglob2, 1);
         ^
      tfile.c:72:1: note: expected 'char *' but argument is of type 'int *'
       add_memory_block (char *addr, int size)
       ^
      tfile.c: In function 'write_error_trace_file':
      tfile.c:185:3: warning: implicit declaration of function 'alloca' [-Wimplicit-function-declaration]
         char *hex = alloca (len * 2 + 1);
         ^
      tfile.c:185:15: warning: incompatible implicit declaration of built-in function 'alloca' [enabled by default]
         char *hex = alloca (len * 2 + 1);
    		 ^
      tfile.c:211:6: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    	(long) &write_basic_trace_file);
          ^
    
    Tested on x86_64 Fedora 20, -m64 and -m32.
    Tested by Yao on arm targets.
    
    gdb/testsuite/
    2014-07-16  Pedro Alves  <palves@redhat.com>
    
    	* gdb.trace/tfile.c: Include unistd.h and stdint.h.
    	(start_trace_file): Guard S_IRGRP and S_IROTH uses behind #ifdef.
    	(tfile_write_64, tfile_write_16, tfile_write_8, tfile_write_addr)
    	(tfile_write_buf): New functions.
    	(add_memory_block): Rewrite using the above.
    	(adjust_function_address): New function.
    	(FUNCTION_ADDRESS): New macro.
    	(write_basic_trace_file): Remove short_x local, and use
    	tfile_write_16. Change type of func_addr local to unsigned long
    	long.  Use FUNCTION_ADDRESS instead of handling the Thumb bit
    	here.  Cast argument of add_memory_block to char pointer.
    	(write_error_trace_file): Avoid alloca.  Use FUNCTION_ADDRESS.
    	(main): Remove parameters.
    	* gdb.trace/tfile.exp: Remove nowarnings.

-----------------------------------------------------------------------

Summary of changes:
 gdb/testsuite/ChangeLog           |   17 ++++++
 gdb/testsuite/gdb.trace/tfile.c   |  114 +++++++++++++++++++++++++-----------
 gdb/testsuite/gdb.trace/tfile.exp |    2 +-
 3 files changed, 97 insertions(+), 36 deletions(-)


hooks/post-receive
-- 
gdb and binutils


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]