@@ -20,11 +20,11 @@ tasks:
20
20
all :
21
21
desc : Build for distribution for all platforms
22
22
cmds :
23
- - task : Linux_ARMv6
24
23
- task : Windows_32bit
25
24
- task : Windows_64bit
26
25
- task : Linux_32bit
27
26
- task : Linux_64bit
27
+ - task : Linux_ARMv6
28
28
- task : Linux_ARMv7
29
29
- task : Linux_ARM64
30
30
- task : macOS_64bit
@@ -135,7 +135,7 @@ tasks:
135
135
PLATFORM_DIR : " {{ .PROJECT_NAME }}_linux_arm_7"
136
136
BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .LDFLAGS }}"
137
137
BUILD_PLATFORM : " linux/armv7"
138
- CONTAINER_TAG : " {{ .GO_VERSION }}-arm "
138
+ CONTAINER_TAG : " {{ .GO_VERSION }}-armhf "
139
139
PACKAGE_PLATFORM : " Linux_ARMv7"
140
140
PACKAGE_NAME : " {{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.tar.gz"
141
141
@@ -157,7 +157,35 @@ tasks:
157
157
PLATFORM_DIR : " {{ .PROJECT_NAME }}_linux_arm_6"
158
158
BUILD_COMMAND : " go build -o {{ .DIST_DIR }}/{{ .PLATFORM_DIR }}/{{ .PROJECT_NAME }} {{ .LDFLAGS }}"
159
159
BUILD_PLATFORM : " linux/armv6"
160
- CONTAINER_TAG : " {{ .GO_VERSION }}-armel"
160
+ # We are experiencing the following error with ARMv6 build:
161
+ #
162
+ # # github.com/arduino/arduino-cli
163
+ # net(.text): unexpected relocation type 296 (R_ARM_V4BX)
164
+ # panic: runtime error: invalid memory address or nil pointer dereference
165
+ # [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x51ae53]
166
+ #
167
+ # goroutine 1 [running]:
168
+ # cmd/link/internal/loader.(*Loader).SymName(0xc000095c00, 0x0, 0xc0000958d8, 0x5a0ac)
169
+ # /usr/local/go/src/cmd/link/internal/loader/loader.go:684 +0x53
170
+ # cmd/link/internal/ld.dynrelocsym2(0xc000095880, 0x5a0ac)
171
+ # /usr/local/go/src/cmd/link/internal/ld/data.go:777 +0x295
172
+ # cmd/link/internal/ld.(*dodataState).dynreloc2(0xc007df9800, 0xc000095880)
173
+ # /usr/local/go/src/cmd/link/internal/ld/data.go:794 +0x89
174
+ # cmd/link/internal/ld.(*Link).dodata2(0xc000095880, 0xc007d00000, 0x60518, 0x60518)
175
+ # /usr/local/go/src/cmd/link/internal/ld/data.go:1434 +0x4d4
176
+ # cmd/link/internal/ld.Main(0x8729a0, 0x4, 0x8, 0x1, 0xd, 0xe, 0x0, 0x0, 0x6d7737, 0x12, ...)
177
+ # /usr/local/go/src/cmd/link/internal/ld/main.go:302 +0x123a
178
+ # main.main()
179
+ # /usr/local/go/src/cmd/link/main.go:68 +0x1dc
180
+ # Error: failed building for linux/armv6: exit status 2
181
+ #
182
+ # This seems to be a problem in the go builder 1.16.x that removed support for the R_ARM_V4BX instruction:
183
+ # https://github.com/golang/go/pull/44998
184
+ # https://groups.google.com/g/golang-codereviews/c/yzN80xxwu2E
185
+ #
186
+ # Until there is a fix released we must use a recent gcc for Linux_ARMv6 build, so for this
187
+ # build we select the debian10 based container.
188
+ CONTAINER_TAG : " {{ .GO_VERSION }}-armel-debian10"
161
189
PACKAGE_PLATFORM : " Linux_ARMv6"
162
190
PACKAGE_NAME : " {{ .PROJECT_NAME }}_{{ .VERSION }}_{{ .PACKAGE_PLATFORM }}.tar.gz"
163
191
0 commit comments