| Romik писал(а): |
| Всего лишь хотел отметить, что флаги -pg и -fomit-frame-pointer не совместимы. Правда в man gcc ничего подобного не нашел. |
Принято... А еще все тут отмечают, что * с *бзд плохо совместимы...
А что еще не совместимо... О! вандевайсы, сволочи.... с иаксом недавно только работать начали...
Если конкретнее, то с флагом -masm=intel не компилится channel.c
Остальное, что до него, пробегает спокойно.
| Код: |
| gcc -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -Iinclude -I../include -D_REENTRANT -D_GNU_SOURCE -O6 -DASTERISK_VERSION=\"1.0.6\" -DINSTALL_PREFIX=\"\" -DASTETCDIR=\"/etc/asterisk\" -DASTLIBDIR=\"/usr/lib/asterisk\" -DASTVARLIBDIR=\"/var/lib/asterisk\" -DASTVARRUNDIR=\"/var/run\" -DASTSPOOLDIR=\"/var/spool/asterisk\" -DASTLOGDIR=\"/var/log/asterisk\" -DASTCONFPATH=\"/etc/asterisk/asterisk.conf\" -DASTMODDIR=\"/usr/lib/asterisk/modules\" -DASTAGIDIR=\"/var/lib/asterisk/agi-bin\" -DDEBUG_THREADS -DDO_CRASH -DTRACE_FRAMES -include /usr/src/asterisk-1.0.6/include/asterisk/astmm.h -DBUSYDETECT_MARTIN -fomit-frame-pointer -march=pentium4 -mmmx -msse -msse2 -c -o *bla-bla-bla*.o *bla-bla-bla*.c |
Процессор Intel(R) Celeron(R) CPU 1.70GHz
Я добавил/изменил только:
-g
-DDEBUG_THREADS -DDO_CRASH -DTRACE_FRAMES -include /usr/src/asterisk-1.0.6/include/asterisk/astmm.h
K6OPT = -DK6OPT
march=pentium4 -mmmx -msse -msse2
причем изначально все эти опции в Makefile есть, кроме тех, что указаны в самой последней строке.
Так значит о ней самой последней: имейте ввиду, господа, что Makefile Asterisk 'a построен так, что по умолчанию Asterisk компилируется (точнее его код оптимизируется компилятором) для того типа процессора, о котором Ваша система сообщает по команде uname -m и без включения поддержки дополнительных наборов инструкций, что далеко не оптимально для современных компьютеров. Так, для моего Intel(R) Celeron(R) CPU 1.70GHz, который по сути из семейства Intel(R) Pentium(R) 4, по умолчанию все компилируется как для i686 (такой результат дает вышеуказанная команда) - что есть всего-навсего древнющий Intel(R) Pentium(R) Pro.
Включение поддержки наборов инструкций SSE, SSE2 и MMX - дело так-же весьма и весьма хорошее, особенно если вспомнить, что Asterisk во время работы занимается преимущественно обработкой мультимедийных данных (таких как видео и звук), для ускорения/улучшения обработки которых эти наборы инструкций и предназначены.
флаги
-DMAKE_VALGRIND_HAPPY
K6OPT = -DK6OPT
ни на код, ни на компиляцию не влияют..
* напоминаю, что это все для версии Asterisk 1.0.6
довольно ценная инфа
Продолжаю.
Исключительно ради собсвенного интереса/удовольствия прочтите:
/* If there's one thing you learn from this code, it is this...
Never, ever fly Air France. Their customer service is absolutely
the worst. I've never heard the words "That's not my problem" as
many times as I have from their staff -- It should, without doubt
be their corporate motto if it isn't already. Don't bother giving
them business because you're just a pain in their side and they
will be sure to let you know the first time you speak to them.
If you ever want to make me happy just tell me that you, too, will
never fly Air France again either (in spite of their excellent
cuisine). */
Оригинал находится в исходниках Asterisk 1.0.6 в файле /usr/src/asterisk-1.0.6/astman/astman.c начиная со строки 497.
И за что Mark Spencer их так невзлюбил..
некоторые о-о-ч-чень интересные не описанные в Makefile # ifndef'ы.
Как нибудь расскажу
| Код: |
| localtime.c: In function `ast_tzset': localtime.c:958: warning: passing arg 3 of `__ast_pthread_mutex_lock' discards qualifiers from pointer target type localtime.c:960: warning: passing arg 3 of `__ast_pthread_mutex_unlock' discards qualifiers from pointer target type |
, то выключите (закоментируйте) опцию '-DDEBUG_THREADS', иначе Asterisk на слабой машине будет выпадать в coredump от (вероятно) нехватки памяти, тут же "возрождаться", снова умирать и так далее, пока, простите, не засрет всю память десятками клонов mpg123, которые он оставляет после себя, не умея убирать их нормально. В конечном итоге система начнет убивать (out of memory...) вполне приличные приложения, вроде sshd? так, что вы вылетите из консоли и сможете подключиться только локально, и то с грехом пополам, так как вся консоль будет забита криками kernel'я
| Код: |
| Mar 18 23:07:15 cujo kernel: oom-killer: gfp_mask=0x1d2 Mar 18 23:07:58 cujo kernel: DMA per-cpu: Mar 18 23:07:58 cujo kernel: cpu 0 hot: low 2, high 6, batch 1 Mar 18 23:07:58 cujo kernel: cpu 0 cold: low 0, high 2, batch 1 Mar 18 23:07:58 cujo kernel: Normal per-cpu: Mar 18 23:07:58 cujo kernel: cpu 0 hot: low 18, high 54, batch 9 Mar 18 23:07:58 cujo kernel: cpu 0 cold: low 0, high 18, batch 9 Mar 18 23:07:58 cujo kernel: HighMem per-cpu: empty Mar 18 23:07:58 cujo kernel: Mar 18 23:07:58 cujo kernel: Free pages: 1716kB (0kB HighMem) Mar 18 23:07:58 cujo kernel: Active:17080 inactive:16146 dirty:0 writeback:0 unstable:0 free:429 slab:3096 mapped:4864 pageta$ Mar 18 23:07:58 cujo kernel: DMA free:760kB min:40kB low:80kB high:120kB active:5200kB inactive:4160kB present:16384kB Mar 18 23:07:58 cujo kernel: protections[]: 20 200 200 Mar 18 23:07:59 cujo kernel: Normal free:956kB min:360kB low:720kB high:1080kB active:63120kB inactive:60424kB present:147456$ Mar 18 23:07:59 cujo kernel: protections[]: 0 180 180 Mar 18 23:07:59 cujo kernel: HighMem free:0kB min:128kB low:256kB high:384kB active:0kB inactive:0kB present:0kB Mar 18 23:07:59 cujo kernel: protections[]: 0 0 0 Mar 18 23:07:59 cujo kernel: DMA: 0*4kB 9*8kB 3*16kB 0*32kB 0*64kB 1*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB Mar 18 23:07:59 cujo kernel: Normal: 121*4kB 17*8kB 1*16kB 0*32kB 1*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB =$ Mar 18 23:07:59 cujo kernel: HighMem: empty Mar 18 23:07:59 cujo kernel: Swap cache: add 111282, delete 111282, find 1430/1643, race 0+0 Mar 18 23:07:59 cujo kernel: Out of Memory: Killed process 18747 (sshd). |
Страшно, да?
Последний раз редактировалось: Romik (Ср Мар 23, 2005 20:14)
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19950 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19952 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19953 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19954 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19955 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19956 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19957 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19958 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19959 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19960 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19961 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19964 (asterisk).
Mar 23 14:46:09 ns2 kernel: Out of Memory: Killed process 19967 (asterisk).
Mar 23 14:46:12 ns2 kernel: Out of Memory: Killed process 19968 (asterisk).
Mar 23 14:46:12 ns2 kernel: Out of Memory: Killed process 19969 (asterisk).
Mar 23 14:46:13 ns2 kernel: Out of Memory: Killed process 19974 (asterisk).
Mar 23 14:46:13 ns2 kernel: Out of Memory: Killed process 19975 (asterisk).
Mar 23 14:46:14 ns2 kernel: Out of Memory: Killed process 19976 (asterisk).
Mar 23 14:46:14 ns2 kernel: Out of Memory: Killed process 19977 (asterisk).
Mar 23 14:46:14 ns2 kernel: Out of Memory: Killed process 19981 (asterisk).
Mar 23 14:46:14 ns2 kernel: Out of Memory: Killed process 19984 (asterisk).
Mar 23 14:46:15 ns2 kernel: Out of Memory: Killed process 19985 (asterisk).
Mar 23 14:46:15 ns2 kernel: Out of Memory: Killed process 19986 (asterisk).
Mar 23 14:46:16 ns2 kernel: Out of Memory: Killed process 19987 (asterisk).
Mar 23 14:46:16 ns2 kernel: Out of Memory: Killed process 19988 (asterisk).
Mar 23 14:46:16 ns2 kernel: Out of Memory: Killed process 22374 (asterisk).
Mar 23 14:46:16 ns2 kernel: Out of Memory: Killed process 15146 (asterisk).
Mar 23 14:46:17 ns2 kernel: Out of Memory: Killed process 15358 (asterisk).
Mar 23 14:46:17 ns2 kernel: Out of Memory: Killed process 15365 (asterisk).
Mar 23 14:46:17 ns2 kernel: Out of Memory: Killed process 15373 (asterisk).
Mar 23 14:46:32 ns2 kernel: Out of Memory: Killed process 755 (mysqld).
Mar 23 14:46:32 ns2 kernel: Out of Memory: Killed process 756 (mysqld).
Mar 23 14:46:32 ns2 kernel: Out of Memory: Killed process 757 (mysqld).
Mar 23 14:46:32 ns2 kernel: Out of Memory: Killed process 2576 (mysqld).
Mar 23 14:46:32 ns2 kernel: Out of Memory: Killed process 15378 (mysqld).
Mar 23 14:46:32 ns2 kernel: Out of Memory: Killed process 15379 (mysqld).
Mar 23 14:46:54 ns2 kernel: Out of Memory: Killed process 762 (named).
Mar 23 14:46:54 ns2 kernel: Out of Memory: Killed process 764 (named).
Mar 23 14:46:54 ns2 kernel: Out of Memory: Killed process 765 (named).
Mar 23 14:46:54 ns2 kernel: Out of Memory: Killed process 766 (named).
Mar 23 14:46:54 ns2 kernel: Out of Memory: Killed process 767 (named).
Mar 23 14:46:54 ns2 kernel: Out of Memory: Killed process 768 (named).
Mar 23 14:46:59 ns2 kernel: Out of Memory: Killed process 24448 (libhttpd.ep).
Ты, надеюсь не специально так сервер насиловал, да?
ктонить против?
| Код: |
| Jul 20 12:58:39 ns2 kernel: Out of Memory: Killed process 11833 (asterisk). Jul 20 12:58:40 ns2 kernel: Out of Memory: Killed process 25133 (asterisk). Jul 20 12:58:40 ns2 kernel: Out of Memory: Killed process 25375 (asterisk). Jul 20 12:58:40 ns2 kernel: Out of Memory: Killed process 26238 (asterisk). Jul 20 12:58:41 ns2 kernel: Out of Memory: Killed process 29122 (asterisk). Jul 20 12:58:41 ns2 kernel: Out of Memory: Killed process 11397 (libhttpd.ep). Jul 20 12:59:07 ns2 kernel: Out of Memory: Killed process 11387 (libhttpd.ep). Jul 20 12:59:45 ns2 kernel: Out of Memory: Killed process 11958 (libhttpd.ep). Jul 20 13:00:02 ns2 kernel: Out of Memory: Killed process 11410 (libhttpd.ep). |
помнится как прикольно было в самых ранних версиях астериска читать рекомендации периодечески рестартовать его...