Olej писал(а):
Так что лучшее, что пока можно сделать
:
Код: Выделить всё
[olej@dell tasks]$ sudo dnf remove gcc-go
...
Удалено:
gcc-go.x86_64 5.3.1-6.fc23 libgo.x86_64 5.3.1-6.fc23 libgo-devel.x86_64 5.3.1-6.fc23
Выполнено!
И с этим тоже
удалось разобраться:
- это всё-таки баг сборки gcc-go в Fedora 23 ... или может и в других дистрибутивах, или вообще gcc-go
- gcc-go при установке, если ссылка /etc/alternatives/go
уже установлена в /usr/lib/golang/bin/go (т.е. golang уже установлен) не должен её переписывать, устанавливать в /usr/bin/go.gcc
- ... должен создавать ссылку только
если её нет
- ... а он это делает тупо в любом случае
- а golang при установке (после gcc-go) ссылку
не переписывает
- ну и то же самое с ссылкой /etc/alternatives/gofmt
Теперь это легко поправить, делаем (я показываю это на 32-бит Fedora 23 -
пути!):
Код: Выделить всё
[root@localhost alternatives]# cd /etc/alternatives
[root@localhost alternatives]# mv go go.gcc
[root@localhost alternatives]# mv gofmt gofmt.gcc
[root@localhost alternatives]# ln -s /usr/lib/golang/bin/go go
[root@localhost alternatives]# ln -s /usr/lib/golang/bin/gofmt gofmt
И теперь всё работает не мешая друг другу:
Код: Выделить всё
[olej@localhost GO]$ go build -compiler gc -o tiny.gc tiny.go
[olej@localhost GO]$ go build -compiler gccgo -o tiny.gcc tiny.go
# command-line-arguments
ar: `u' modifier ignored since `D' is the default (see `U')
[olej@localhost GO]$ ls -l tiny.*
-rwxr-xr-x. 1 olej olej 1905168 Jun 2 12:54 tiny.gc
-rwxr-xr-x. 1 olej olej 25528 Jun 2 12:55 tiny.gcc
-rw-r--r--. 1 olej olej 111 Jun 1 14:23 tiny.go
Код: Выделить всё
[olej@localhost GO]$ file tiny.*
tiny.gc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped
tiny.gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=ceea47622da1118f6a98e3febfc687fc80a0d9b2, not stripped
tiny.go: C source, UTF-8 Unicode text
[olej@localhost GO]$ ./tiny.gc
минимальное приложение
[olej@localhost GO]$ ./tiny.gcc
минимальное приложение