https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78763
Jiri Danek <jdanek at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #10 from Jiri Danek <jdanek at redhat dot com> --- I am trying to compile qpid-proton with gcc snapshot (again in docker, https://hub.docker.com/r/jdanekrh/nightly-gccgo-trunk-docker-image/) and as far as I can tell, the go binding package does compile successfully. So I'd say this bug is resolved. What _does_ fail though is compilation of the go sample program which uses the binding package. It is quite likely this is a bug in the build script which was never before tested with gccgo. FYI, the compilation error when compiling the sample program make[2]: Entering directory '/qpid-proton/build' /usr/bin/python /qpid-proton/proton-c/env.py -- GOPATH=/qpid-proton/proton-c/bindings/go CGO_CFLAGS=-I/qpid-proton/proton-c/include\ -I/qpid-proton/build/proton-c/include CGO_LDFLAGS=-L/qpid-proton/build/proton-c PN_INTEROP_DIR=/qpid-proton/tests/interop /usr/local/bin/go build -gccgoflags -Wl,-rpath=/qpid-proton/build/proton-c -o /qpid-proton/build/examples/go/electron/broker /qpid-proton/examples/go/electron/broker.go # command-line-arguments ../examples/go/electron/broker.go:30:9: error: import file '../util' not found "../util" ^ ../examples/go/electron/broker.go:69:16: error: expected package queues util.Queues // A collection of queues. ^ ../examples/go/electron/broker.go:79:8: error: expected package q util.Queue ^ ../examples/go/electron/broker.go:57:14: error: reference to undefined name 'util' queues: util.MakeQueues(*qsize), ^ ../examples/go/electron/broker.go:97:4: error: reference to undefined name 'util' util.Debugf("Accept error: %v", err) ^ ../examples/go/electron/broker.go:102:3: error: reference to undefined name 'util' util.Debugf("Accepted %v", c) ^ ../examples/go/electron/broker.go:137:3: error: reference to undefined name 'util' util.Debugf("incoming: %v", in) ^ ../examples/go/electron/broker.go:115:2: error: range clause must have array, slice, string, map, or channel type for in := range c.connection.Incoming() { ^ ../examples/go/electron/broker.go:139:2: error: reference to undefined name 'util' util.Debugf("incoming closed: %v", c.connection) ^ ../examples/go/electron/broker.go:147:4: error: reference to undefined name 'util' util.Debugf("%v: received %v", receiver, util.FormatMessage(rm.Message)) ^ ../examples/go/electron/broker.go:147:45: error: reference to undefined name 'util' util.Debugf("%v: received %v", receiver, util.FormatMessage(rm.Message)) ^ ../examples/go/electron/broker.go:151:4: error: reference to undefined name 'util' util.Debugf("%v error: %v", receiver, err) ^ ../examples/go/electron/broker.go:162:4: error: reference to undefined name 'util' util.Debugf("%v closed: %v", sender, sender.Error()) ^ ../examples/go/electron/broker.go:168:4: error: reference to undefined name 'util' util.Debugf("%v: sent %v", sender, util.FormatMessage(m)) ^ ../examples/go/electron/broker.go:168:39: error: reference to undefined name 'util' util.Debugf("%v: sent %v", sender, util.FormatMessage(m)) ^ ../examples/go/electron/broker.go:185:13: error: invalid type for make function sentMap := make(map[sentMessage]bool) ^ ../examples/go/electron/broker.go:196:4: error: argument 1 must be a map delete(sentMap, sm) ^ ../examples/go/electron/broker.go:199:5: error: reference to undefined name 'util' util.Debugf("message %v put back, status %v, error %v", ^ ../examples/go/electron/broker.go:200:6: error: reference to undefined name 'util' util.FormatMessage(sm.m), outcome.Status, outcome.Error) ^ ../examples/go/electron/broker.go:115:6: error: invalid type for range clause for in := range c.connection.Incoming() { ^ ../examples/go/electron/broker.go:167:3: error: expected channel case m := <-q: ^ ../examples/go/electron/broker.go:188:3: error: expected channel case sm, ok := <-b.sent: // A local sender records that it has sent a message. ^ ../examples/go/electron/broker.go:194:3: error: expected channel case outcome := <-b.acks: // The message outcome is available ^ ../examples/go/electron/broker.go:167:15: error: expected channel case m := <-q: ^ ../examples/go/electron/broker.go:188:21: error: expected channel case sm, ok := <-b.sent: // A local sender records that it has sent a message. ^ ../examples/go/electron/broker.go:194:22: error: expected channel case outcome := <-b.acks: // The message outcome is available ^ make[2]: *** [examples/go/CMakeFiles/go_example_electron_broker] Error 2 examples/go/CMakeFiles/go_example_electron_broker.dir/build.make:57: recipe for target 'examples/go/CMakeFiles/go_example_electron_broker' failed