Source: gitlab
Version: 17.6.5-15
Severity: normal
Tags: patch
User: debian-loonga...@lists.debian.org
Usertags: loong64

Dear maintainers,

Compiling the gitlab failed for loong64 in the Debian Package Auto-Building environment.
The error log is as follows,
```
# gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf
src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:20:10: undefined: _BC_BASE_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:22:10: undefined: _BC_DIM_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:24:10: undefined: _BC_SCALE_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:26:10: undefined: _BC_STRING_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:28:10: undefined: _COLL_WEIGHTS_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:30:10: undefined: _EXPR_NEST_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:32:10: undefined: _HOST_NAME_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:34:10: undefined: _LINE_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:36:10: undefined: _LOGIN_NAME_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:40:10: undefined: _RE_DUP_MAX src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go:40:10: too many errors
```
The full build log can be found at https://buildd.debian.org/status/fetch.php?pkg=gitlab&arch=loong64&ver=17.6.5-15&stamp=1746215926&raw=0.

After analyzing, I found that go.mod is ignored and only use system file, for examples,
```
gitlab-17.6.5# ls -al _build/src/gitlab.com/gitlab-org/gitlab/vendor/github.com/tklauser/go-sysconf |grep tklauser lrwxrwxrwx 1 root root  108  4月 3日 21:08 example_test.go -> /usr/share/gocode/src/gitlab.com/gitlab-org/gitaly/v16/vendor/github.com/tklauser/go-sysconf/example_test.go lrwxrwxrwx 1 root root  105  4月 3日 21:08 mksysconf.go -> /usr/share/gocode/src/gitlab.com/gitlab-org/gitaly/v16/vendor/github.com/tklauser/go-sysconf/mksysconf.go lrwxrwxrwx 1 root root  107  4月 3日 21:08 sysconf_bsd.go -> /usr/share/gocode/src/gitlab.com/gitlab-org/gitaly/v16/vendor/github.com/tklauser/go-sysconf/sysconf_bsd.go
......
lrwxrwxrwx 1 root root  111  4月 3日 21:08 sysconf_generic.go -> /usr/share/gocode/src/gitlab.com/gitlab-org/gitaly/v16/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go
```

The file /usr/share/gocode/src/gitlab.com/gitlab-org/gitaly/v16/vendor/github.com/tklauser/go-sysconf/sysconf_generic.go is provided by golang-gitlab-gitlab-org-gitaly-dev(gitaly).

Please consider the patch I attached.
- For gitlab(attached patch gitlab-update-go.mod.patch)
need to update github.com/tklauser/go-sysconf's version in go.mod and go.sum. loong64 was supported in release https://github.com/tklauser/go-sysconf/blob/v0.3.15.

- For gitaly(attached patch gitaly-update-tklauser-go-sysconf-for-loong64.patch)
use vendor in gitaly source package.
github.com/tklauser/go-sysconf v0.3.9 is too old which do not support loong64. I tested that I use github.com/tklauser/go-sysconf v0.3.15 is not useful in go.mod.

Based on the attached patch gitaly-update-tklauser-go-sysconf-for-loong64.patch(need to add patch for vendor directory), gitlay was built successfully on locally. Based on my local gitlay(re-install golang-gitlab-gitlab-org-gitaly-dev with loong64 support in my system), gitlab was built successfully on locally.

BTW, I suggest regenerating go.mod and go.sum for gitaly and gitlab source package.
Your opinions are welcome.

Best regards,
Dandan Zhang

Description: Update github.com/tklauser/go-sysconf's version in go.mod and go.sum 
 .
 gitlab (17.6.5-15+loong64) unstable; urgency=medium
 .
   * Update github.com/tklauser/go-sysconf's version in go.mod and go.sum 
Author: Dandan Zhang 

---
Last-Update: 2025-05-08

--- gitlab-17.6.5.orig/workhorse/go.mod
+++ gitlab-17.6.5/workhorse/go.mod
@@ -1,8 +1,8 @@
 module gitlab.com/gitlab-org/gitlab/workhorse
 
-go 1.22
+go 1.23.0
 
