Как правильно скомпилировать uClibc ++ с муслом? - PullRequest
0 голосов
/ 18 июня 2019

Мне нужно скомпилировать код на С ++ с помощью uClibc ++ и musl. Чтобы сделать это, сначала я должен скомпилировать uClibc ++ против musl. Но, пытаясь это сделать, я столкнулся с несколькими ошибками, такими как отсутствие __snprintf_chk и __cxa_thread_atexit_impl

Короче говоря: как вы думаете, сделать это правильно? Я уверена, что это связано с флагами g ++, но какие?

Это то, что я пробовал до сих пор (для mips):

  1. Я собрал мусл для MIPS
  2. Передал musl-gcc в CROSS_COMPILE параметр uClibc ++ make. Я также создаю musl-g ++ по тому же пути (который в основном аналогичен musl-gcc с тем же файлом .spec, но использует mips-linux-gnu-g ++, а не gcc) Мой .spec файл является автоматически сгенерированным musl, я не взял его.
  3. Это моя команда компиляции:

        make install CROSS_COMPILE=/path/to/my/musl/mips   CPU_CFLAGS=' -lsupc++ -lgcc -nostdlib -nostdinc -nostdinc++ -mmusl -I/path/to/musl/include -Os -fno-use-cxa-atexit -fno-use-stack-protector -D_FORTIFY_SOURC=0 -L/path/to/my/musl/lib -lc
    

Выход:

In function '__cxa_thread_atexit':
Undefiend reference to __cxa_thread_atexit_impl
In function 'd_append_chk':
Undefiend reference to __sprintf_chk
...