musl-gcc go build возвращает скрытый символ » __TMC_КОНЕЦ__», который нельзя использовать при создании коллекции объектов круга2

# #go #gcc #cgo #musl

Вопрос:

Я пытаюсь построить проект с помощью musl

В Докерфайле у меня есть

 FROM golang:1.17  ......Some instructions  RUN :   amp;amp; wget -O /tmp/musl-1.1.19.tar.gz http://www.musl-libc.org/releases/musl-1.1.19.tar.gz   amp;amp; tar -xvf /tmp/musl-1.1.19.tar.gz -C /tmp   amp;amp; cd /tmp/musl-1.1.19   amp;amp; ./configure   amp;amp; make   amp;amp; make install   amp;amp; cd -   amp;amp; rm -rf /tmp/musl-1.1.19 /tmp/musl-1.1.19.tar.gz   ;  ......Some instructions  RUN :   amp;amp; CC=/usr/local/musl/bin/musl-gcc go build --ldflags '-s -w -linkmode external -extldflags "-static"'   amp;amp; mv my-awesome-project /usr/local/bin/my-awesome-project  

И я получил Ошибку : against hidden symbol `__TMC_END__' can not be used when making a PIE object collect2

Это также работает в голанге:изображение 1.9.

Также я попытался установить musl-инструменты с помощью apt-get install, тот же результат…

Я не понимаю, что я делаю не так и чего именно компилятор хочет от меня.

Комментарии:

1. Здесь потребуется некоторая информация о вашем источнике. Некоторые C-коды в вашем CGO ссылаются __TMC_END__ , что недопустимо при компиляции PIE (исполняемого файла, не зависящего от позиции). musl компилирует PIE по умолчанию, чего не делает libc.

2. нп, но какой из них? Проект-это точка входа для докера, которая позволяет передавать arg через двойной тире. Для запуска fpm в качестве примера также используются удаленные пакеты в качестве «github.com/robfig/cron» для крона и «github.com/miekg/dns» для разрешения через кэш dns