Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [RFA] Moving x86-64 configuration to separate directory
@ 2002-05-27  8:05 Michal Ludvig
  2002-05-27 11:10 ` Jason R Thorpe
  0 siblings, 1 reply; 6+ messages in thread
From: Michal Ludvig @ 2002-05-27  8:05 UTC (permalink / raw)
  To: GDB Patches

[-- Attachment #1: Type: text/plain, Size: 466 bytes --]

Hi,
I'm about to move all x86-64 configuration stuff to a separate 
directory. For now it resides in config/i386 but AFAIK this is a relict 
of cloning the the files from eachother, not the necessity.
Yet more x86-64 is definitely a different architecture than i386 :-)
Can I commit these patches? I tested them on native x86-64 as well as 
for cross-targetted gdb.

Michal Ludvig
-- 
* SuSE CR, s.r.o     * mludvig@suse.cz
* +420 2 9654 5373   * http://www.suse.cz

[-- Attachment #2: config-x8664.diff --]
[-- Type: text/plain, Size: 7226 bytes --]

Index: configure.host
===================================================================
RCS file: /cvs/src/src/gdb/configure.host,v
retrieving revision 1.38
diff -c -3 -p -r1.38 configure.host
*** configure.host	22 May 2002 03:59:53 -0000	1.38
--- configure.host	27 May 2002 14:44:06 -0000
*************** powerpc*)		gdb_host_cpu=powerpc ;;
*** 21,27 ****
  sparcv9 | sparc64)	gdb_host_cpu=sparc ;;
  s390*)			gdb_host_cpu=s390 ;;
  sh*)			gdb_host_cpu=sh ;;
! x86_64*)		gdb_host_cpu=i386 ;;
  *)			gdb_host_cpu=$host_cpu ;;
  
  esac
--- 21,27 ----
  sparcv9 | sparc64)	gdb_host_cpu=sparc ;;
  s390*)			gdb_host_cpu=s390 ;;
  sh*)			gdb_host_cpu=sh ;;
! x86_64*)		gdb_host_cpu=x86-64 ;;
  *)			gdb_host_cpu=$host_cpu ;;
  
  esac
Index: configure.tgt
===================================================================
RCS file: /cvs/src/src/gdb/configure.tgt,v
retrieving revision 1.67
diff -c -3 -p -r1.67 configure.tgt
*** configure.tgt	22 May 2002 03:59:53 -0000	1.67
--- configure.tgt	27 May 2002 14:44:06 -0000
*************** sh*)			gdb_target_cpu=sh ;;
*** 29,35 ****
  strongarm*)		gdb_target_cpu=arm ;;
  xscale*)		gdb_target_cpu=arm ;;
  v850*)			gdb_target_cpu=v850 ;;
! x86_64*)		gdb_target_cpu=i386 ;;
  *)			gdb_target_cpu=$target_cpu ;;
  
  esac
--- 29,35 ----
  strongarm*)		gdb_target_cpu=arm ;;
  xscale*)		gdb_target_cpu=arm ;;
  v850*)			gdb_target_cpu=v850 ;;
! x86_64*)		gdb_target_cpu=x86-64 ;;
  *)			gdb_target_cpu=$target_cpu ;;
  
  esac
diff -c3pN config/x86-64-empty/nm-x86-64.h config/x86-64/nm-x86-64.h
*** config/x86-64-empty/nm-x86-64.h	Thu Jan  1 01:00:00 1970
--- config/x86-64/nm-x86-64.h	Mon May 27 15:42:42 2002
***************
*** 0 ****
--- 1,90 ----
+ /* Native support for GNU/Linux x86-64.
+ 
+    Copyright 2001, 2002 Free Software Foundation, Inc.  Contributed by
+    Jiri Smid, SuSE Labs.
+ 
+    This file is part of GDB.
+ 
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.  */
+ 
+ #ifndef NM_X86_64_H
+ #define NM_X86_64_H
+ 
+ #include "nm-linux.h"
+ 
+ #define I386_USE_GENERIC_WATCHPOINTS
+ #include "i386/nm-i386.h"
+ 
+ /* Support for 8-byte wide hw watchpoints.  */
+ #define TARGET_HAS_DR_LEN_8 1
+ 
+ /* Provide access to the i386 hardware debugging registers.  */
+ 
+ extern void x86_64_linux_dr_set_control (unsigned long control);
+ #define I386_DR_LOW_SET_CONTROL(control) \
+   x86_64_linux_dr_set_control (control)
+ 
+ extern void x86_64_linux_dr_set_addr (int regnum, CORE_ADDR addr);
+ #define I386_DR_LOW_SET_ADDR(regnum, addr) \
+   x86_64_linux_dr_set_addr (regnum, addr)
+ 
+ extern void x86_64_linux_dr_reset_addr (int regnum);
+ #define I386_DR_LOW_RESET_ADDR(regnum) \
+   x86_64_linux_dr_reset_addr (regnum)
+ 
+ extern unsigned long x86_64_linux_dr_get_status (void);
+ #define I386_DR_LOW_GET_STATUS() \
+   x86_64_linux_dr_get_status ()
+ \f
+ 
+ #define REGISTER_U_ADDR(addr, blockend, regno) \
+ 	(addr) = x86_64_register_u_addr ((blockend),(regno));
+ CORE_ADDR x86_64_register_u_addr (CORE_ADDR, int);
+ 
+ /* Return the size of the user struct.  */
+ #define KERNEL_U_SIZE kernel_u_size()
+ extern int kernel_u_size (void);
+ 
+ /* Offset of the registers within the user area.  */
+ #define U_REGS_OFFSET 0
+ 
+ /* This is the amount to subtract from u.u_ar0
+    to get the offset in the core file of the register values.  */
+ #define KERNEL_U_ADDR 0x0
+ 
+ #define PTRACE_ARG3_TYPE void*
+ #define PTRACE_XFER_TYPE unsigned long
+ \f
+ 
+ /* We define this if link.h is available, because with ELF we use SVR4 style
+    shared libraries. */
+ 
+ #ifdef HAVE_LINK_H
+ #define SVR4_SHARED_LIBS
+ #include "solib.h"		/* Support for shared libraries. */
+ #endif
+ 
+ /* Override copies of {fetch,store}_inferior_registers in `infptrace.c'.  */
+ #define FETCH_INFERIOR_REGISTERS
+ 
+ #undef PREPARE_TO_PROCEED
+ 
+ #include <signal.h>
+ 
+ extern void lin_thread_get_thread_signals (sigset_t * mask);
+ #define GET_THREAD_SIGNALS(mask) lin_thread_get_thread_signals (mask)
+ 
+ #endif /* NM_X86_64.h */
diff -c3pN config/x86-64-empty/x86-64linux.mh config/x86-64/x86-64linux.mh
*** config/x86-64-empty/x86-64linux.mh	Thu Jan  1 01:00:00 1970
--- config/x86-64/x86-64linux.mh	Mon May 27 15:42:42 2002
***************
*** 0 ****
--- 1,13 ----
+ # Host: AMD x86-64 running GNU/Linux
+ 
+ XM_FILE= xm-x86-64.h
+ 
+ NAT_FILE= nm-x86-64.h
+ 
+ NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o \
+ 	i386-nat.o x86-64-linux-nat.o \
+ 	proc-service.o thread-db.o lin-lwp.o \
+ 	linux-proc.o gcore.o \
+ 	solib.o solib-svr4.o solib-legacy.o
+ 
+ LOADLIBES = -ldl -rdynamic
diff -c3pN config/x86-64-empty/x86-64linux.mt config/x86-64/x86-64linux.mt
*** config/x86-64-empty/x86-64linux.mt	Thu Jan  1 01:00:00 1970
--- config/x86-64/x86-64linux.mt	Mon May 27 15:42:42 2002
***************
*** 0 ****
--- 1,3 ----
+ # Target: AMD x86-64 running GNU/Linux
+ TDEPFILES= x86-64-tdep.o x86-64-linux-tdep.o i387-tdep.o dwarf2cfi.o \
+ 	corelow.o core-regset.o
diff -c3pN config/x86-64-empty/xm-x86-64.h config/x86-64/xm-x86-64.h
*** config/x86-64-empty/xm-x86-64.h	Thu Jan  1 01:00:00 1970
--- config/x86-64/xm-x86-64.h	Mon May 27 15:42:42 2002
***************
*** 0 ****
--- 1,30 ----
+ /* Host-dependent definitions for x86-64.
+    Copyright 2001 Free Software Foundation, Inc.
+ 
+    This file is part of GDB.
+ 
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.  */
+ 
+ #ifndef XM_X8664_h
+ #define XM_X8664_H
+ 
+ #include "floatformat.h"
+ 
+ #define HOST_FLOAT_FORMAT &floatformat_ieee_single_little
+ #define HOST_DOUBLE_FORMAT &floatformat_ieee_double_little
+ #define HOST_LONG_DOUBLE_FORMAT &floatformat_i387_ext
+ 
+ #endif /* XM_X8664_H */

