Bug 5791

Summary: rpm macros for CXXABI
Product: Sisyphus Reporter: Sergey V Turchin <zerg>
Component: libstdc++4.1-develAssignee: Dmitry V. Levin <ldv>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: glebfm
Version: unstable   
Hardware: all   
OS: Linux   

Description Sergey V Turchin 2004-12-28 19:58:32 MSK
Позарез надо rpm макрос для определения CXXABI, т.к. временный workaround для 
Qt3 уже не подойдет для Qt4 из-за приближающейся возможности сменя ABI у 
libstdc++
Comment 1 Dmitry V. Levin 2004-12-28 20:24:15 MSK
Что за макрос нужен?
Comment 2 Sergey V Turchin 2004-12-28 21:51:28 MSK
Чтобы при сборке с libstdc++ (любой) возвращал либо пусто либо версию ABI 
Конкретно для текущей Qt3 c libstdc++3.3 нужно получить откуда то строку 
"CXXABI_1.2" 
 
Только, вот непонятно как отследить, если Qt начнет цепляться к 
CXXABI_1.2.1 :-( 
 
Comment 3 Dmitry V. Levin 2004-12-28 21:58:47 MSK
Почему именно эту строку, а не какую-нибудь другую?
В чём суть того ABI change, которого ты опасаешься?
Comment 4 Sergey V Turchin 2004-12-29 13:38:04 MSK
Когда qt пересобрана с новым ABI. а kdelibs ещё нет, то пакеты встанут, но 
работать не будут. 
Comment 5 Sergey V Turchin 2004-12-29 13:38:55 MSK
Все-таки, наверное проще вручную старым способом делать. 
Comment 6 Dmitry V. Levin 2004-12-29 14:17:08 MSK
Что за новый ABI?
Comment 7 Sergey V Turchin 2004-12-29 14:23:00 MSK
(In reply to comment #6) 
> Что за новый ABI? 
х.з. 1.2.2 например 
Все-таки перестал я видеть смысл в таком макросе, т.к. до сборки библиотеки 
всё, что нужно не вычислить, а после уже поздно :-( 
В смысле, не вычислить, какие ABI qt зацепит. 
 
Comment 8 Dmitry V. Levin 2004-12-29 16:10:54 MSK
Ага, понятно: libstdc++.so.6
Но я всё равно не понимаю, что за макрос тебе нужен.
Comment 9 Sergey V Turchin 2004-12-29 17:24:39 MSK
(In reply to comment #8) 
> Но я всё равно не понимаю, что за макрос тебе нужен. 
Чтобы более красивые и правильные символы экспортить, чем 
rpm -q --provides libqt3| grep CXX 
 
Если бы только один ABI был, а так их теоретически плавающее число может 
цепляться, так что проще вручную будет наверное. 
 
Comment 10 Dmitry V. Levin 2005-01-14 13:08:57 MSK
Короче говоря, макрос пока не нужен.
Comment 11 Sergey V Turchin 2005-12-08 17:49:21 MSK
gcc-4 уже близко 
нужен макрос, который выводит список CXXABI_* для текущей библиотеки libstdc++ 
Comment 12 Sergey V Turchin 2005-12-08 17:57:22 MSK
Хотя, возможно, нужно макрос бы для вывода списка CXXABI, которые зацепила 
конкретная библиотека/программа 
Comment 13 Dmitry V. Levin 2008-10-18 16:03:10 MSD
(In reply to comment #12)
> Хотя, возможно, нужно макрос бы для вывода списка CXXABI, которые зацепила 
> конкретная библиотека/программа 

$ objdump -p /usr/lib64/libstdc++.so.6 |sed -n '/^Version definitions:$/,/^$/p'
Version definitions:
1 0x01 0x025f4d66 libstdc++.so.6
2 0x00 0x08922974 GLIBCXX_3.4
3 0x00 0x02297f81 GLIBCXX_3.4.1
        GLIBCXX_3.4 
4 0x00 0x02297f82 GLIBCXX_3.4.2
        GLIBCXX_3.4.1 
5 0x00 0x02297f83 GLIBCXX_3.4.3
        GLIBCXX_3.4.2 
6 0x00 0x02297f84 GLIBCXX_3.4.4
        GLIBCXX_3.4.3 
7 0x00 0x02297f85 GLIBCXX_3.4.5
        GLIBCXX_3.4.4 
8 0x00 0x02297f86 GLIBCXX_3.4.6
        GLIBCXX_3.4.5 
9 0x00 0x02297f87 GLIBCXX_3.4.7
        GLIBCXX_3.4.6 
10 0x00 0x02297f88 GLIBCXX_3.4.8
        GLIBCXX_3.4.7 
11 0x00 0x02297f89 GLIBCXX_3.4.9
        GLIBCXX_3.4.8 
12 0x00 0x0297f860 GLIBCXX_3.4.10
        GLIBCXX_3.4.9 
13 0x00 0x056bafd3 CXXABI_1.3
14 0x00 0x0bafd171 CXXABI_1.3.1
        CXXABI_1.3 
15 0x00 0x0bafd172 CXXABI_1.3.2
        CXXABI_1.3.1 

Какой тебе нужен макрос?
Comment 14 Sergey V Turchin 2008-10-20 14:05:37 MSD
Да я уже и сам не знаю :-(