LINUX.ORG.RU

зависает gcc ! :)))


0

0

при компилировании либы зависает gcc. причём доходит практически до конца исходника, выдаёт пару законных варнингов по коду ("warning: unused parameter ...") и потом замолкает ! Что за чудеса ?

Остальные либы (аналогичные по структуре) компилируются на ура !

GCC:
gcc -v
Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/specs
Configured with: ../configure --prefix=/usr --libdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --enable-long-long --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++,ada,f77,objc,java,pascal --host=i586-mandrake-linux-gnu --with-system-zlib
Thread model: posix
gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)

OC:
Mandrake 10.0.

anonymous

Re: зависает gcc ! :)))

Спорим на ящик пива что этот же исходник у меня не зависнет ???

anonymous ()
Ответ на: Re: зависает gcc ! :))) от anonymous

Re: зависает gcc ! :)))

у меня в std::map<std::string, RGBA> добавляется куча значений (порядка 600):

...
named["violet"] = RGBA(238,130,238,255);
named["wheat"] = RGBA(245,222,179,255);
named["wheat1"] = RGBA(255,231,186,255);
named["wheat2"] = RGBA(238,216,174,255);
named["wheat3"] = RGBA(205,186,150,255);
named["wheat4"] = RGBA(139,126,102,255);
named["white"] = RGBA(255,255,255,255);
named["white"] = RGBA(245,245,245,255);
named["yellow"] = RGBA(255,255,0,255);
named["yellow"] = RGBA(154,205,50,255);
named["yellow1"] = RGBA(255,255,0,255);
named["yellow2"] = RGBA(238,238,0,255);
named["yellow3"] = RGBA(205,205,0,255);
named["yellow4"] = RGBA(139,139,0,255);
...

Если понизить их количество до 20-30, то всё нормально компилируется. Если оставить по-прежнему 600, gcc не доходит до линковки, и стоит на месте минут 5, потом я его прибиваю. top показывет cc1plus = 90%
проца.

>>Poprobui ponizit' uroven' optimizatsii do -O1

никак не помогло.

Вот строки компиляции:

if /bin/sh ../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DSTDC_HEADERS=1 -DHAVE__BOOL=1 -DHAVE_STDBOOL_H=1 -DHAVE_STDLIB_H=1 -DHAVE_REALLOC=1 -DLSTAT_FOLLOWS_SLASHED_SYMLINK=1 -I. -I.. -I../include -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O1 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -MT fmt_codec_xpm.lo -MD -MP -MF ".deps/fmt_codec_xpm.Tpo" -c -o fmt_codec_xpm.lo fmt_codec_xpm.cpp; \
then mv -f ".deps/fmt_codec_xpm.Tpo" ".deps/fmt_codec_xpm.Plo"; else rm -f ".deps/fmt_codec_xpm.Tpo"; exit 1; fi
fmt_codec_xpm.cpp: In member function `virtual int fmt_codec::fmt_writeimage(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, RGBA*, int, int, const fmt_writeoptions&)':
fmt_codec_xpm.cpp:424: warning: unused parameter `std::string file'
fmt_codec_xpm.cpp:424: warning: unused parameter `RGBA*image'
fmt_codec_xpm.cpp:424: warning: unused parameter `int w'
fmt_codec_xpm.cpp:424: warning: unused parameter `int h'
[ тут молчание ...]

anonymous ()

Re: зависает gcc ! :)))

У меня в Suse 9.2 была похожая проблема:

Код, где используется libstdc++ (а конкретно std::fstream) убивал компилятор: по странным стечениям обстоятельств компилятор падал в segfault и переставал работать напрочь. Помогала только перезагрузка (видимо библиотеки в памяти висели или хз что).

Вылечил я эту беду так: снёс Suse и поставил gentoo (точнее очень раннюю fantoo и стал ее первым в истории тестером). Сейчас все работает отлично и я очень рад.

Esh ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.