[Docker-maint] Bug#807455: golang-src: includes race detector runtime files not built from source in the source package

Michael Hudson-Doyle michael.hudson at canonical.com
Tue Mar 22 07:45:51 UTC 2016


Dmitry Vyukov ("Mr. Race Detector") said this:

----------------------------------------------------------------
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.
----------------------------------------------------------------

So um. We could build the race detector from llvm-snapshot packaging
maybe? Or just packaging another copy of the source...

Cheers,
mwh

On 22 March 2016 at 15:00, Michael Hudson-Doyle
<michael.hudson at canonical.com> wrote:
> On 3 February 2016 at 21:04, Michael Hudson-Doyle
> <michael.hudson at canonical.com> wrote:
>> On 3 February 2016 at 19:08, Tianon Gravi <tianon at debian.org> wrote:
>>> On 8 December 2015 at 18:24, Michael Hudson-Doyle
>>> <michael.hudson at canonical.com> wrote:
>>>> The files installed as /usr/share/go/src/runtime/race/*.syso are not built
>>>> during package build, but rather come directly from the Go source distribution.
>>>> To ensure that they are built from what they claim to be, in Ubuntu we do not
>>>> distribute these files in the golang-src package but rather build them in a
>>>> separate golang-race-detector-runtime package which golang-go Recommends:. It
>>>> would be nice if Debian could steal this work :-)
>>>
>>> I'm definitely keen on this one!
>>
>> Yay.
>>
>>> I think my issue with making it happen (last I looked into it) was
>>> that the files in question needed to come from a separate source (LLVM
>>> was it? [1]), and the exact versioning necessary was a little strange,
>>> and it was sources that already exist in the Debian archive for
>>> another package so I wasn't really clear on whether that's kosher or
>>> whether we should be talking to the existing package maintainer to
>>> keep things sane.  Am I remembering this correctly?
>>
>> Yes, your memory is pretty accurate. The source in question is the
>> "compiler-rt" runtime libraries: http://compiler-rt.llvm.org/. The
>> compiler-rt source is copied into the gcc and llvm trees -- although
>> on checking, the copy in the gcc source lacks the go integration bits.
>> The one in llvm-toolchain appears to have everything (in fact it's a
>> multi orig source package, and one of the orig tarballs is the
>> compiler-rt stuff), so the golang-race-detector-runtime could be built
>> from the llvm-toolchain source package. The only question is around
>> versioning then -- I don't have any intuition as to how much
>> difference there is between the revisions go builds they're objects
>> from and the revision for the compiler-rt that's part of the current
>> llvm package at all. I've just wussed out of thinking about that so
>> far. I guess I could ask upstream...
>
> I've finally gotten around to asking on golang-dev:
> https://groups.google.com/d/msg/golang-dev/7tmyNA9Dx6s/j_j3b7SKBQAJ
>
> Cheers,
> mwh




More information about the Docker-maint mailing list