Bug 1181866

Summary: GCC 11: cilium-proxy package fails
Product: [openSUSE] openSUSE Tumbleweed Reporter: Martin Liška <martin.liska>
Component: BasesystemAssignee: Michał Rostecki <mrostecki>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P2 - High    
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 1181859    

Description Martin Liška 2021-02-06 11:03:30 UTC
Fails here:
https://build.opensuse.org/package/live_build_log/openSUSE:Factory:Staging:Gcc7/cilium-proxy/standard/x86_64

with:
[  179s] Use --sandbox_debug to see verbose messages from the sandbox
[  179s] external/boringssl/src/third_party/fiat/curve25519.c:511:57: error: argument 2 of type 'const uint8_t[32]' {aka 'const unsigned char[32]'} with mismatched bound [-Werror=array-parameter=]
[  179s]   511 | int x25519_ge_frombytes_vartime(ge_p3 *h, const uint8_t s[32]) {
[  179s]       |                                           ~~~~~~~~~~~~~~^~~~~
[  179s] In file included from external/boringssl/src/third_party/fiat/curve25519.c:41:
[  179s] external/boringssl/src/third_party/fiat/internal.h:117:58: note: previously declared as 'const uint8_t *' {aka 'const unsigned char *'}
[  179s]   117 | int x25519_ge_frombytes_vartime(ge_p3 *h, const uint8_t *s);
[  179s]       |                                           ~~~~~~~~~~~~~~~^
[  179s] external/boringssl/src/third_party/fiat/curve25519.c:831:57: error: argument 2 of type 'const uint8_t *' {aka 'const unsigned char *'} declared as a pointer [-Werror=array-parameter=]
[  179s]   831 | void x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t *a) {
[  179s]       |                                          ~~~~~~~~~~~~~~~^
[  179s] In file included from external/boringssl/src/third_party/fiat/curve25519.c:41:
[  179s] external/boringssl/src/third_party/fiat/internal.h:125:56: note: previously declared as an array 'const uint8_t[32]' {aka 'const unsigned char[32]'}
[  179s]   125 | void x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t a[32]);
[  179s]       |                                          ~~~~~~~~~~~~~~^~~~~
Comment 1 Martin Liška 2021-02-06 11:05:38 UTC
The same problem can be seen for this package:
https://build.opensuse.org/package/live_build_log/openSUSE:Factory:Staging:Gcc7/envoy-proxy/standard/x86_64
Comment 2 Martin Liška 2021-02-26 13:58:25 UTC
May I please ping this?
Comment 3 Martin Liška 2021-03-26 09:57:36 UTC
May I please ping this as GCC 11 release is approaching?
Comment 4 Martin Liška 2021-04-07 06:41:23 UTC
@Michael: May I please remind you this?
Comment 5 OBSbugzilla Bot 2021-05-18 00:10:02 UTC
This is an autogenerated message for OBS integration:
This bug (1181866) was mentioned in
https://build.opensuse.org/request/show/893862 Factory / boringssl
Comment 6 Martin Liška 2021-05-18 07:03:27 UTC
(In reply to OBSbugzilla Bot from comment #5)
> This is an autogenerated message for OBS integration:
> This bug (1181866) was mentioned in
> https://build.opensuse.org/request/show/893862 Factory / boringssl

boringssl package update does not fix the compilation errors
Comment 7 Martin Liška 2021-05-19 08:23:39 UTC
Workaround applied (using gcc10 package).
Comment 8 Martin Liška 2021-05-19 08:35:59 UTC
That implies 'building against gcc11' is still  unfixed - reopening
Comment 9 Martin Liška 2021-06-06 13:19:30 UTC
@Michael: Any update on this please?
Comment 10 Michał Rostecki 2021-06-09 14:49:25 UTC
I've sent a proposal of removing this package on the Kubic ML:

https://lists.opensuse.org/archives/list/kubic@lists.opensuse.org/thread/QCQ2U4PPYD2K4X5CV6CCI45QUYQ5AK2O/

Making it green with gcc11 would require upgrading (or making some backports, which I would like to avoid). Due to some new "amazing" build features in Envoy and Bazel, I'm unable to build it offline on OBS and my old script/service (https://github.com/kubic-project/obs-service-bazel_repositories) doesn't work anymore.

Let's see what the response on the ML is going to be, but I would rather spend my time on making Cilium working on rke2 with upstream container images rather than fighting with making Bazel OBS-friendly. Those images could be maybe slightly modified, maybe based on (open)SUSE, I'm fine with maintaining some set of Dockerfile patches as long as that doesn't require such craziness as I had to do with packaging Bazel projects.

From my understanding, we are shifting into direction of rke2 being one of supported "k8s deployers" on MicroOS, so I think that offering Cilium through rke2 makes sense.
Comment 11 Martin Liška 2021-07-23 07:01:07 UTC
The package was removed from Factory.