[tor-bugs] #20023 [Applications/Tor Browser]: Upgrade Go to 1.7.1

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Oct 6 23:23:07 UTC 2016


#20023: Upgrade Go to 1.7.1
--------------------------------------+---------------------
 Reporter:  dcf                       |          Owner:  dcf
     Type:  task                      |         Status:  new
 Priority:  Medium                    |      Milestone:
Component:  Applications/Tor Browser  |        Version:
 Severity:  Normal                    |     Resolution:
 Keywords:  tbb-gitian                |  Actual Points:
Parent ID:                            |         Points:
 Reviewer:                            |        Sponsor:
--------------------------------------+---------------------

Comment (by dcf):

 This is going to be a little more work than I expected. Some cgo
 components have changed in 1.7 in ways that affect the build.

 The build error in comment:5 was caused by this:
 {{{
 # crypto/x509
 crypto/x509/root_cgo_darwin.go: In function 'FetchPEMRoots':
 crypto/x509/root_cgo_darwin.go:97: error: 'for' loop initial declaration
 used outside C99 mode
 crypto/x509/root_cgo_darwin.go:106: error: 'for' loop initial declaration
 used outside C99 mode
 }}}
 MacPorts has a ticket with the same error:
 https://trac.macports.org/ticket/52506
 I think it's caused by the old gcc we use in the mac descriptor.

 If I add `-std=gnu99` to CFLAGS, the build gets a little farther, but then
 fails at:
 {{{
 crypto/x509/root_cgo_darwin.go: In function 'FetchPEMRoots':
 crypto/x509/root_cgo_darwin.go:114: warning: implicit declaration of
 function 'SecCertificateCopyNormalizedSubjectContent'
 crypto/x509/root_cgo_darwin.go:114: warning: initialization makes pointer
 from integer without a cast
 crypto/x509/root_cgo_darwin.go:119: warning: implicit declaration of
 function 'SecCertificateCopyNormalizedIssuerContent'
 crypto/x509/root_cgo_darwin.go:119: warning: initialization makes pointer
 from integer without a cast
 ...
 Undefined symbols for architecture i386:
   "_SecCertificateCopyNormalizedSubjectContent", referenced from:
       _FetchPEMRoots in root_cgo_darwin.cgo2.o
   "_SecCertificateCopyNormalizedIssuerContent", referenced from:
       _FetchPEMRoots in root_cgo_darwin.cgo2.o
 ld: symbol(s) not found for architecture i386
 }}}
 MacPort has a ticket for this error too:
 https://trac.macports.org/ticket/52036

 Both of these errors are caused by the same piece of new C code in 1.7:
 https://golang.org/cl/20351

 The Apple docs say that
 [https://developer.apple.com/reference/security/1392318-seccertificatecopynormalizedissu
 SecCertificateCopyNormalizedIssuerContent] requires SDK 1.7 or later. My
 plan is to next try building with the 10.7 SDK rather than 10.6.

 Potentially related golang tickets:
   https://github.com/golang/go/issues/14514
   https://github.com/golang/go/issues/16473
   https://github.com/golang/go/issues/16508

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/20023#comment:6>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list