On Fri, Sep 28, 2018 at 4:00 PM,  <amand...@cohesity.com> wrote:
> Actually, I now understand what you meant. And even that does not work:
>
> amandeep@s113ldom1:/opt/go_pkgs/src/github.com/golang/glog$ sudo
> GOPATH=/opt/go_pkgs CC='/home/amandeep/workspace/mygcc.sh' CGO_CFLAGS='-m64'
> CGO_LDFLAGS='-m64' GOARCH=sparc64 CGO_ENABLED=1 go install -x
> -gccgoflags=-m64
> WORK=/tmp/go-build445938530
> mkdir -p $WORK/b001/
> cd $WORK
> /usr/gnu/bin/gccgo -fgo-importcfg=/dev/null -c -x c - || true
> cd /opt/go_pkgs/src/github.com/golang/glog
> /usr/gnu/bin/gccgo -c -g -fdebug-prefix-map=$WORK=/tmp/go-build
> -gno-record-gcc-switches -fgo-pkgpath=github.com/golang/glog -o
> $WORK/b001/_go_.o -I $WORK/b001/_importcfgroot_ -m64 ./glog.go
> ./glog_file.go
> echo '  .section .go.buildid,"e"' >> $WORK/b001/_buildid.s
> echo '  .byte 0x79,0x71,0x58,0x37,0x74,0x64,0x76,0x6c' >>
> $WORK/b001/_buildid.s
> echo '  .byte 0x7a,0x59,0x53,0x39,0x41,0x6a,0x30,0x58' >>
> $WORK/b001/_buildid.s
> echo '  .byte 0x34,0x53,0x78,0x39,0x2f,0x79,0x71,0x58' >>
> $WORK/b001/_buildid.s
> echo '  .byte 0x37,0x74,0x64,0x76,0x6c,0x7a,0x59,0x53' >>
> $WORK/b001/_buildid.s
> echo '  .byte 0x39,0x41,0x6a,0x30,0x58,0x34,0x53,0x78' >>
> $WORK/b001/_buildid.s
> echo '  .byte 0x39' >> $WORK/b001/_buildid.s
> echo '' >> $WORK/b001/_buildid.s
> /usr/gnu/bin/gccgo -xassembler-with-cpp -I $WORK/b001/ -c -o
> $WORK/b001/_buildid.o -D GOOS_solaris -D GOARCH_sparc64 -D
> GOPKGPATH=github_com_golang_glog $WORK/b001/_buildid.s
> ar rcD $WORK/b001/_pkg_.a $WORK/b001/_go_.o $WORK/b001/_buildid.o
> /usr/gnu/libexec/gcc/sparc-sun-solaris2.11/8.2.1/buildid -w
> $WORK/b001/_pkg_.a # internal
> cp $WORK/b001/_pkg_.a
> /root/.cache/go-build/a4/a47820a6bcb6e72c26a3be36129e80b12a0f0193dd5959e2c7304a3b169d9af8-d
> # internal
> mkdir -p /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/
> cp $WORK/b001/_pkg_.a
> /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/libglog.a
> rm -r $WORK/b001/
> amandeep@s113ldom1:/opt/go_pkgs/src/github.com/golang/glog$ ls -al
> /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/libglog.a
> -rw-r--r-- 1 root root 611582 Sep 28 08:52
> /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/libglog.a
> amandeep@s113ldom1:/opt/go_pkgs/src/github.com/golang/glog$ file
> /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/libglog.a
> /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/libglog.a:
> current ar archive, 32-bit symbol table
>
> The CC flag is not even honoured it would seem as I do not see any
> invocation related to mygcc.sh. Please advice.

Do the same thing for gccgo and set the GCCGO environment variable to
that shell script.

I'm not sure what you mean by "a 32-bit archive".  Is that an archive
that contains 32-bit object files?  The same hack should fix that, I
hope.

Ian


