morgholm Opublikowano 17 Sierpnia 2004 Zgłoś Opublikowano 17 Sierpnia 2004 Po dosc dlugiej przerwie pojawiam sie ponownie, i od razu z dziwnym problemem: Mianowicie kompiluje sobie engine Grystal Space 0.96r003, i segfaultuje mi na kilku plikach, m.in. na tym: plugins/engine/3d/light.cpp: In constructor'csLightingProcessInfo::csLightingProcessInfo(csLight*,bool)':plugins/engine/3d/light.cpp:614:internal error:Segmentation fault Pogrzebalem w kodzie, wydaje sie byc w porzadku (nie jestem specem od C++), wiez wzialem sie za flagi kompilatora. Make domyslnie kompiluje mi CS z flaga -O3. Skompilowalem ten plik "recznie" z flaga -O2, i poszlo bez problemow. Problem polega na tym, ze w /etc/profile mam wpisy: CFLAGS="-O2 -march=k6 -mcpu=k6 -mmmx -m3dnow -fomit-frame-pointer -ffast-math -pipe -s"CXXFLAGS="-O2 -march=k6 -mcpu=k6 -mmmx -m3dnow -fomit-frame-pointer -ffast-math -pipe -s"export CFLAGS CXXFLAGS Pomimo tego wpisu, make i tak "wpycha" tam swoje -O3, a co gorsza architekture rozpoznaje jako i586 i tak ustawia flagi. Szukalem w plikach Makefile i Jamfile po odpaleniu ./configure, zeby to zmienic "recznie" ale nie znalazlem tam zadnych wpisow odnosnie flag kompilatora. Co do architeORT: ORT: ORT: ktury, to uname wywala i586 (mam standardowy kernel) i pewnie stad sie to bierze, ale w jakim pliku konfiguracyjnym mam wpisac flagi dla make zeby bralo je globalnie, skoro z /etc/profile nie chce? Dodam ze zmienne srodowiskowe mam ustawione poprawnie a system to Slackware 9.1. Dziwna sprawa :/ Z gory dziekuje za wskazowki Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
(D)jur(on) Opublikowano 17 Sierpnia 2004 Zgłoś Opublikowano 17 Sierpnia 2004 Co do architektury to sie nie dziwie z i586 - kumpel ma K6-2 400MHz i tez mu rozpoznaje jako i586 9najprawdopodobniej taka jestprawda). Co do flag to popatrz do jakiegos innego ./configure'a jak sie ustawia flagi i zastosuj je u siebie. MOze jakos da sie to wymusic. Nie wiem. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
cinek Opublikowano 17 Sierpnia 2004 Zgłoś Opublikowano 17 Sierpnia 2004 pusc ./configure normalnie a potem zabierz sie za edycje pliku config.mak Po wyedytowaniu CFLAGS.SYSTEM, CFLAGS.optimize powinno pojsc gladko. Pozdr. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
morgholm Opublikowano 17 Sierpnia 2004 Zgłoś Opublikowano 17 Sierpnia 2004 Hm..... Wszystko byloby ok ale ./configure nie tworzy pliku config.mak, tylko Jamconfig, Jamfile i Jamrules, z czego w Jamrules znalazlem linie: COMPILER.CFLAGS += "-O2 -march=k6 -mcpu=k6 -mmmx -m3dnow -fomit-frame-pointer -pipe";COMPILER.C++FLAGS += "-O2 -march=k6 -mcpu=k6 -mmmx -m3dnow -fomit-frame-pointer -pipe";COMPILER.CFLAGS += "-Wall";COMPILER.C++FLAGS.WARNING.NO_UNUSED ?= "-Wno-unused";COMPILER.C++FLAGS.WARNING.NO_UNINITIALIZED ?= "-Wno-uninitialized";COMPILER.CFLAGS += "-Wno-unknown-pragmas";COMPILER.C++FLAGS.EXCEPTIONS.ENABLE ?= "-fexceptions";COMPILER.C++FLAGS.EXCEPTIONS.DISABLE ?= "-fno-exceptions";COMPILER.C++FLAGS += "-fno-exceptions";COMPILER.CFLAGS += "-pipe";COMPILER.CFLAGS += "-march=i586";COMPILER.CFLAGS.optimize += "-O3";COMPILER.CFLAGS.optimize += "-fomit-frame-pointer";COMPILER.CFLAGS.optimize += "-ffast-math"; Czyli dosc pokazna mieszanke wlasnych ustawien i zmiennych srodowiskowych. Ciekawe ze architekture rozpoznaje jako i586 i march tak ustawia mimo ze ma podane ze ma brac k6 :/ .... No i optimize daje na -O3... W Makefile wpisalem: INC=-D__CRYSTAL_SPACE__ -fno-exceptions -fno-rtti -I. -I/opt/cs/include -mcpu=k6 -march=k6 -O2 -fomit-frame-pointer -ffast-math Tez niewiele to dalo bo podczas kompilacji bierze swoje flagi , ale skad to ja nie wiem - chyba z kosmosu :/ Fragment config.log: configure:1970: checking for suffix of executablesconfigure:1972: gcc -o conftest -O2 -march=k6 -mcpu=k6 -mmmx -m3dnow -fomit-frame-pointer -pipeTu wydaje sie byc wszystko ok, zmienne srodowiskowe dla cc rozpoznaje wlasciwie configure:5476: checking whether to use CPU-specific optimizations... minimumconfigure:5477: checking for code generation flags... -march=i586configure:5478: checking how to enable optimizations... -O3A tu wsadza swoje "3 grosze", przy podaniu minimalnej optymalizacji (przy maksymalnej dzieja sie jeszcze dziwniejsze rzeczy, np chce strippowac wszystkie liby i usuwa pthread :/ ) Jesli ktos wie gdzie jeszcze moga byc w Slackware 9.1 flagi, albo gdzie trzeba je wpisac, lub tez spotkal sie z podobnym problemem, to niech sie ze mna podzieli swoimi uwagami lub zalami Sadzilem ze wiem co nieco o linuxie a okazuje sie ze jestem debil kompletny :/ Pozdrawiam Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
cinek Opublikowano 17 Sierpnia 2004 Zgłoś Opublikowano 17 Sierpnia 2004 COMPILER.CFLAGS += "-O2 -march=k6 -mcpu=k6 -mmmx -m3dnow -fomit-frame-pointer -pipe";(...)COMPILER.CFLAGS += "-pipe";COMPILER.CFLAGS += "-march=i586"; dwie ostatnie do wywalenia? w sumie -pipe jest dublowane, -march tylko pieprzy ustawienia poprawne.. COMPILER.CFLAGS.optimize += "-O3";(...) zmienic na -O2?, ew. dopisac march, mcpu albo w ogole skopiowac zawartosc z COMPILER.CFLAGS? Czyli dosc pokazna mieszanke wlasnych ustawien i zmiennych srodowiskowych. Ciekawe ze architekture rozpoznaje jako i586 i march tak ustawia mimo ze ma podane ze ma brac k6 :/ .... No i optimize daje na -O3... ten configure robi sieczke dosyc malo strawna, kwiatki w stylku: configure:6015: checking how to enable optimizationsconfigure:6107: g++ -o conftest -O3 -O2 -march=k6 -mcpu=k6 -mmmx -m3dnow (...) nie znam sie, za duzo nie pomoge, ale mozna poprobowac ;) powodzenia i pozdr. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
morgholm Opublikowano 18 Sierpnia 2004 Zgłoś Opublikowano 18 Sierpnia 2004 Ufff.... Powielu kombinacja udalo mi sie wymusic stosowanie odpowiednich flag, ale zabawy z tym co nie miara. Zastanawiam sie nad jednym - Slackware nalezy do dystrybucji raczej przejrzystych jesli chodzi o konfiguracje, malo jest takich "kwiatkow" bo wszystko jest na wierzchu, system niczego nie ukrywa przed uzytkownikiem. Ciekawe jak by to wygladalo np na Mandrake, masakra... Szukalem w necie i znalazlem paczke z CS do slacka 9.1, ale kompilowana na procka i686, wiec raczej odpada ze wzgledu na wydajnosc. Zauwazyl ktos jakas wielka roznice w szybkosci dzialania jakiejs zasobozernej aplikacji (np mplayer albo blender) pomiedzy wersja kompilowana na wlasnym kompie pod wlasna arch, a wersja standardowa instalowana z paczki? Ja tak, i to kolosalna... Dzieki za pomoc Pozdrawiam Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...