RE: [PATCH v2 01/47] gdb, intelgt: add intelgt as a basic machine

Aktemur, Tankut Baris
2024-12-20T09:57:28Z

Hi,

On Wednesday, December 18, 2024 8:20 AM, Jan Beulich wrote:
> On 17.12.2024 19:48, Aktemur, Tankut Baris wrote:
> > On Monday, December 16, 2024 8:54 AM, Jan Beulich wrote:
> >> On 13.12.2024 16:59, Tankut Baris Aktemur wrote:
> >>> Add 'intelgt' as a basic machine to config.sub.
> >>>
> >>> To: <config-patches@gnu.org>
> >>> To: <binutils@sourceware.org>
> >>> ---
> >>> config.sub | 1 +
> >>> 1 file changed, 1 insertion(+)
> >>>
> >>> diff --git a/config.sub b/config.sub
> >>> index
> 2c6a07ab3c34eabed8318ec0a37c0cc23b77a63f..63ff958ec125e543674e9b261d5e5bb2fa749c4e
> >> 100755
> >>> --- a/config.sub
> >>> +++ b/config.sub
> >>> @@ -1205,6 +1205,7 @@ case $cpu-$vendor in
> >>> | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
> >>> | hexagon \
> >>> | i370 | i*86 | i860 | i960 | ia16 | ia64 \
> >>> + | intelgt \
> >>> | ip2k | iq2000 \
> >>> | k1om \
> >>> | kvx \
> >>>
> >>
> >> Patch 3 enables ld, but I can't spot any gas enabling (sadly the cover letter
> >> wasn't Cc-ed to the binutils list).
> >
> > Sorry, this is my bad. I'll Cc binutils in the next revision submission.
> > For the time being, the link to the cover letter is
> >
> > https://sourceware.org/pipermail/gdb-patches/2024-December/214029.html
> >
> >> Don't you further need to exclude gas from
> >> attempts of configuring?
> >>
> >> I'm also puzzled by that difference: The series supposedly is about enabling
> >> gdb. Why enable ld there? Just because it's (seemingly) easy?
> >>
> >> Jan
> >
> > Without enabling ld, when configured as
> >
> > <src>/configure --enable-targets="intelgt-elf"
> >
> > 'make' gives
> >
> > *** ld does not support target intelgt-unknown-elf
> > *** see ld/configure.tgt for supported targets
>
> Like I think I said for gas, that imo wants dealing with by a top level
> configure change, adding ld to noconfigtargets for intelgt.

Our overall goal at this step is to enable GDB.

A GPU workload executes by being submitted to the device from a
host/native process. Therefore, although enabling GDB only for the
GPU target is possible, in general it needs to be enabled in addition
to the native target. That is, it makes sense that a x86-64 target is
the primary one whereas the intelgt target is enabled as a secondary
target, so that GDB is able to debug native processes as usual, plus
the GPU workloads.

The $noconfigdirs approach works for the primary target only. Hence,
we cannot use it for an 'enabled-targets' target.

Another approach we can take is to not touch ld and let it fail. The
expectation would be then:

1. either configure GDB with "--disable-ld --disable-gas ..." and
then use "make" to build it, or

2. configure without disabling components but then use "make
all-gdb" to build.

Our case is in fact similar to AMD GPU (ROCm) debug support in GDB.
The online documentation at

https://rocm.docs.amd.com/projects/ROCgdb/en/latest/install/installation.html#build

suggests using "--disable-ld --disable-gas ...". Otherwise ld would
fail with

*** ld does not support target amdgcn-amd-amdhsa
*** see ld/configure.tgt for supported targets

Regards,
-Baris