Кто-нибудь собирал gcc 8.2.0 на OpenBSD 6.3? - PullRequest
0 голосов
/ 29 августа 2018

При попытке собрать gcc 8.2.0 на OpenBSD 6.3 я получаю следующую ошибку:

/bin/sh ./libtool --tag=CC   --mode=compile /home/shane/gcc-8.2.0/host-i386-unknown-openbsd6.3/gcc/xgcc -B/home/shane/gcc-8.2.0/host-i386-unknown-openbsd6.3/gcc/ -B/opt/gcc-8.2.0/i386-unknown-openbsd6.3/bin/ -B/opt/gcc-8.2.0/i386-unknown-openbsd6.3/lib/ -isystem /opt/gcc-8.2.0/i386-unknown-openbsd6.3/include -isystem /opt/gcc-8.2.0/i386-unknown-openbsd6.3/sys-include    -DHAVE_CONFIG_H -I../.././libatomic/config/x86 -I../.././libatomic/config/posix -I../.././libatomic -I.    -march=i486 -mtune=i386 -fomit-frame-pointer -Wall -Werror   -pthread -g -O2 -MT fence.lo -MD -MP -MF .deps/fence.Tpo -c -o fence.lo ../.././libatomic/fence.c
libtool: compile:  /home/shane/gcc-8.2.0/host-i386-unknown-openbsd6.3/gcc/xgcc -B/home/shane/gcc-8.2.0/host-i386-unknown-openbsd6.3/gcc/ -B/opt/gcc-8.2.0/i386-unknown-openbsd6.3/bin/ -B/opt/gcc-8.2.0/i386-unknown-openbsd6.3/lib/ -isystem /opt/gcc-8.2.0/i386-unknown-openbsd6.3/include -isystem /opt/gcc-8.2.0/i386-unknown-openbsd6.3/sys-include -DHAVE_CONFIG_H -I../.././libatomic/config/x86 -I../.././libatomic/config/posix -I../.././libatomic -I. -march=i486 -mtune=i386 -fomit-frame-pointer -Wall -Werror -pthread -g -O2 -MT fence.lo -MD -MP -MF .deps/fence.Tpo -c ../.././libatomic/fence.c  -fPIC -DPIC -o .libs/fence.o
../.././libatomic/fence.c:26:10: fatal error: stdatomic.h: No such file or directory
 #include <stdatomic.h>
      ^~~~~~~~~~~~~
compilation terminated.
gmake[4]: *** [Makefile:491: fence.lo] Error 1
gmake[4]: Leaving directory '/home/shane/gcc-8.2.0/i386-unknown-openbsd6.3/libatomic'
gmake[3]: *** [Makefile:524: all-recursive] Error 1
gmake[3]: Leaving directory '/home/shane/gcc-8.2.0/i386-unknown openbsd6.3/libatomic'
gmake[2]: *** [Makefile:360: all] Error 2
gmake[2]: Leaving directory '/home/shane/gcc-8.2.0/i386-unknown-openbsd6.3/libatomic'
gmake[1]: *** [Makefile:21680: all-target-libatomic] Error 2
gmake[1]: Leaving directory '/home/shane/gcc-8.2.0'
gmake: *** [Makefile:943: all] Error 2

Мой процесс:

  • Установить OpenBSD (по умолчанию)
  • Запустить syspatch
  • Добавить несколько пакетов:

    # pkg_add wget
    # pkg_add gmp mpfr libmpc
    # pkg_add gmake
    
  • Получить источник:

    $ wget ftp://ftp.nluug.nl/mirror/languages/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz
    $ tar xzf gcc-8.2.0.tar.gz
    $ cd gcc-8.2.0
    
  • Сложение:

    $ ./configure --prefix=/opt/gcc-8.2.0 --with-gmp=/usr/local --enable-languages=c,c++
    $ gmake
    

Аналогичным образом происходит сбой с gcc 8.1.0.

Я также пытался использовать clang вместо gcc для сборки, например:

$ CC=cc CXX=c++ ./configure --prefix=/opt/gcc-8.2.0 --with-gmp=/usr/local --enable-languages=c,c++

Это не имело никакого значения, что имеет некоторый смысл, так как очевидно, что оно завершается с ошибкой на этапе 3 (gcc снова компилирует себя для окончательной проверки).

Досадно, что в архиве есть a stdatomic.h файл:

$ find gcc-8.2.0 -name stdatomic.h                             
gcc-8.2.0/gcc/ginclude/stdatomic.h

Так что я понятия не имею, что мне не хватает.

Кто-нибудь успешно это построил? Как?

...