From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.2.3 Date: Tue, 25 Mar 2008 22:30:18 +0300 (MSK) From: panov@dec1.sinp.msu.ru To: community@lists.altlinux.org Message-ID: User-Agent: Alpine 1.00 (DEB 882 2007-12-20) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-2083191807-1624187696-1206473418=:18904" Subject: [Comm] =?koi8-r?b?4+Xy7s/X08vB0SDH0sHGycvBIFJPT1QsIERlc2t0b3Ag?= =?koi8-r?b?NC4wIMkg3MvTy9XS08nRINcgVWJ1bnR1IDcuMTA=?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.10b3 Precedence: list Reply-To: ALT Linux Community general discussions List-Id: ALT Linux Community general discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Mar 2008 19:30:20 -0000 Archived-At: List-Archive: List-Post: This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---2083191807-1624187696-1206473418=:18904 Content-Type: TEXT/PLAIN; format=flowed; charset=KOI8-R Content-Transfer-Encoding: 8BIT Здравствуйте всем! Я много лет пользовался Альтлинуксом вместе с пакетом научной ЦЕРНовской графики ROOT (http://root.cern.ch), но начиная с Desktop 4.0 пакет ROOT перестал компилиться. Я сначала думал, что дело в версии компилятора (т.е. gcc-4.1), так как официально ROOT поддерживает только до gcc-3.4. Но потом в сети нашел откомпилированную gcc-4.1 версию (ftp://root.cern.ch/root/root_v5.12.00.linux-gcc-4.1.tar.gz). Дальше я установил у себя линукс Ubuntu-7.10, где тоже основной компилятор gcc-4.1, и проверил сам - ROOT компилится с gcc-4.1 без проблем! Значит, проблема в реализации компилятора Альтлинукса. Я уж подумал было, буду работать в Ubuntu. Но там оказалась очень кривая русификация; emacs, без которого жить не могу, тоже совсем кривой. Надо разбираться с Альтлинуксом, иначе жизни нет. Вот что происходит при компиляции ROOT'a в Desktop 4.0 (это для версии ROOT 5.18). Первая ошибка такая: cint/src/g__cfunc.c:50: ошибка: expected declaration specifiers or '...' before numeric constant cint/src/g__cfunc.c:50: ошибка: expected ')' before '!=' token cint/src/g__cfunc.c:50: ошибка: expected ')' before '?' token Соответствющий фрагмент кода из файла g__cfunc.c такой: 48 #if defined(G__ANSI) || defined(G__ANSIHEADER) 49 int memcmp(const void *region1,const void *region2,size_t count); 50 void* memcpy(void *region1,const void *region2,size_t n); 51 #elif defined(_AIX) Здесь все ясно. В gcc-4.1 Альтлинукса определен лишний макрос 'memcpy', который пытается раскрыться где не надо. Вставляю перед этим фрагментом строчку: #undef memcpy // ERROR CORRECTION и компиляция продолжается дальше. До следующего сообщения об ошибке: g++ -m32 -O2 -o bin/cint cint/main/cppmain.o \ -Llib -lCint -lm -ldl -rdynamic lib/libCint.so: undefined reference to `dlsym' lib/libCint.so: undefined reference to `dlerror' lib/libCint.so: undefined reference to `dlopen' lib/libCint.so: undefined reference to `dlclose' collect2: выполнение ld завершилось с кодом возврата 1 Это уже хуже. Не извелекаются функции из библиотеки libltdl, хотя сама библиотека присутствует в /usr/lib (файлы libltdl.a, libltdl.so, libltdl.so.3, libltdl.so.3.1.4) Дело точно не в том, что библиотека не находится. Я прогнал такой тестовый пример с командной строкой g++ -m32 -O2 -rdynamic -lltdl Test.c: // Test.c #include int main() { dlopen("Test", 0); dlerror(); return 0; } и получил сообщения об ошибках: In function `main': Test.c:(.text+0x25): undefined reference to `dlopen' Test.c:(.text+0x2a): undefined reference to `dlerror' Т.е. функции библиотеки не грузятся, хотя библиотека есть. Почему? Я бы снова установил Altlinux Compact 3.0, где все отлично компилится, но не устанвливается он на мой ноутбук! Что делать? Заранее благодарен, Александр. ---2083191807-1624187696-1206473418=:18904--