go race detector's dependence on specific versions of compiler-rt

197 views
Skip to first unread message

Michael Hudson-Doyle

unread,
Mar 21, 2016, 9:55:24 PM3/21/16
to golang-dev
Hi,

The golang source distribution contains binary objects not built from
any source in the distribution: race_linux_amd64.syso and friends.
This is a bit counter to how distributions like Ubuntu and Debian
expect things to work, so I've made a package for Ubuntu that builds
race_linux_amd64.syso from a snapshot of the compiler-rt source. When
I proposed this for Debian, I was asked if it was really necessary to
have yet another copy of the compiler-rt source in Debian (there are
already at least half a dozen: one each for each version of gcc and
llvm). It would be possible to build the syso from the version of
compiler-rt that comes with the latest version of llvm, but that does
mean that it's unlikely to be built with the same snapshot of the
compiler-rt source as that which comes with the source distribution.
The question is, after all that: how much would this matter?

As far as I can tell the latest release of llvm in debian is the 3.8
release, and the snapshot of compiler-rt is from trunk rev 257626
(although with several fixes applied) vs the version of the syso
shipped with Go 1.6, which is from trunk rev 252922.

Cheers,
mwh

Brad Fitzpatrick

unread,
Mar 21, 2016, 10:03:11 PM3/21/16
to Michael Hudson-Doyle, Dmitry Vyukov, golang-dev
Dmitry,

Thoughts?

From my memory, it seems like Go & the race detector are very interdependent, but maybe that's not true?



--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Dmitry Vyukov

unread,
Mar 22, 2016, 3:41:24 AM3/22/16
to Brad Fitzpatrick, Michael Hudson-Doyle, golang-dev
Hi,

The latest Go release _should_ work with llvm tip (where latest means
the latest in development, not the latest released). This is not
necessary true for the previous releases as interfaces may have
changed. There can also be temporal inconsistencies. Your best bet
would be the revision stored in src/runtime/race/README, as it is
versioned with Go source tree. Then you need some comprehensive
testing of race detector. Then the result should be usable.
Reply all
Reply to author
Forward
0 new messages