-toolchain go1.22.6
+toolchain go1.24.1
 
 require (
 	github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.1
@@ -119,8 +119,8 @@ require (
 	github.com/shabbyrobe/gocovmerge v0.0.0-20230507112040-c3350d9342df // indirect
 	github.com/shirou/gopsutil/v3 v3.21.12 // indirect
 	github.com/tinylib/msgp v1.1.2 // indirect
-	github.com/tklauser/go-sysconf v0.3.9 // indirect
-	github.com/tklauser/numcpus v0.3.0 // indirect
+	github.com/tklauser/go-sysconf v0.3.15 // indirect
+	github.com/tklauser/numcpus v0.10.0 // indirect
 	github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
 	github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
 	github.com/yusufpapurcu/wmi v1.2.2 // indirect
@@ -135,7 +135,7 @@ require (
 	golang.org/x/crypto v0.28.0 // indirect
 	golang.org/x/mod v0.20.0 // indirect
 	golang.org/x/sync v0.8.0 // indirect
-	golang.org/x/sys v0.26.0 // indirect
+	golang.org/x/sys v0.33.0 // indirect
 	golang.org/x/text v0.19.0 // indirect
 	golang.org/x/time v0.6.0 // indirect
 	golang.org/x/tools v0.24.0 // indirect
--- gitlab-17.6.5.orig/workhorse/go.sum
+++ gitlab-17.6.5/workhorse/go.sum
@@ -464,11 +464,13 @@ github.com/stretchr/testify v1.9.0/go.mo
 github.com/tinylib/msgp v1.1.2 h1:gWmO7n0Ys2RBEb7GPYB9Ujq8Mk5p2U08lRnmMcGy6BQ=
 github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
 github.com/tklauser/go-sysconf v0.3.4/go.mod h1:Cl2c8ZRWfHD5IrfHo9VN+FX9kCFjIOyVklgXycLB6ek=
-github.com/tklauser/go-sysconf v0.3.9 h1:JeUVdAOWhhxVcU6Eqr/ATFHgXk/mmiItdKeJPev3vTo=
 github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs=
+github.com/tklauser/go-sysconf v0.3.15 h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8Ol49K4=
+github.com/tklauser/go-sysconf v0.3.15/go.mod h1:Dmjwr6tYFIseJw7a3dRLJfsHAMXZ3nEnL/aZY+0IuI4=
 github.com/tklauser/numcpus v0.2.1/go.mod h1:9aU+wOc6WjUIZEwWMP62PL/41d65P+iks1gBkr4QyP8=
-github.com/tklauser/numcpus v0.3.0 h1:ILuRUQBtssgnxw0XXIjKUC56fgnOrFoQQ/4+DeU2biQ=
 github.com/tklauser/numcpus v0.3.0/go.mod h1:yFGUr7TUHQRAhyqBcEg0Ge34zDBAsIvJJcyE6boqnA8=
+github.com/tklauser/numcpus v0.10.0 h1:18njr6LDBk1zuna922MgdjQuJFjrdppsZG60sHGfjso=
+github.com/tklauser/numcpus v0.10.0/go.mod h1:BiTKazU708GQTYF4mB+cmlpT2Is1gLk7XVuEeem8LsQ=
 github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
 github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
 github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
@@ -717,8 +719,8 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1
 golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
-golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
+golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
Description: Add loongarch64 support 
 .
 gitaly (16.11.6+ds1-4+loong64) unstable; urgency=medium
 .
   * Add loongarch64(go arch is loong64) support.
Author: Dandan Zhang <zhangdan...@loongson.cn>

---
Last-Update: 2025-05-08

--- gitaly-16.11.6+ds1.orig/go.mod
+++ gitaly-16.11.6+ds1/go.mod
@@ -1,6 +1,8 @@
 module gitlab.com/gitlab-org/gitaly/v16
 
-go 1.21
+go 1.23.0
+
+toolchain go1.24.1
 
 // It is a temporary solution, please see https://gitlab.com/gitlab-org/gitaly/-/issues/4423 for details.
 replace github.com/go-enry/go-license-detector/v4 => github.com/gl-gitaly/go-license-detector/v4 v4.0.0-20230524080836-4cc9a3796917
@@ -43,7 +45,7 @@ require (
 	golang.org/x/crypto v0.22.0
 	golang.org/x/exp v0.0.0-20240119083558-1b970713d09a
 	golang.org/x/sync v0.6.0
-	golang.org/x/sys v0.19.0
+	golang.org/x/sys v0.33.0
 	golang.org/x/text v0.14.0
 	golang.org/x/time v0.5.0
 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7
@@ -181,8 +183,8 @@ require (
 	github.com/skeema/knownhosts v1.2.1 // indirect
 	github.com/ssgelm/cookiejarparser v1.0.1 // indirect
 	github.com/tinylib/msgp v1.1.2 // indirect
-	github.com/tklauser/go-sysconf v0.3.9 // indirect
-	github.com/tklauser/numcpus v0.3.0 // indirect
+	github.com/tklauser/go-sysconf v0.3.15 // indirect
+	github.com/tklauser/numcpus v0.10.0 // indirect
 	github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
 	github.com/xanzy/ssh-agent v0.3.3 // indirect
 	github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
--- gitaly-16.11.6+ds1.orig/go.sum
+++ gitaly-16.11.6+ds1/go.sum
@@ -584,9 +584,13 @@ github.com/tinylib/msgp v1.1.2/go.mod h1
 github.com/tklauser/go-sysconf v0.3.4/go.mod h1:Cl2c8ZRWfHD5IrfHo9VN+FX9kCFjIOyVklgXycLB6ek=
 github.com/tklauser/go-sysconf v0.3.9 h1:JeUVdAOWhhxVcU6Eqr/ATFHgXk/mmiItdKeJPev3vTo=
 github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs=
+github.com/tklauser/go-sysconf v0.3.15 h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8Ol49K4=
+github.com/tklauser/go-sysconf v0.3.15/go.mod h1:Dmjwr6tYFIseJw7a3dRLJfsHAMXZ3nEnL/aZY+0IuI4=
 github.com/tklauser/numcpus v0.2.1/go.mod h1:9aU+wOc6WjUIZEwWMP62PL/41d65P+iks1gBkr4QyP8=
 github.com/tklauser/numcpus v0.3.0 h1:ILuRUQBtssgnxw0XXIjKUC56fgnOrFoQQ/4+DeU2biQ=
 github.com/tklauser/numcpus v0.3.0/go.mod h1:yFGUr7TUHQRAhyqBcEg0Ge34zDBAsIvJJcyE6boqnA8=
+github.com/tklauser/numcpus v0.10.0 h1:18njr6LDBk1zuna922MgdjQuJFjrdppsZG60sHGfjso=
+github.com/tklauser/numcpus v0.10.0/go.mod h1:BiTKazU708GQTYF4mB+cmlpT2Is1gLk7XVuEeem8LsQ=
 github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
 github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
 github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
@@ -848,6 +852,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp
 golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
 golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
+golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
--- /dev/null
+++ gitaly-16.11.6+ds1/vendor/github.com/tklauser/go-sysconf/zsysconf_values_linux_loong64.go
@@ -0,0 +1,113 @@
+// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+// cgo -godefs sysconf_values_linux.go
+
+//go:build linux && loong64
+
+package sysconf
+
+const (
+	_AIO_PRIO_DELTA_MAX = 0x14
+	_BC_BASE_MAX        = 0x63
+	_BC_DIM_MAX         = 0x800
+	_BC_SCALE_MAX       = 0x63
+	_BC_STRING_MAX      = 0x3e8
+	_COLL_WEIGHTS_MAX   = 0xff
+	_DELAYTIMER_MAX     = 0x7fffffff
+	_EXPR_NEST_MAX      = 0x20
+	_HOST_NAME_MAX      = 0x40
+	_LINE_MAX           = 0x800
+	_LOGIN_NAME_MAX     = 0x100
+	_MQ_PRIO_MAX        = 0x8000
+	_NGROUPS_MAX        = 0x10000
+	_NSS_BUFLEN_GROUP   = 0x400
+	_NSS_BUFLEN_PASSWD  = 0x400
+	_OPEN_MAX           = 0x100
+	_PTHREAD_KEYS_MAX   = 0x400
+	_PTHREAD_STACK_MIN  = 0x20000
+	_RE_DUP_MAX         = 0x7fff
+	_RTSIG_MAX          = 0x20
+	_SEM_VALUE_MAX      = 0x7fffffff
+	_STREAM_MAX         = 0x10
+	_SYMLOOP_MAX        = -0x1
+	_TTY_NAME_MAX       = 0x20
+
+	_UIO_MAXIOV = 0x400
+
+	_INT_MAX = 0x7fffffff
+
+	_POSIX_ADVISORY_INFO                = 0x31069
+	_POSIX_ARG_MAX                      = 0x1000
+	_POSIX_ASYNCHRONOUS_IO              = 0x31069
+	_POSIX_BARRIERS                     = 0x31069
+	_POSIX_CHILD_MAX                    = 0x19
+	_POSIX_CLOCK_SELECTION              = 0x31069
+	_POSIX_CPUTIME                      = 0x0
+	_POSIX_FSYNC                        = 0x31069
+	_POSIX_IPV6                         = 0x31069
+	_POSIX_JOB_CONTROL                  = 0x1
+	_POSIX_MAPPED_FILES                 = 0x31069
+	_POSIX_MEMLOCK                      = 0x31069
+	_POSIX_MEMLOCK_RANGE                = 0x31069
+	_POSIX_MEMORY_PROTECTION            = 0x31069
+	_POSIX_MESSAGE_PASSING              = 0x31069
+	_POSIX_MONOTONIC_CLOCK              = 0x0
+	_POSIX_PRIORITIZED_IO               = 0x31069
+	_POSIX_PRIORITY_SCHEDULING          = 0x31069
+	_POSIX_RAW_SOCKETS                  = 0x31069
+	_POSIX_READER_WRITER_LOCKS          = 0x31069
+	_POSIX_REALTIME_SIGNALS             = 0x31069
+	_POSIX_REGEXP                       = 0x1
+	_POSIX_SAVED_IDS                    = 0x1
+	_POSIX_SEMAPHORES                   = 0x31069
+	_POSIX_SHARED_MEMORY_OBJECTS        = 0x31069
+	_POSIX_SHELL                        = 0x1
+	_POSIX_SIGQUEUE_MAX                 = 0x20
+	_POSIX_SPAWN                        = 0x31069
+	_POSIX_SPIN_LOCKS                   = 0x31069
+	_POSIX_SPORADIC_SERVER              = -0x1
+	_POSIX_SYNCHRONIZED_IO              = 0x31069
+	_POSIX_THREAD_ATTR_STACKADDR        = 0x31069
+	_POSIX_THREAD_ATTR_STACKSIZE        = 0x31069
+	_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 0x4
+	_POSIX_THREAD_PRIO_INHERIT          = 0x31069
+	_POSIX_THREAD_PRIO_PROTECT          = 0x31069
+	_POSIX_THREAD_PRIORITY_SCHEDULING   = 0x31069
+	_POSIX_THREAD_PROCESS_SHARED        = 0x31069
+	_POSIX_THREAD_SAFE_FUNCTIONS        = 0x31069
+	_POSIX_THREAD_SPORADIC_SERVER       = -0x1
+	_POSIX_THREADS                      = 0x31069
+	_POSIX_TIMEOUTS                     = 0x31069
+	_POSIX_TIMERS                       = 0x31069
+	_POSIX_TRACE                        = -0x1
+	_POSIX_TRACE_EVENT_FILTER           = -0x1
+	_POSIX_TRACE_INHERIT                = -0x1
+	_POSIX_TRACE_LOG                    = -0x1
+	_POSIX_TYPED_MEMORY_OBJECTS         = -0x1
+	_POSIX_VERSION                      = 0x31069
+
+	_POSIX_V7_ILP32_OFF32  = -0x1
+	_POSIX_V7_ILP32_OFFBIG = -0x1
+	_POSIX_V7_LP64_OFF64   = 0x1
+	_POSIX_V7_LPBIG_OFFBIG = -0x1
+
+	_POSIX_V6_ILP32_OFF32  = -0x1
+	_POSIX_V6_ILP32_OFFBIG = -0x1
+	_POSIX_V6_LP64_OFF64   = 0x1
+	_POSIX_V6_LPBIG_OFFBIG = -0x1
+
+	_POSIX2_C_BIND    = 0x31069
+	_POSIX2_C_DEV     = 0x31069
+	_POSIX2_C_VERSION = 0x31069
+	_POSIX2_CHAR_TERM = 0x31069
+	_POSIX2_LOCALEDEF = 0x31069
+	_POSIX2_SW_DEV    = 0x31069
+	_POSIX2_VERSION   = 0x31069
+
+	_XOPEN_ENH_I18N         = 0x1
+	_XOPEN_REALTIME         = 0x1
+	_XOPEN_REALTIME_THREADS = 0x1
+	_XOPEN_SHM              = 0x1
+	_XOPEN_UNIX             = 0x1
+	_XOPEN_VERSION          = 0x2bc
+	_XOPEN_XCU_VERSION      = 0x4
+)

Reply via email to