[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Input requested on proposed chnages for Delve compilation issues on ppc64le




On 29/08/25 14:43, Alessandro Arzilli wrote:
On Fri, Aug 29, 2025 at 01:38:24AM +0530, tshah wrote:
I suspect it was because there were some tests which are just for amd64 and
it was failing due to a ppc64le arch. For that,  I have created the below
patch.

--- delve-1.24.0.orig/pkg/proc/core/core_test.go
+++ delve-1.24.0/pkg/proc/core/core_test.go
@@ -249,6 +249,9 @@ func logRegisters(t *testing.T, regs pro
 }

 func TestCore(t *testing.T) {
+    if runtime.GOARCH != "amd64" {
+        t.Skip("TestCore only supported on amd64")
+    }
     if runtime.GOOS != "linux" || runtime.GOARCH == "386" {
         t.Skip("unsupported")
     }
@@ -409,6 +412,9 @@ func TestCoreFpRegisters(t *testing.T) {
 }

 func TestCoreWithEmptyString(t *testing.T) {
+    if runtime.GOARCH != "amd64" {
+        t.Skip("TestCore only supported on amd64")
+    }
     if runtime.GOOS != "linux" || runtime.GOARCH == "386" {
         t.Skip("unsupported")
     }


Those tests in particular should word on linux/arm64 at least too.
Thank you for your inputs . I think then we shall modify this to skip the tests exclusively on ppc64le as of now. That way, this should allows to execute tests on another archs.

Further, I got one more issue in the dh_auto_install stage because of
multiple package names within the same folder, so it throws this error.
That's deliberate, the ppc64le is an experimental port that doesn't build
except if the exp.linuxppc64le flag is passed to go build. However we've had
a passing builder in CI for a while and I don't see any important tests
being skipped for ppc64le so you could send a PR to us to remove the flag,
you have to remove the clause that says !(ppc64le && exp.linuxppc64le) from
support_sentinel_linux.go 

yeah, correct. I understand that exp.linuxppc64le was introduced as an experimental build tag for ppc64le.I’ve looked into the suggestion of removing the !(ppc64le && exp.linuxppc64le) clause from support_sentinel_linux.go.

That said, I’m trying to better understand the practical impact of removing this clause. Additionally, even with this clause removed, I’m still encountering the same build error on ppc64le.  Got the below error after removing the clause. Is there any other place where the build tag might still be enforced?

src/github.com/go-delve/delve/service/debugger/debugger.go:31:2: found packages native (dump_linux.go) and your_linux_architecture_is_not_supported_by_delve (support_sentinel_linux.go) in /home/debian/delve/delve-1.24.0/obj-powerpc64le-linux-gnu/src/github.com/go-delve/delve/pkg/proc/native
dh_auto_build: error: cd obj-powerpc64le-linux-gnu && go install -trimpath -v -p 8 -tags exp.linuxppc64le,exp.linuxriscv64 github.com/go-delve/delve/cmd/dlv github.com/go-delve/delve/cmd/dlv/cmds github.com/go-delve/delve/cmd/dlv/cmds/helphelpers github.com/go-delve/delve/pkg/astutil github.com/go-delve/delve/pkg/config github.com/go-delve/delve/pkg/dwarf github.com/go-delve/delve/pkg/dwarf/dwarfbuilder github.com/go-delve/delve/pkg/dwarf/frame github.com/go-delve/delve/pkg/dwarf/godwarf github.com/go-delve/delve/pkg/dwarf/leb128 github.com/go-delve/delve/pkg/dwarf/line github.com/go-delve/delve/pkg/dwarf/loclist github.com/go-delve/delve/pkg/dwarf/op github.com/go-delve/delve/pkg/dwarf/reader github.com/go-delve/delve/pkg/dwarf/regnum github.com/go-delve/delve/pkg/elfwriter github.com/go-delve/delve/pkg/gobuild github.com/go-delve/delve/pkg/goversion github.com/go-delve/delve/pkg/internal/gosym github.com/go-delve/delve/pkg/locspec github.com/go-delve/delve/pkg/logflags github.com/go-delve/delve/pkg/proc github.com/go-delve/delve/pkg/proc/amd64util github.com/go-delve/delve/pkg/proc/core github.com/go-delve/delve/pkg/proc/core/minidump github.com/go-delve/delve/pkg/proc/debuginfod github.com/go-delve/delve/pkg/proc/evalop github.com/go-delve/delve/pkg/proc/fbsdutil github.com/go-delve/delve/pkg/proc/gdbserial github.com/go-delve/delve/pkg/proc/internal/ebpf github.com/go-delve/delve/pkg/proc/linutil github.com/go-delve/delve/pkg/proc/macutil github.com/go-delve/delve/pkg/proc/native github.com/go-delve/delve/pkg/proc/test github.com/go-delve/delve/pkg/proc/winutil github.com/go-delve/delve/pkg/terminal github.com/go-delve/delve/pkg/terminal/colorize github.com/go-delve/delve/pkg/terminal/starbind github.com/go-delve/delve/pkg/version github.com/go-delve/delve/service github.com/go-delve/delve/service/api github.com/go-delve/delve/service/dap github.com/go-delve/delve/service/dap/daptest github.com/go-delve/delve/service/debugger github.com/go-delve/delve/service/internal/sameuser github.com/go-delve/delve/service/rpc2 github.com/go-delve/delve/service/rpccommon returned exit code 1
make[1]: *** [debian/rules:21: override_dh_auto_build] Error 255

make[1]: Leaving directory '/home/debian/delve/delve-1.24.0'

Please correct me if I am missing something or misunderstood something.

Thanks


    

Reply to: