Я пытаюсь собрать GCC6.3.0 на Ubuntu20.04 и не могу понять / исправить
Я загрузил tar-файл (пробовал с нескольких зеркал, всегда одна и та же ошибка), распаковал его, в этом незащищенном каталоге запустил
./contrib/download_prerequisites
, он загружает и создает необходимые ярлыки. Затем я выхожу из этого каталога, создаю новый каталог «gccbuild», в нем запускаю
$PWD/../gcc-6.3.0/configure --prefix=$HOME/GCC-6.3.0 --enable-languages=c,c++,fortran,go
. Я могу добавить полный вывод, если требуется, много «нет», но я не думаю, что это проблема. Последние строки вывода:
checking where to find the target windmc... host tool
checking whether to enable maintainer-specific portions of Makefiles... no
configure: creating ./config.status
config.status: creating Makefile
Затем я запускаю make, и следующие несколько последних строк вывода:
/home/m/GCC-6.3.0/x86_64-pc-linux-gnu/include -isystem /home/m/GCC-6.3.0/x86_64-pc-linux-gnu/sys-include -g -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -mlong-double-80 -DUSE_ELF_SYMVER -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fpic -mlong-double-80 -DUSE_ELF_SYMVER -I. -I. -I../.././gcc -I/home/m/gccbuild/../gcc-6.3.0/libgcc -I/home/m/gccbuild/../gcc-6.3.0/libgcc/. -I/home/m/gccbuild/../gcc-6.3.0/libgcc/../gcc -I/home/m/gccbuild/../gcc-6.3.0/libgcc/../include -I/home/m/gccbuild/../gcc-6.3.0/libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS -DUSE_TLS -o _fixunssfsi.o -MT _fixunssfsi.o -MD -MP -MF _fixunssfsi.dep -DL_fixunssfsi -c /home/m/gccbuild/../gcc-6.3.0/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS
make[5]: Leaving directory '/home/m/gccbuild/x86_64-pc-linux-gnu/32/libgcc'
make[4]: *** [Makefile:1161: multi-do] Error 1
make[4]: Leaving directory '/home/m/gccbuild/x86_64-pc-linux-gnu/libgcc'
make[3]: *** [Makefile:120: all-multi] Error 2
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/home/m/gccbuild/x86_64-pc-linux-gnu/libgcc'
make[2]: *** [Makefile:20436: all-stage1-target-libgcc] Error 2
make[2]: Leaving directory '/home/m/gccbuild'
make[1]: *** [Makefile:25715: stage1-bubble] Error 2
Мы будем очень признательны за любые выводы!
РЕДАКТИРОВАТЬ
Я пропустил часть фактической ошибки (спасибо Стефану Рингу из списка рассылки gcc-help):
In file included from ../../../../gcc-6.3.0/libgcc/unwind-dw2.c:401:0:
./md-unwind-support.h: In function 'x86_fallback_frame_state':
./md-unwind-support.h:141:18: error: field 'uc' has incomplete type
struct ucontext uc;
^~
В вашей команде "find" в пункте 1 отсутствует часть действия :) (поэтому она использует действие по умолчанию -print
). Добавьте действие для сжатия найденных файлов, например:
find / var / wbp / v3-iaasstage / dataArea -name "generic_log_ *" -type f -mtime +547 -exec gzip {} \;
This будет только сжатие файлов, не перечисляя их. Если вы хотите как перечислить файлы, так и сжать их, вы можете объединить оба действия следующим образом:
find / var / wbp / v3-iaasstage / dataArea -name "generic_log_ *" -type f -mtime +547 -print - exec gzip {} \;
был нарушен из-за изменения в glibc, когда glibc стал строже.
Вы можете исправить это, заменив "struct ucontext" на "ucontext_t" в соответствующие файлы. "
Итак, как отмечено в этот ответ на переполнение стека , я исправил его, заменив ucontext
на ucontext_t
в строках 61 и 141 файла ] builddir / libgcc / config / i386 / linux_unwind.h
.