kelseyhightower / confd

Manage local application configuration files using templates and data from etcd or consul
MIT License
8.35k stars 1.41k forks source link

arm64 confd not working #875

Open aarongo opened 1 year ago

aarongo commented 1 year ago

Illegal instruction (core dumped)

mich1990 commented 1 year ago

Bump, having the same problem on macbook m1

ddouglas commented 1 year ago

I don't use this library, I just stumbled on this from an article. I'm commenting on here though because I had this same error message on an M1 Mac this week at work. It has to do with C instruction that Rosetta doesn't support.

https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment#What-Cant-Be-Translated

i got it using a vendor's cli. They ended up already supporting this issue by shipping a build without avx2 and the cli worked fine inside of an amd docker image running on my M1.

andreireitz commented 1 year ago

+1

MPV commented 11 months ago

On Mac with M2 Apple Silicon, we're seeing (inside a docker container that has confd):

$ confd 
rosetta error: bss_size overflow
 Trace/breakpoint trap
manuelgcsousa commented 7 months ago

I also have this error: "Illegal instruction" any news?

klutchell commented 6 months ago

We resolved this by building from source, or unpacking and repacking with a newer version of upx.

argh commented 2 months ago

bump. The last release was 0.16.0, but it doesn't work on arm. If I build from latest sources ("make" just works), I get the new version that no longer talks to etcd v2 (for a variety of reasons, it isn't feasible to upgrade our etcd cluster right now). If I get the sources from the release tarball, I can't figure out how to build them; the golang:1.10.2-alpine baseimage in the source Dockerfile doesn't seem to work via "make" on the 0.16.0 codebase (complains about not being a git repository, and no amount of faking git init / upstream /etc seems to work). If I use a newer golang image, I get increasingly more confusing errors abound missing vendor modules, and my copypasta attempts to fix that fail.

I just want a 0.16.0-like version that I can build docker images for arm and x86 without the illegal instruction issue. Can anyone help me build in a golang docker base from the last released source tarball?

My next attempt will probably be to see if I can fork the latest but revert the etcd v2 client code back in. :-/

luojieio commented 2 months ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

klutchell commented 2 months ago

@argh I have an example of a working fork here, with repackaging done for arm64 and amd64.

The trick is the build scripts expect it to be a clone of the source, not a download of the source tarball, hence the complaint about the missing git repository.

Feel free to copy my repo, or even just docker pull ghcr.io/balena-io-modules/confd-releases:0.0.5-confd-v0-16-0 if you want to use it directly.

abtreece commented 1 month ago

I'm still maintaining a fork

luojieio commented 1 month ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。