* [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 8:05 [RFA] Moving x86-64 configuration to separate directory Michal Ludvig
@ 2002-05-27 11:10 ` Jason R Thorpe
0 siblings, 0 replies; 6+ messages in thread
From: Jason R Thorpe @ 2002-05-27 11:10 UTC (permalink / raw)
To: Michal Ludvig; +Cc: GDB Patches
On Mon, May 27, 2002 at 04:52:58PM +0200, Michal Ludvig wrote:
> 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.
If this is a GNU/Linux-specific header file, then can you please name
it as such? nm-x86-64.h is certainly not going to be used for NetBSD
on the x86-64 (which I plan on integrating support for soon).
--
-- Jason R. Thorpe <thorpej@wasabisystems.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFA] Moving x86-64 configuration to separate directory
2002-05-28 7:29 ` Michal Ludvig
@ 2002-05-28 9:23 ` Jason R Thorpe
0 siblings, 0 replies; 6+ messages in thread
From: Jason R Thorpe @ 2002-05-28 9:23 UTC (permalink / raw)
To: Michal Ludvig; +Cc: Mark Kettenis, GDB Patches
On Tue, May 28, 2002 at 02:15:12PM +0200, Michal Ludvig wrote:
> I was told it isn't possible to have gdb supporting both x86-64 and i386
> unless i386 is fully mutliarched. And after it is I don't need to treat
> them as different flavors of one arch, do I?
But further decoupling the x86-64 code from the i386 code isn't going
to make it easier to remedy the situation in the future.
--
-- Jason R. Thorpe <thorpej@wasabisystems.com>
^ 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
2002-05-28 9:23 ` Jason R Thorpe
1 sibling, 1 reply; 6+ messages in thread
From: Michal Ludvig @ 2002-05-28 7:29 UTC (permalink / raw)
To: Mark Kettenis; +Cc: GDB Patches
Mark Kettenis wrote:
> Michal Ludvig <mludvig@suse.cz> writes:
>>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.
I was told it isn't possible to have gdb supporting both x86-64 and i386
unless i386 is fully mutliarched. And after it is I don't need to treat
them as different flavors of one arch, do I?
> In that case you should leave the files where they are now.
> Incidentally that's what GCC does.
Michal Ludvig
--
* SuSE CR, s.r.o * mludvig@suse.cz
* +420 2 9654 5373 * http://www.suse.cz
^ 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
1 sibling, 0 replies; 6+ messages in thread
From: Jason R Thorpe @ 2002-05-28 1:11 UTC (permalink / raw)
To: Mark Kettenis; +Cc: Michal Ludvig, GDB Patches
On Mon, May 27, 2002 at 06:59:15PM +0200, Mark Kettenis wrote:
> If you want these targets to become really seperate, we should
> consider doing a repository copy of the files to preserve their
> history.
Personally, I think splitting x86-64 out of i386 is the wrong approach.
I fully intend to support debugging both 32-bit and 64-bit code from
within the forthcoming x86_64-netbsd GDB configuration.
--
-- Jason R. Thorpe <thorpej@wasabisystems.com>
^ 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