Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crypto/x509: cgo errors on for loop initial declarations with gcc pre-C99 #24425

Closed
avinashrd opened this issue Mar 16, 2018 · 5 comments
Closed

crypto/x509: cgo errors on for loop initial declarations with gcc pre-C99 #24425

avinashrd opened this issue Mar 16, 2018 · 5 comments

Comments

@avinashrd
Copy link

@avinashrd avinashrd commented Mar 16, 2018

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?

1.10

Does this issue reproduce with the latest release?

Yes

What operating system and processor architecture are you using (go env)?

GOARCH="amd64"
GOBIN="/Users/avinashrd/Downloads/projects/golang/bin"
GOCACHE="/Users/avinashrd/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/avinashrd/Downloads/projects/golang"
GORACE=""
GOROOT="/usr/local/opt/go/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="/usr/local/Cellar/gcc49/4.9.1/bin/gcc-4.9"
CXX="/usr/local/Cellar/gcc49/4.9.1/bin/g++-4.9"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/var/folders/w8/y97pxwvj35xcsw9vmh2s3gzr0000gn/T/go-build181075919=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

try to run the application in Jetbrains GoLand editor

If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.

What did you expect to see?

expected to see the valid output

What did you see instead?

/usr/local/opt/go/libexec/src/crypto/x509/root_cgo_darwin.go:104:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
for (int i = 0; i < numDomains; i++) {
^
/usr/local/opt/go/libexec/src/crypto/x509/root_cgo_darwin.go:104:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
/usr/local/opt/go/libexec/src/crypto/x509/root_cgo_darwin.go:112:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
for (int j = 0; j < numCerts; j++) {

@ianlancetaylor ianlancetaylor changed the title getting an error for simple go program with for loop in MAC OSX 10.13.13 crypto/x509: getting an error for simple go program with for loop in MAC OSX 10.13.13 Mar 16, 2018
@ianlancetaylor ianlancetaylor added this to the Go1.11 milestone Mar 16, 2018
@ianlancetaylor
Copy link
Contributor

@ianlancetaylor ianlancetaylor commented Mar 16, 2018

Thanks. This is happening because you are running quite an old version of GCC. I'll send a fix.

@gopherbot
Copy link

@gopherbot gopherbot commented Mar 16, 2018

Change https://golang.org/cl/101215 mentions this issue: crypto/x509: don't require C99 mode in Darwin cgo code

@odeke-em odeke-em changed the title crypto/x509: getting an error for simple go program with for loop in MAC OSX 10.13.13 crypto/x509: cgo errors on for loop initial declarations with gcc pre-C99 Mar 16, 2018
@avinashrd
Copy link
Author

@avinashrd avinashrd commented Mar 17, 2018

@ianlancetaylor

Thanks for the reply.
If I update my GCC using brew, will that fix the issue?

I didn't understand the comment by @gopherbot .

@FiloSottile
Copy link
Member

@FiloSottile FiloSottile commented Mar 17, 2018

@avinashrd Yes, if you install a more recent version of GCC (for example brew install gcc which will currently install 7.3) and set it as your CC/CXX environment variables, it should fix your issue.

@gopherbot was just reporting that we are working on a fix in Go, but that will not be available until Go 1.11, and it might not be enough to make GCC 4.9 work anyway.

@gopherbot gopherbot closed this in 718d6c5 Mar 17, 2018
@avinashrd
Copy link
Author

@avinashrd avinashrd commented Mar 18, 2018

I updated to 7.3 as suggested and ran the same program. I am getting this error now

crypto/x509

In file included from /System/Library/Frameworks/Security.framework/Headers/AuthSession.h:32:0,
from /System/Library/Frameworks/Security.framework/Headers/Security.h:43,
from /usr/local/Cellar/go/1.10/libexec/src/crypto/x509/root_cgo_darwin.go:17:
/System/Library/Frameworks/Security.framework/Headers/Authorization.h:193:7: error: variably modified 'bytes' at file scope
char bytes[kAuthorizationExternalFormLength];
^~~~~

Go Env :

GOARCH="amd64"
GOBIN="/Users/xxx/Downloads/projects/golang/bin"
GOCACHE="/Users/xxx/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/xxxx/Downloads/projects/golang"
GORACE=""
GOROOT="/usr/local/opt/go/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/opt/go/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="/usr/local/Cellar/gcc/7.3.0_1/bin/gcc-7"
CXX="/usr/local/Cellar/gcc/7.3.0_1/bin/g++-7"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/var/folders/w8/y97pxwvj35xcsw9vmh2s3gzr0000gn/T/go-build575805343=/tmp/go-build -gno-record-gcc-switches -fno-common"

@golang golang locked and limited conversation to collaborators Mar 18, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants
You can’t perform that action at this time.