uber-archive / cherami-server

Distributed, scalable, durable, and highly available message queue system. This project is deprecated and not maintained.
https://eng.uber.com/cherami/
MIT License
1.42k stars 102 forks source link

Cannot build bins cockroachdb/c-jemalloc deprecated #350

Closed valdezm closed 6 years ago

valdezm commented 6 years ago

Apparently since go 1.9.4 + there are many problems with #cgo

output to make bins (same for make cherami-server) mark@DESKTOP-1NPUJN1:~/go_projects/src/github.com/uber/cherami-server$ make bins go build -i -tags=embed -o cherami-server cmd/standalone/main.go go build github.com/uber/cherami-server/vendor/github.com/cockroachdb/c-jemalloc: invalid flag in #cgo CFLAGS: -funroll-loops make: *** [cherami-server] Error 1

from: https://github.com/cockroachdb/c-jemalloc The repo is tagged as deprecated.

Using: go version go1.10.1 linux/amd64

go env: GOARCH="amd64" GOBIN="/home/mark/go_projects/bin" GOCACHE="/home/mark/.cache/go-build" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/home/mark/go_projects" GORACE="" GOROOT="/usr/local/go" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GCCGO="gccgo" CC="gcc" CXX="g++" CGO_ENABLED="1" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build812705251=/tmp/go-build -gno-record-gcc-switches"

valdezm commented 6 years ago

So rocksdb c- go libraries are no longer supported: https://github.com/cockroachdb/c-rocksdb/issues/45 due to too challenging of a build process..

So what does that mean for me that would like to checkout this project? Any alternatives here? Do I have to find an older version of Go in a environment that works? Or just abandon this altogether?

valdezm commented 6 years ago

I had to downgrade to go version 1.8: go version go1.8 linux/amd64

and remove the following line in order to get it to build, which I have and it is now running.. from jemalloc_internal.h in: 'vendor\github.com\cockroachdb\c-jemalloc\linux_includes\internal\include\jemalloc\internal'

removed:

ifdef JEMALLOC_C11ATOMICS

include

endif

Apparently GCC forgot this library, anyways didn't feel the need to investigate it much..

reference: https://stackoverflow.com/questions/20326604/stdatomic-h-in-gcc-4-8