^ permalink raw reply	[flat|nested] 6+ messages in thread
* Re: [RFA] Moving x86-64 configuration to separate directory
@ 2002-05-27 15:41 Mark Kettenis
  2002-05-28  1:11 ` Jason R Thorpe
  2002-05-28  7:29 ` Michal Ludvig
  0 siblings, 2 replies; 6+ messages in thread
From: Mark Kettenis @ 2002-05-27 15:41 UTC (permalink / raw)
  To: Michal Ludvig; +Cc: GDB Patches

Michal Ludvig <mludvig@suse.cz> writes:

> Hi,
> I'm about to move all x86-64 configuration stuff to a separate 
> directory. For now it resides in config/i386 but AFAIK this is a relict 
> of cloning the the files from eachother, not the necessity.
> Yet more x86-64 is definitely a different architecture than i386 :-)

Is it really?  My understanding is that it is comparable to sparc
vs. sparc64.  Isn't it possiblle to execute normal 32-bit i386 code on
the x86_64?  In that case, you'd probably want to have a GDB that can
handle both.  The only way to be able to accomplish that in the near
future is seeing them as different variants of the same architecture.
In that case you should leave the files where they are now.
Incidentally that's what GCC does.

If you want these targets to become really seperate, we should
consider doing a repository copy of the files to preserve their
history.

Mark


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2002-05-28 16:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-05-27  8:05 [RFA] Moving x86-64 configuration to separate directory Michal Ludvig
2002-05-27 11:10 ` Jason R Thorpe
2002-05-27 15:41 Mark Kettenis
2002-05-28  1:11 ` Jason R Thorpe
2002-05-28  7:29 ` Michal Ludvig
2002-05-28  9:23   ` Jason R Thorpe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox