[Comm] ЦЕРНовская графика ROOT, Desktop 4.0 и экскурсия в Ubuntu 7.10

Pavlov Konstantin =?iso-8859-1?q?thresh_=CE=C1_altlinux=2Eru?=
Вт Мар 25 22:34:02 MSK 2008


On Tue, Mar 25, 2008 at 10:30:18PM +0300, panov на dec1.sinp.msu.ru wrote:
> Здравствуйте всем!
> 
> Я много лет пользовался Альтлинуксом 
> вместе с пакетом
> научной ЦЕРНовской графики 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)

lib/libCint.so собралась неправильно -- нужно чтобы она была слинкована с
libdl.

Видимо в ее строчке линковки не хватает -ldl.

-- 
> Как можно определить использует ли провайдер transparent proxy или
> нет?
Очень просто.
Только нужно понимать, как работает transparent proxy...
		-- at in community@
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20080325/997f5e87/attachment-0002.bin>


Подробная информация о списке рассылки community