LINUX.ORG.RU

Я бы посоветовал в сообщениях на английском постить и логи на английском, а не на русском.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Да, тупанул. Хотя тут один черт...

deterok ★★★★★
() автор топика
Ответ на: комментарий от deterok

Есть что по делу?

Было бы — сказал бы...

Но так как ты настаиваешь, я, не будучи знаком с Revel вообще, сейчас его собрал, запустил его, этот пример, и УМВР, можно отель бронировать.

Однако у меня go 1.1.2.

proud_anon ★★★★★
()
TRACE 2014/06/02 00:59:58 build.go:77: Exec: [/usr/bin/go build -ldflags -X github.com/revel/revel/samples/booking/app.APP_VERSION "" -tags gorp -o .../.local/lib/go/bin/booking github.com/revel/revel/samples/booking/app/tmp]
ERROR 2014/06/02 01:00:30 build.go:84: # github.com/revel/revel/samples/booking/app/tmp
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/go-link-fGMVn1/go.o: перемещение R_X86_64_32 для «main.runMode» не может использоваться при создании общего объекта; перекомпилируйте с -fPIC
/var/tmp/go-link-fGMVn1/go.o: error adding symbols: Некорректное значение
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
/usr/lib/go/pkg/tool/linux_amd64/6l: running gcc failed: unsuccessful exit status 0x100

Все понятно же.

bhfq ★★★★★
()

Похоже, в твоем дистрибутиве плохо собирают Go.

anonymous
()
2 августа 2014 г.
Ответ на: комментарий от nonammy

Нет, родной. Но смотрю на gccgo, т.к. там вроде без сильного колдунства можно библиотеки собирать.

deterok ★★★★★
() автор топика
Ответ на: комментарий от deterok

Во во, всё ясно тогда. Если верить интернетам, то вот:

The Go linker does not currently support building objects that may be linked into a PIE.

hardened Gentoo setup, where PIE/PIC are enabled by default
For those who are wondering, it is possible to work around this by disabling PIC when building.
For example:

go build -ldflags '-extldflags=-fno-PIC' 3.go

В общем, если не соврали, то костыльное решение проблемы Revel для Генты выглядит следующим образом: модифицировать свою копию файла $GOPATH/github.com/revel/revel/harness/build.go#L74:

"-ldflags", versionLinkerFlags, "'-extldflags=-fno-PIC'",
И перекомпилировать revel/cmd:
go build github.com/revel/cmd/revel
Проблема не связана с Revel, ссылки на issues go-проекта уже дали здесь: https://github.com/revel/revel/issues/631

nonammy
()
Ответ на: комментарий от nonammy

Но лучше что-то порешать со своей PIE/PIC enabled by default на уровне выше компиляции отдельной программы. Тем более, что выше не совсем точный код дал. Вот тут подробнее в каком виде компилятор ожидает параметры: https://code.google.com/p/go/issues/detail?id=6234

nonammy
()
11 сентября 2014 г.
Ответ на: комментарий от deterok

Нет, родной. Но смотрю на gccgo, т.к. там вроде без сильного колдунства можно библиотеки собирать.

Пользую gccgo, но кастомную сборку с gold линкером, ибо с ld итоговые приложения запускаются 1 раз из 3. Что-то со стеком, не вникал. Слава GNU в 2.22+ версии binutils уже встроен этот линкер. Но gccgo из коробки (ubuntu apt) его не использует. Go (в в случае ubuntu) тож придётся собирать самому - ибо пак gccgo-go требует gccgo - вобщем зависимости.

Инфо:

- gccgo (GCC) 4.10.0 20140719 (experimental)

- binutils 2.22

- go version devel +ef6b41b270d5 Tue Sep 09 17:41:48 2014 -0700 linux/amd64

Компилирую с флагами:

go build -compiler gccgo -gccgoflags "-march=native -O3 -pipe -fomit-frame-pointer -L/opt/gccgo/lib64 -Wl,-rpath,/opt/gccgo/lib64"

Какие то может лишние, да и -O3 на -O2 можно поменять, но -march даёт прирост. Такие дела.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.