> On Friday, September 28, 2018 at 3:23:43 PM UTC-7, aman...@cohesity.com
> wrote:
>>
>> hmm...filed a bug here: https://github.com/golang/go/issues/27929
>>
>> Could you explain the workaround for this again? I did not understand the
>> fallback option.
>>
>> Apart from that, I tried to run each command manually to force m64 option
>> whenever possible. I was able to get a 64 bit executable for _buildid.o but
>> even after that running ar rcD $WORK/b001/_pkg_.a $WORK/b001/_go_.o
>> $WORK/b001/_buildid.o produces a 32-bit archive. Also, running buildid gives
>> some error about 32 byte hash. Please see:
>>
>> amandeep@s113ldom1:~/workspace$
>> /usr/gnu/libexec/gcc/sparc-sun-solaris2.11/8.2.1/buildid -w
>> $WORK/b001/_pkg_.a
>> buildid: /tmp/go-build365019570/b001/_pkg_.a: cannot find 32-byte hash in
>> id yqX7tdvlzYS9Aj0X4Sx9/yqX7tdvlzYS9Aj0X4Sx9
>>
>> Let me know if any of this needs to be reported in the bug or if it
>> provides more clarity on my situation here.
>>
>> On Friday, September 28, 2018 at 1:02:06 PM UTC-7, Ian Lance Taylor wrote:
>>>
>>> On Fri, Sep 28, 2018 at 10:14 AM,  <aman...@cohesity.com> wrote:
>>> > nopes...doesn't work either. I tried both variations...with and without
>>> > GOARCH=sparc64 flag. Following is the output with sparc64 flag:
>>> >
>>> > amandeep@s113ldom1:/opt/go_pkgs/src/github.com/golang/glog$ sudo
>>> > GOPATH=/opt/go_pkgs  CC='gcc -m64' CGO_CFLAGS='-m64' CGO_LDFLAGS='-m64'
>>> > GOARCH=sparc64 CGO_ENABLED=1 go install -x -gccgoflags=-m64
>>> > WORK=/tmp/go-build365019570
>>> > mkdir -p $WORK/b001/
>>> > cd $WORK
>>> > /usr/gnu/bin/gccgo -fgo-importcfg=/dev/null -c -x c - || true
>>> > cd /opt/go_pkgs/src/github.com/golang/glog
>>> > /usr/gnu/bin/gccgo -c -g -fdebug-prefix-map=$WORK=/tmp/go-build
>>> > -gno-record-gcc-switches -fgo-pkgpath=github.com/golang/glog -o
>>> > $WORK/b001/_go_.o -I $WORK/b001/_importcfgroot_ -m64 ./glog.go
>>> > ./glog_file.go
>>> > echo '  .section .go.buildid,"e"' >> $WORK/b001/_buildid.s
>>> > echo '  .byte 0x79,0x71,0x58,0x37,0x74,0x64,0x76,0x6c' >>
>>> > $WORK/b001/_buildid.s
>>> > echo '  .byte 0x7a,0x59,0x53,0x39,0x41,0x6a,0x30,0x58' >>
>>> > $WORK/b001/_buildid.s
>>> > echo '  .byte 0x34,0x53,0x78,0x39,0x2f,0x79,0x71,0x58' >>
>>> > $WORK/b001/_buildid.s
>>> > echo '  .byte 0x37,0x74,0x64,0x76,0x6c,0x7a,0x59,0x53' >>
>>> > $WORK/b001/_buildid.s
>>> > echo '  .byte 0x39,0x41,0x6a,0x30,0x58,0x34,0x53,0x78' >>
>>> > $WORK/b001/_buildid.s
>>> > echo '  .byte 0x39' >> $WORK/b001/_buildid.s
>>> > echo '' >> $WORK/b001/_buildid.s
>>> > /usr/gnu/bin/gccgo -xassembler-with-cpp -I $WORK/b001/ -c -o
>>> > $WORK/b001/_buildid.o -D GOOS_solaris -D GOARCH_sparc64 -D
>>> > GOPKGPATH=github_com_golang_glog $WORK/b001/_buildid.s
>>> > ar rcD $WORK/b001/_pkg_.a $WORK/b001/_go_.o $WORK/b001/_buildid.o
>>> > /usr/gnu/libexec/gcc/sparc-sun-solaris2.11/8.2.1/buildid -w
>>> > $WORK/b001/_pkg_.a # internal
>>> > cp $WORK/b001/_pkg_.a
>>> >
>>> > /root/.cache/go-build/a4/a47820a6bcb6e72c26a3be36129e80b12a0f0193dd5959e2c7304a3b169d9af8-d
>>> > # internal
>>> > mkdir -p /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/
>>> > cp $WORK/b001/_pkg_.a
>>> > /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/libglog.a
>>> > rm -r $WORK/b001/
>>> > amandeep@s113ldom1:/opt/go_pkgs/src/github.com/golang/glog$ file
>>> > /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/libglog.a
>>> > /opt/go_pkgs/pkg/gccgo_solaris_sparc64/github.com/golang/libglog.a:
>>> > current ar archive, 32-bit symbol table
>>> >
>>> >
>>> > I think the problem is with the text in red. It gets the sparc64 flag,
>>> > but
>>> > the executable is still having 32-bit MSB relocatable SPARC
>>> > Let me know if you have any other suggestions.
>>>
>>> This sounds like a bug.  I encourage you to file it at
>>> https://golang.org/issue/new .
>>>
>>> There is always the fallback of using a shell script mygcc
>>>
>>> #!/bin/sh
>>> exec gcc -m64 $*
>>>
>>> and setting CC=/path/to/mygcc
>>>
>>> Ian
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

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

Reply via email to