Bug 41172 - binutils-source: ошибка при сборке с glibc 2.34
Summary: binutils-source: ошибка при сборке с glibc 2.34
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: binutils-source (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 minor
Assignee: Gleb F-Malinovskiy
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-19 19:47 MSK by Alexey Sheplyakov
Modified: 2021-10-20 13:01 MSK (History)
2 users (show)

See Also:


Attachments
Полный лог сборки (39.10 KB, application/gzip)
2021-10-19 19:47 MSK, Alexey Sheplyakov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Sheplyakov 2021-10-19 19:47:59 MSK
Created attachment 9849 [details]
Полный лог сборки

Действия:

sudo apt-get install binutils-source
SRC=`find /usr/src -type f -name 'binutils-*.tar'`
mkdir -p src/binutils
tar -x --strip-components=1 -f $SRC -C src/binutils
mkdir -p build/obj_binutils
cd build/obj_binutils
../../src/binutils/configure --target=aarch64-linux-gnu --prefix= --with-sysroot=/aarch64-linux-gnu/libc --disable-multilib
make -j`nproc` VERBOSE=1

Ожидаемый результат: собираются as, ar, nm, и вот это всё.

Наблюдаемый результат: ошибка

  CC     targ-map.o
yes
checking for string.h...   CC     sim-arange.o
In file included from /usr/include/signal.h:328,
                 from ../../gnulib/import/signal.h:52,
                 from targ-map.c:7:
targ-map.c:412:17: error: initializer element is not constant
  412 |   { "SIGSTKSZ", SIGSTKSZ, TARGET_SIGSTKSZ },
      |                 ^~~~~~~~
targ-map.c:412:17: note: (near initialization for ‘cb_init_signal_map[18].host_val’)
make[4]: *** [Makefile:522: targ-map.o] Error 1
make[4]: *** Waiting for unfinished jobs....
Comment 2 Gleb F-Malinovskiy 2021-10-19 20:08:00 MSK
А вы разве gdb собираете?
Если вам не нужен gdb, то и sim не надо собирать.

См. http://git.altlinux.org/gears/b/binutils.git?p=binutils.git;a=blob;f=alt/binutils.spec;h=af4187efb13dcf4c89947034bf7db4e5999901fe;hb=HEAD#l79

Мы хотим, чтобы каталоги gdb, gdbserver, gdbsupport и sim вообще не попадали в binutils-source?  Можно попробовать освоить новую директиву exclude: в gear-rules.
Comment 3 Alexey Sheplyakov 2021-10-19 21:25:19 MSK
(In reply to Gleb F-Malinovskiy from comment #2)
> А вы разве gdb собираете?

И gdb тоже.

> Если вам не нужен gdb, то и sim не надо собирать.


> 
> См.
> http://git.altlinux.org/gears/b/binutils.git?p=binutils.git;a=blob;f=alt/
> binutils.spec;h=af4187efb13dcf4c89947034bf7db4e5999901fe;hb=HEAD#l79
> 
> Мы хотим, чтобы каталоги gdb, gdbserver, gdbsupport и sim вообще не попадали
> в binutils-source?

Я - нет. Я хочу собрать multitarget gdb.
Comment 4 Alexey Sheplyakov 2021-10-19 21:26:56 MSK
Можно явно перечислить, что я хочу собрать:

make -j`nproc` all-bfd all-binutils all-gas all-gold all-gprof all-ld all-lto-plugin all-libelf

Но тогда придётся отслеживать появление новых (и удаление старых) целей.
Это совсем занудно, хотелось бы, чтобы make -j`nproc` "просто работал".

А для multitarget gdb всё равно нужно собирать sim.
Comment 5 Alexey Sheplyakov 2021-10-19 23:44:59 MSK
Применил патч https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=39d53d04357606a15efd400147fa7369d71baf2c

#287637 FAILED #1 [test-only] sisyphus binutils.git=2.37-alt3

Упали тесты. Без патча падают точно так же:

#287640 FAILED #1 [test-only] sisyphus binutils.git=2.37-alt2
Comment 6 Alexey Sheplyakov 2021-10-19 23:51:42 MSK
(In reply to Alexey Sheplyakov from comment #5)
> Применил патч
> https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;
> h=39d53d04357606a15efd400147fa7369d71baf2c
> 
> #287637 FAILED #1 [test-only] sisyphus binutils.git=2.37-alt3
> 
> Упали тесты. Без патча падают точно так же:
> 
> #287640 FAILED #1 [test-only] sisyphus binutils.git=2.37-alt2

Это похоже на https://sourceware.org/bugzilla/show_bug.cgi?id=28158
Comment 7 Repository Robot 2021-10-20 10:50:07 MSK
binutils-1:2.37-alt3 -> sisyphus:

 Wed Oct 20 2021 Gleb F-Malinovskiy <glebfm@altlinux> 1:2.37-alt3
 - Fixed FTBFS with glibc 2.34 (ALT#41173).
 - glibc-source: excluded source files related to gdb (ALT#41172).
Comment 8 Gleb F-Malinovskiy 2021-10-20 13:01:15 MSK
(In reply to Alexey Sheplyakov from comment #3)
> И gdb тоже.
Это плохая идея потому что binutils и gdb имеют совершенно разные циклы разработки.  Какая-то вермия gdb конечно есть в git-овом бранче binutils-2_37-branch, но никаких исправлений для gdb в этот бранч не бекпортируется.

See also: https://sourceware.org/pipermail/gdb/2014-August/044487.html

(In reply to Alexey Sheplyakov from comment #4)
> Можно явно перечислить, что я хочу собрать:
> 
> make -j`nproc` all-bfd all-binutils all-gas all-gold all-gprof all-ld
> all-lto-plugin all-libelf
Это странный подход, самое простое было бы удалить каталоги связанные с gdb и собирать так же, как вы собирали раньше.

(In reply to Alexey Sheplyakov from comment #5)
> Упали тесты. Без патча падают точно так же:
> #287640 FAILED #1 [test-only] sisyphus binutils.git=2.37-alt2
Угу, тестовая пересборка тоже показывала это, но срочности исправления никакой не было.

(In reply to Alexey Sheplyakov from comment #6)
> Это похоже на https://sourceware.org/bugzilla/show_bug.cgi?id=28158
Нет, дело было в наших патчах на тесты.