Bug 26289 - build boost on ARM failed due to mpi & c99l
Summary: build boost on ARM failed due to mpi & c99l
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: boost (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Ivan A. Melnikov
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-13 16:04 MSK by Mike Lykov
Modified: 2011-10-20 09:52 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Lykov 2011-09-13 16:04:11 MSK
Собирал я недавно boost-1.45 на ARM по необходимости, считаю что стоит сделать изменения в текущем пакете в sisyphus следующие для собираемости (сейчас 1.42 в sisyphusARM)

1. конструкция с (pre) такая не работает (как мне пояснили):

%if_with mpi
BuildRequires(pre): %mpiimpl-devel
%endif

так как (pre) раскрываются раньше, чем появляется возможность распарсить if_with. Поэтому зависимость есть всегда, в т.ч. и на ARM, где нет openmpi-devel в репозитории. Поэтому сборка обламывается.
Решил, удалив все упоминания mpi из спека (все %if_with .. %endif и между ними)

2. при сборке вылезает такое сообщение:
libs/math/config/has_long_double_support.cpp:9:2: error: #error "long double support is not supported by Boost.Math on this Plaform: the long double version of the TR1 library will not be built."
...failed gcc.compile.c++ bin.v2/libs/math/config/gcc-4.5.1/debug/has_long_double_support.o...
...failed updating 1 target...
    - ../config//has_long_double_support builds : no

из-за чего потом может возникнуть такое:
RPM build errors:
    File not found by glob: /usr/src/tmp/boost1_45_0-buildroot/usr/lib/*_math_c99l*.so.*

и сборка обламывается.
решил, удалив все упоминания о c99l и tr1l из спека ;)

Соотв, предложение состоит в том, чтобы придумать более корректный обьезд этих моментов вместо "удалил все.. напрочь".
Comment 1 Ivan A. Melnikov 2011-09-14 10:27:27 MSK
Я готов сделать/принять такие изменения. Попробуйте, для начала, вместо удаления завернуть проблемные строки в %ifnarch %arm, добиться тем самым собираемости и и приложить сюда патч на спек или ссылку на git.

А про BuildRequires(pre) действительно не подумал...
Comment 2 Ivan A. Melnikov 2011-10-20 09:52:40 MSK
((In reply to comment #0)
> 1. конструкция с (pre) такая не работает (как мне пояснили):
> 
> %if_with mpi
> BuildRequires(pre): %mpiimpl-devel
> %endif

Удалил (pre), сборку на x86{,_64} это не сломало.

[...]


> 2. при сборке вылезает такое сообщение:
[...]
> и сборка обламывается.
> решил, удалив все упоминания о c99l и tr1l из спека ;)

Завернул в %ifwith long_double, отключеное на %arm. Должно помочь.

> Соотв, предложение состоит в том, чтобы придумать более корректный обьезд этих
> моментов вместо "удалил все.. напрочь".

See 1:1.47.0-alt2. Правда, собираемость, собственно, на arm не проверял.

В любом случае, спасибо.