QNX.ORG.RU

Разработка => Языки и алгоритмы => Тема начата: bbceler от Мая 21, 2007, 04:45:01 am



Название: GCC 4.x в QNX
Отправлено: bbceler от Мая 21, 2007, 04:45:01 am
Olej на Харьковский губернский портале задал мне вопрос:
А расскажите подробнее - это не имеет прямого касательства к Ada - как вы устанавливаете/используете gcc 4.x в QNX?
 наряду-одноврменно с gcc 2.95.2 & 3.3.5 - которые там и так присутствуют? не мешают они друг другу?
Я думаю что это будет интересно многим и поэтому решил ответ поместит одновременно
на qnx.org.ru.
Я в QNX использую gcc 4.1.x & 4.2.x & 4.3.x одноврменно с gcc 2.95.2 & 3.3.5 и они не мешают друг другу.
Все эти компиляторы так как и практически другое программное обеспечение
я ставлю в /usr/local/bin, /usr/local/lib, ...
Каждая программа системы GCC имееть окончание с номером версии.
И так для GCC 4.2.0 имеем gcc4.2.0, cpp4.2.0, gfortran4.2.0, gnat4.2.0, ....
а для GCC 4.1.3 соотственно gcc4.1.3, cpp4.1.3, gfortran4.1.3, gnat4.1.3, ....
И эти все файли находяться в /usr/local/bin. Одновременно в том же каталоге находяться
символьные линки: gcc -> gcc4.2.0, cpp -> cpp4.2.0, gforttran -> gfortran4.2.0, gnat -> gnat4.2.0, .....
Естесьтвенно, что когда я хочу использовать версию 4.1.3 то меняю все линки в /usr/local/bin
и /usr/local/lib. Там тоже такойже механизм.
# ls -l /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/
total 56
drwxrwxr-x  7 root      root           4096 May 18 09:09 .
drwxrwxr-x  3 root      root           4096 Nov 28  2004 ..
drwxrwxr-x  6 root      root           4096 Sep 17  2006   3.4.6
drwxrwxr-x  6 root      root           4096 Feb 14 23:03   4.1.2
drwxrwxr-x  6 root      root           4096 May 13 13:07  4.1.3
drwxrwxr-x  7 root      root           4096 May 18 08:41  4.2.0
drwxrwxr-x  8 root      root           4096 Apr 17 00:35   4.3.0
#
# ls -l /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.2.0
total 28364
drwxrwxr-x  7 root      root           4096 May 18 08:41 .
drwxrwxr-x  7 root      root           4096 May 18 09:09 ..
drwxrwxr-x  2 root      root          66048 May 18 08:39 adainclude
drwxrwxr-x  2 root      root          36352 May 18 08:59 adalib
-rw-r--r--  1 root      root           2004 May 18 08:39 crtbegin.o
drwxrwxr-x  2 root      root           4096 May 18 08:39 finclude
drwxrwxr-x  4 root      root           4096 May 18 08:41 include
drwxrwxr-x  3 root      root           4096 May 18 08:39 install-tools
-rw-r--r--  1 root      root        2449310 May 18 08:39 libgcc.a
-rw-r--r--  1 root      root         475856 May 18 08:39 libgcov.a
-rw-r--r--  1 root      root        8568508 May 18 08:41 libgfortran.a
-rwxr-xr-x  1 root      root            798 May 18 08:40 libgfortran.la
lrwxrwxrwx  1 root      root             20 May 18 09:09 libgfortran.so -> libgfortran.so.2.0.0
lrwxrwxrwx  1 root      root             20 May 18 09:09 libgfortran.so.2 -> libgfortran.so.2.0.0
-rwxr-xr-x  1 root      root        1785476 May 18 08:40 libgfortran.so.2.0.0
-rw-r--r--  1 root      root          15134 May 18 08:40 libgfortranbegin.a
-rwxr-xr-x  1 root      root            741 May 18 08:40 libgfortranbegin.la
-rw-r--r--  1 root      root         555174 May 18 08:41 libobjc.a
-rwxr-xr-x  1 root      root            766 May 18 08:41 libobjc.la
lrwxrwxrwx  1 root      root             16 May 18 09:10 libobjc.so -> libobjc.so.2.0.0
lrwxrwxrwx  1 root      root             16 May 18 09:10 libobjc.so.2 -> libobjc.so.2.0.0
-rwxr-xr-x  1 root      root         406652 May 18 08:41 libobjc.so.2.0.0
-rw-r--r--  1 root      root          95510 May 18 08:40 libssp.a
-rwxr-xr-x  1 root      root            759 May 18 08:40 libssp.la
lrwxrwxrwx  1 root      root             15 May 18 09:09 libssp.so -> libssp.so.0.0.0
lrwxrwxrwx  1 root      root             15 May 18 09:09 libssp.so.0 -> libssp.so.0.0.0
-rwxr-xr-x  1 root      root          32669 May 18 08:40 libssp.so.0.0.0
-rw-r--r--  1 root      root           2462 May 18 08:40 libssp_nonshared.a
-rwxr-xr-x  1 root      root            741 May 18 08:40 libssp_nonshared.la
#
# ls -l libexec/gcc/i386-pc-nto-qnx6.3.0/4.2.0/
total 41507
drwxrwxr-x  3 root      root           4096 May 18 09:05 .
drwxrwxr-x  3 root      root           4096 May 18 08:35 ..
-rwxr-xr-x  1 root      root        4645032 May 18 09:05 cc1
-rwxr-xr-x  1 root      root        4699560 May 18 09:05 cc1obj
-rwxr-xr-x  1 root      root         109236 May 18 09:05 collect2
-rwxr-xr-x  1 root      root        4816540 May 18 09:05 f951
-rwxr-xr-x  1 root      root        6967308 May 18 09:05 gnat1
drwxrwxr-x  2 root      root           4096 May 18 08:35 install-tools
#
Чтобы быстро менять компилятор я создал для каждой версси каталог в котором собрал все линки
для /usr/local/bin и /usr/local/lib и просто копилирую.
К примеру для 4.2.0 имею каталог в /src:
# pwd
/src/gnat.4.2.0/usr/local
# ls -l
total 32
drwxrwxr-x  4 root      root           4096 May 15  2005 .
drwxrwxr-x  3 root      root           4096 Mar 06  2005 ..
drwxrwxr-x  2 root      root           4096 Apr 25 01:08 bin
drwxrwxr-x  2 root      root           4096 Apr 25 01:08 lib
# ls -l bin
total 37
drwxrwxr-x  2 root      root           4096 Apr 25 01:08 .
drwxrwxr-x  4 root      root           4096 May 15  2005 ..
lrwxrwxrwx  1 root      root              8 Nov 18  2006 cpp -> cpp4.2.0
lrwxrwxrwx  1 root      root              8 Nov 18  2006 gcc -> gcc4.2.0
lrwxrwxrwx  1 root      root             11 Nov 18  2006 gccbug -> gccbug4.2.0
lrwxrwxrwx  1 root      root              9 Nov 18  2006 gcov -> gcov4.2.0
lrwxrwxrwx  1 root      root             13 Apr 25 01:08 gfortran -> gfortran4.2.0
lrwxrwxrwx  1 root      root              9 Nov 18  2006 gnat -> gnat4.2.0
lrwxrwxrwx  1 root      root             13 Nov 18  2006 gnatbind -> gnatbind4.2.0
lrwxrwxrwx  1 root      root             11 Nov 18  2006 gnatbl -> gnatbl4.2.0
lrwxrwxrwx  1 root      root             13 Nov 18  2006 gnatchop -> gnatchop4.2.0
lrwxrwxrwx  1 root      root             14 Nov 18  2006 gnatclean -> gnatclean4.2.0
lrwxrwxrwx  1 root      root             13 Nov 18  2006 gnatfind -> gnatfind4.2.0
lrwxrwxrwx  1 root      root             11 Nov 18  2006 gnatkr -> gnatkr4.2.0
lrwxrwxrwx  1 root      root             13 Nov 18  2006 gnatlink -> gnatlink4.2.0
lrwxrwxrwx  1 root      root             11 Nov 18  2006 gnatls -> gnatls4.2.0
lrwxrwxrwx  1 root      root             13 Nov 18  2006 gnatmake -> gnatmake4.2.0
lrwxrwxrwx  1 root      root             12 Nov 18  2006 gnatmem -> gnatmem4.2.0
lrwxrwxrwx  1 root      root             13 Nov 18  2006 gnatname -> gnatname4.2.0
lrwxrwxrwx  1 root      root             13 Nov 18  2006 gnatprep -> gnatprep4.2.0
lrwxrwxrwx  1 root      root             13 Nov 18  2006 gnatxref -> gnatxref4.2.0
lrwxrwxrwx  1 root      root             12 Nov 18  2006 gprmake -> gprmake4.2.0
# ls -l lib
total 26
drwxrwxr-x  2 root      root           4096 Apr 25 01:08 .
drwxrwxr-x  4 root      root           4096 May 15  2005 ..
lrwxrwxrwx  1 root      root             47 Apr 25 01:08 libgfortran.so -> gcc/i386-pc-nto-qnx6.3.0/4.2.0/libgfortran.so.2
lrwxrwxrwx  1 root      root             51 Apr 25 01:08 libgfortran.so.2 -> gcc/i386-pc-nto-qnx6.3.0/4.2.0/libgfortran.so.2.0.0
lrwxrwxrwx  1 root      root             52 Nov 08  2006 libgmem.a -> gcc/i386-pc-nto-qnx6.3.0/4.2.0/adalib/libgmem4.2.0.a
lrwxrwxrwx  1 root      root             53 Nov 08  2006 libgnarl-4.2.so -> gcc/i386-pc-nto-qnx6.3.0/4.2.0/adalib/libgnarl-4.2.so
lrwxrwxrwx  1 root      root             48 Nov 08  2006 libgnarl.a -> gcc/i386-pc-nto-qnx6.3.0/4.2.0/adalib/libgnarl.a
lrwxrwxrwx  1 root      root             52 Nov 08  2006 libgnat-4.2.so -> gcc/i386-pc-nto-qnx6.3.0/4.2.0/adalib/libgnat-4.2.so
lrwxrwxrwx  1 root      root             47 Nov 08  2006 libgnat.a -> gcc/i386-pc-nto-qnx6.3.0/4.2.0/adalib/libgnat.a
lrwxrwxrwx  1 root      root             16 Nov 08  2006 libiberty.a -> libiberty4.2.0.a
lrwxrwxrwx  1 root      root             47 Apr 25 01:08 libobjc.so -> gcc/i386-pc-nto-qnx6.3.0/4.2.0/libobjc.so.2.0.0
lrwxrwxrwx  1 root      root             47 Apr 25 01:08 libobjc.so.2 -> gcc/i386-pc-nto-qnx6.3.0/4.2.0/libobjc.so.2.0.0
#
Соoтвественно для 4.1.3 имею каталог /src/gnat.4.1.3/usr/local и каталоги bin и lib в которых находяться
линки. Во всех компиляторах на http://www.ajam.org.pl/  находяться эти линки.
Если хотите использовать только одну версию компилятора тогда можно просто переписать содежимое
архва в соответсвующие каталоги:
/usr/local/bin
/usr/local/include
/usr/local/info
/usr/local/lib
/usr/local/libexec
/usr/local/man
/usr/local/share
Иначе стоить построит отделные каталоги.
Очень важно чтобы в PATH /usr/local/bin находилось перед /usr/qnx630/host/qnx6/x86/*
тогда gcc это тот каторый действительно находиться в /usr/local/*
У меня это выглядить так:
# echo $LD_LIBRARY_PATH
/proc/boot:/lib:/usr/lib:/lib/dll:/opt/lib:/usr/photon/lib:/usr/photon/dll:/usr/local/lib:/opt/X11R6/lib:
/usr/X11R6/lib:/opt/qt4/lib
# echo $PATH
/sbin:/usr/sbin:
/bin:/usr/bin:
/usr/photon/bin:
/usr/photon/appbuilder:/opt/X11R6/bin:/usr/X11R6/bin:
/usr/local/bin:
/opt/bin:/opt/sbin:
/usr/qnx630/host/qnx6/x86/usr/bin:
/usr/qnx630/host/qnx6/x86/usr/sbin:
/usr/qnx630/host/qnx6/x86/sbin:
/usr/qnx630/host/qnx6/x86/bin:
/usr/qnx630/host/qnx6/x86/usr/photon/appbuilder:
/opt/qt4/bin
Эсли всё таки возникнуть какие то вапросы то пожалста пишите.


Название: GCC 4.x в QNX
Отправлено: Ivan от Мая 21, 2007, 02:39:07 pm
Уважаемый Богдан.

Поясните пожалуйста поподробнее, а что в это случае происходит с libc? Ведь gcc будет пытаться собрать свою libc, и ничем добрым это не кончиться, так как gcc об особенностях native API QNX ничего не знает!? То есть надо заставить, чтобы вся подноготная бралась из libc.so.2? Как  Вы это обходите?


Название: GCC 4.x в QNX
Отправлено: mike от Мая 21, 2007, 02:50:08 pm
Ivan в составе gcc нет и никогда не было libc


Название: GCC 4.x в QNX
Отправлено: bbceler от Мая 21, 2007, 04:04:16 pm
Да это так и на самом деле происходит.Во время постройки создоёться библётека libgcc и libiberty
кроме конешно других библётек.
На счёт libc to gcc знает как найти libc.so.2 таким путём:
#undef LINK_SPEC
#define LINK_SPEC "%{h*} %{v:-V}
                   %{b}
         %{static:-dn -Bstatic}
                   %{shared:-G -dy -z text}
                   %{symbolic:-Bsymbolic -G -dy -z text}
                   %{G:-G}
                   %{YP,*}
                   %{!YP,*:%{p:-Y P,/usr/qnx630/target/qnx6/x86/lib}
                   %{!p:-Y P,/usr/qnx630/target/qnx6/x86/lib}}
                   -L /usr/qnx630/target/qnx6/x86/lib
                   -L /usr/qnx630/target/qnx6/x86/usr/lib
                   -L /usr/qnx630/target/qnx6/x86/opt/lib
                   %{Qy:} %{!Qn:-Qy}
                   -b elf32-i386 -m i386nto
                   %{!shared: --dynamic-linker /usr/lib/ldqnx.so.2}"
   
#undef LIB_SPEC
#define LIB_SPEC "
  %{!shared:%{!symbolic:-lc -dn -Bstatic -lc}}"
Но это записано в самом компиляторе и практически в явном виде
этого нет необходимости указывать.
На счёт вызовов native API QNX то я этого не проверял.
Я прежде всего использую Adu а там используються свои механизмы
задач и их взаимодейства основанные на POSIX.
Кроме того как известно можно писать программы в QNX так
как в LINUX или BSD. Это конешно особная тема.
Я надеусь что может кто то захочет проверить native API QNX
используя gcc4.20 или gcc4.1.3. gcc4.3.0 очень нестабилный.
Ivan может у тебя есть какие то примеры программ с native API QNX
то пришли мне их и я могу проверит это.


Название: GCC 4.x в QNX
Отправлено: AG от Мая 21, 2007, 05:29:01 pm
bbceler, как известно, gcc для QNX 6.3 поставляется с возможностью генерации кода для всех, поддерживаемых ОС, платформ. Вот и у меня созрел такой вопрос: может ли Ваш gcc 4.x создавать код для, скажем, ARM?
Еще вопрос: есть ли сборка для кросскомпиляции из под Win32 и др.


Название: GCC 4.x в QNX
Отправлено: olej от Мая 21, 2007, 06:28:35 pm
AG
как известно, gcc для QNX 6.3 поставляется с возможностью генерации кода для всех, поддерживаемых ОС, платформ. Вот и у меня созрел такой вопрос: может ли Ваш gcc 4.x создавать код для, скажем, ARM?


как я понимаю, многоплатформенность QNX обеспечивается не стараниями QSSL, а как раз теми платформами, под которые может компилировать gcc - это исходная установка проекта gcc; вот здесь свежее перечисление тех платформ, под которые работает gcc:
http://gcc.gnu.org/install/specific.html

AG
Еще вопрос: есть ли сборка для кросскомпиляции из под Win32 и др.


в QNX реализовано не так и много из платформ, поддерживаемых gcc, вот из 6.3.2 :


/usr/qnx630/target/qnx6 # ls -l
total 104
drwxrwxr-x 13 root      root           4096 Sep 15  2006 .
drwxrwxr-x  3 root      root           4096 Sep 15  2006 ..
drwxrwxr-x  7 root      root           4096 Sep 15  2006 armbe
drwxrwxr-x  7 root      root           4096 Sep 15  2006 armle
drwxrwxr-x  3 root      root           4096 Nov 01  2006 boot
drwxrwxr-x 14 root      root           4096 Sep 15  2006 etc
drwxrwxr-x  4 root      root           4096 Nov 01  2006 install
drwxrwxr-x  7 root      root           4096 Sep 15  2006 mipsbe
drwxrwxr-x  7 root      root           4096 Sep 15  2006 mipsle
drwxrwxr-x  7 root      root           4096 Sep 15  2006 ppcbe
drwxrwxr-x  7 root      root           4096 Sep 15  2006 shle
drwxrwxr-x  9 root      root           4096 Sep 15  2006 usr
drwxrwxr-x  8 root      root           4096 Sep 15  2006 x86


Между всеми из поддерживаемых платформ во все - может быть реализована кроссовая компиляция - ключ -b.
Но среди платформ в gcc нет Win32 ( ни "в", ни "из" ).
Для Win32 это нужно смотреть, наверное, что-то из портов MinGW для gcc, типа вот этого:
http://www.qnxclub.net/modules.php?name=Forums&file=viewtopic&t=363&highlight= mingw

А вот с версиями библиотек, особенно С++, на что здесь обратили внимание - может быть куда серьёзнее:
- например, в QNX 6.3.2 есть "родные" 2 версии gcc 2.95.3 и 3.5.5 - любую из них можно "заказать" для использования...
- но не для PhAB-приложений ... там сразу посыпятся неразрешённые ссылки: сами библиотеки PhAB, как я понимаю, скомпилированы на связи только 2.95.3.


Название: GCC 4.x в QNX
Отправлено: Ivan от Мая 21, 2007, 07:12:31 pm
mike

Ivan в составе gcc нет и никогда не было libc

Посыпаю голову пеплом: просто в Gentoo при пересборке gcc зацепило libc - вот в памяти и отложилось, что они рядом ходят. А на примере FreeBSD вижу - gcc42 пересобирает под себя stdc++ - и это, вроде, понятно.

2bbceler
Вопрос использования под QNX самопального компилятора для меня носит чисто факультативный характер - на мой вгляд, слишком велик риск. Но тема для меня интересная. Вам Богдан, большое спасибо за разъяснения. Что касаемо native API, то тут у меня есть вопросы, но пока слишком сыроваты, чтобы нагружать ими других.

А на словах, скажу следующее: на QNX6.2.1 я в проекте использовал gcc, при переходе на 6.3 выяснелось, что mmap стал себя вести по-другому ( мы с lestat это уже как-то обсуждали ), так вот это поведение отличалось при использовании qcc и gcc. От греха подальше во все свои makefile вбил qcc. Вот поэтому и появляются вопросы/сомнения. Это, кстати, к вопросу поддерживаемых платформ gcc и что из этого может qcc. Хотя в 6.2.1 qcc - это был скрипт, устанавливающий переменные окружения и вызывающий gcc. В 6.3 host/etc/qcc/gcc подрос и qcc - это уже не скрипт.

Богдан, а может Вы опциями configure для gcc42 поделитесь?


Название: GCC 4.x в QNX
Отправлено: bbceler от Мая 22, 2007, 03:27:20 pm
Ответ AG:
   может ли Ваш gcc 4.x создавать код для, скажем, ARM?
Я уже когдато отвечал на такой вопрос. У меня нет возможносьти проверит этого. Сам gcc 4.x собираю для Intel.
Думаю что не должно быт проблем. Эсли кто то хочеть попробовать то я могу помоч.
И другое:
     есть ли сборка для кросскомпиляции из под Win32 и др.
На сколько мне известно нет. Я сам лично работаю под QNX.
Win32 мне не интересует.
К сожалению я gcc 4.x в QNX занимаюсь один.
QSSL это конешно делаеть. Будет оффицяльный gcc4.x в QNX,
но я с ними не имею никокого контака. Я жду когда то им удасться чтобы проверить разницу.
Я занялся gcc в связи с адой. Тeпер удалось построит другие компиляторы для fortran и Objective-C.
Есть доступный Prolog и даже COBOL


Название: GCC 4.x в QNX
Отправлено: bbceler от Мая 22, 2007, 04:01:47 pm
Простите я провераю как можно влиять на вид сообшения.
[/b]Proba
[/i]ITAlic
[/u]Podkreślenie
TEST
можо удалить
bogdan


Название: GCC 4.x в QNX
Отправлено: bbceler от Мая 22, 2007, 04:03:29 pm
Как исбовиться от [/


Название: GCC 4.x в QNX
Отправлено: AG от Мая 22, 2007, 05:09:23 pm
bbceler
Я уже когдато отвечал на такой вопрос. У меня нет возможносьти проверит этого. Сам gcc 4.x собираю для Intel.
Думаю что не должно быт проблем. Эсли кто то хочеть попробовать то я могу помоч.

Было бы интересно глянуть на процесс сборки. Есть ли возможность собирать GCC сразу для нескольких целевых платформ? Кстати у QSSL есть пример такой сборки на примере старого компилятора GCC. Много ли исправлять пришлось чтоб GCC заработал на QNX6?
bbceler
На сколько мне известно нет.

Я имел в виду собирали ли Вы так же GCC для Win32 с возможностью генерации кода для QNX (intel/armle/etc...).
По ответу понятно что нет.

Спасибо.


Название: GCC 4.x в QNX
Отправлено: AG от Мая 22, 2007, 05:11:07 pm
bbceler
Простите я провераю как можно влиять на вид сообшения.
...
можо удалить
bogdan


Надо писать просто <i>italic</i> (угловые скобки заменить на квадратные) чтоб получить italic


Название: GCC 4.x в QNX
Отправлено: bbceler от Мая 23, 2007, 04:19:06 am
Ivan
          Вопрос использования под QNX самопального компилятора для меня носит чисто факультативный характер - на мой вгляд, слишком велик риск.
А так ради интереса использование Linux-а это большой риск или нет. Вед он вес построен с помощю gcc. Сам QNX тоже построен используя gcc. qcc практически вызываеть какой то gcc или 2.95.3 или 3.3.5.
Ты писал о проблеме с mmap, что поведение отличалось при использовании qcc и gcc. А вопрос по моему возникал из за этого, что в qcc зашыты параметры компилации - пути к библётекам, хедерам и другие. А само gcc имеет другие установки. Другой вопрос в том что наськолько я помню mmap имел ошибки и не очень уж отвечал стандарту POSIX.
На самом деле компилятор gcc это хотя очен сложный но просто тряньслятор с языка программирования на машинный язык. Вопрос операцённой системы как я это вижу не имеет практически значения. Другое дело платформа.
Единственный метод сравнит нативные QNX компиляторы а gcc 4.x которые я собираю то тестирование и эстественно работа с ними.
Я только что оконьчил построение gcc 4.2.0 release и сделал тестироване по скорости для разных компиляторов.
Это Dhrystone Benchmark, Version 2.1 (Language: C)
Iterations: 10 000 000
Excution results
A - -O0
B - -O3 -fomit-frame-pointer
C - -O2 -fomit-frame-pointer
.............A............B............C
==================================================
qcc          4.288743721  3.050733166  2.932751220
qcc -V3.3.5  3.895803850  2.838365663  2.638596233
gcc3.4.6     3.929198740  2.384835064  2.632797120
GPL-2007     4.536905747  2.402232402  2.665392132
gcc4.2.0 Rel 3.751425944  2.402432371  2.656993417
GPL-2007 основан на gcc 4.1.3 и в нем есть изменения введённые разработчиками ады.
На счёт того какие изменения я делаю в gcc во время сборки компилятора чтобы работал в QNX то правду говаря в самом gcc никаких. Изменяю немного скрипты чтобы не было проблем с построением shared library. Самое главное находиться в configure/i386. Но я точно это опишу в следуюший раз. Я хочу посмотрет ещё как выглядеть дело с другими платформи чтобы ответит AG.


Название: GCC 4.x в QNX
Отправлено: Ivan от Мая 23, 2007, 01:39:25 pm
bbceler
А вопрос по моему возникал из за этого, что в qcc зашыты параметры компилации - пути к библётекам, хедерам и другие. А само gcc имеет другие установки. Другой вопрос в том что наськолько я помню mmap имел ошибки и не очень уж отвечал стандарту POSIX.
Здесь я с тобой полностью согласен, qcc, скорее всего, не делает ничего такого особенного, что делает gcc ( ну разве что истечение лицензии проверяет 8o) ), и основая нагрузка на qcc - это правильно установить параметры компиляции и пути к библиотекам. Именно так я рассуждал в свое время. Сворганил простейший проект ( консольный типа "Hello word" и PhAB ), дал qcc ключ -v вся подноготная вылезла наружу. Потом это запихнул gcc3.3.2 ( кажется такая версия была в QNX 6.3.0 ) - результат отличался, т.е. абсолютной совместимости не было. К тому же я программирую на C++, а тут сразу полный набор: std++ от gcc, от Dinkumware с исключениями, без исключений, встраиваемая и т.п. Для данной версии/service pack разберешся, а QSSL в следующем SP чего-то улучшит-подвинет. Сложно получается, поэтому для боевых проектов я застолбил использование qcc. С другой стороны gcc развивается, идет работа над качеством оптимизации, в gcc-4.3 появятся первые реализации С++0x09, поэтому мне интересен твой опыт использования своего компилятора под QNX.

Приведенный тобой Benchmark весьма интересен и показывает, что 4.2 рулит - а это радует. Если бы еще найти или разработать самим Benchmark, по которому можно было бы проверить совместимость текущей платформенной реализации gcc c qcc. В этом случае можно было бы говорить о промышленном применении самосбоного компилятора.

bbceler
Самое главное находиться в configure/i386. Но я точно это опишу в следуюший раз. Я хочу посмотрет ещё как выглядеть дело с другими платформи чтобы ответит AG.

Ну какое-то понятие о настройке компилятора я получил по acats Summary. Но если от тебя будет более подробное описание, то я думаю, заинтерисованных заметно прибавится.


Название: GCC 4.x в QNX
Отправлено: bbceler от Мая 24, 2007, 04:36:12 pm
В самом начале хочу заметить что я не занимаюсь языком C++
В время сборки c++ получаюсь ошибки для разрешеня которых мне не хватаеть знаний. Я много работал в c++ но это было ещё в QNX 4.*. Так то что представляю касаеться языков:
c, ada, gfortran и objc.
Эсли бы удалось сделать c++ 4.* тогда можна бы заняться компилятором java и языка d.
То что тепер представляю это состаяние на сегодня.
С времён когда я начинал много изменилось и прежде всего ест значительно проще построит компилятор языка c под QNX.
Источники я беру по адресу:
ftp://gcc.gnu.org/pub/gcc/releases/
или
ftp://gcc.gnu.org/pub/gcc/snapshots/
можна использовать всё или если нас не интересует к примеру ada и java то нужны только gcc-core-* и тот язык который нас интересует.
Я всё делаю в каталоге /src
/src/gcc-4.2.0
И ёще одно сам компилятор написан в c и встаёт вопрос какой компилятор использовать ? Можно пробовать qcc но естественно 3.3.5. Я использую всегда предудушую скомпилированную gcc
Дело ещё в том что в принципе компиляцию надо делат используя bootstrap. Это ведёть к тому что процес проводиться три раза. Сначала стоиться xgcc - это новый компилятор который называеться xgcc чтобы отличить его от gcc который был использован.
И тот же xgcc используеться два раза для построения компилятора. И затем сравниваеться эти две постройки.
Эсли совподають тогда процесс идёт далше и строиться библётеки и другое.
В случае языка ada не можна использовать bootstrap.
Изменения:
1. на верхним уровне я делаю изменения в:
libtool.m4
*qnx* | *nto*)
  lt_cv_deplibs_check_method=pass_all
  ;;
# This must be Linux ELF.
linux-gnu*)
  lt_cv_deplibs_check_method=pass_all
  ;;
===========================
ltcf-cxx.sh
  nto-qnx*)
    ld_shlibs=yes
    ;;
  *)
    # FIXME: insert proper C++ library support
    ld_shlibs=no
    ;;
======================
ltconfig
*nto* | *qnx*)
  version_type=linux
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
  soname_spec='${libname}${release}.so$major'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=no
  hardcode_into_libs=yes
  dynamic_linker='ldqnx.so'
  ;;

*)
  dynamic_linker=no
  ;;
esac
====================================
ltmain.sh
        qnx)
     major=".$current"
     versuffix=".$current"
     ;;

   sunos)
     major=".$current"
     versuffix=".$current.$revision"
     ;;
............................
каталог libiberty
в getpagesize.c
#endif /* GNU_OUR_PAGESIZE */

/*
int
getpagesize (void)
{
  return (GNU_OUR_PAGESIZE);
}*/

#ifdef __QNXNTO__
int
getpagesize(void)
{
  return (int)sysconf(_SC_PAGESIZE);
}
#endif
===============================
И саме главное в
gcc/config/i386
надо поменять nto.h и t-nto
nto.h
.............................
/* Definitions for Intel 386 running QNX/Neutrino.
   Copyright (C) 2002, 2003 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING.  If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

#undef  DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 1

#undef TARGET_VERSION
#define TARGET_VERSION   fprintf (stderr, " (QNX/Neutrino/i386 ELF)"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);

#define HANDLE_PRAGMA_PACK_PUSH_POP 1

/* Allow stabs and dwarf, and make stabs the default for Neutrino */
#undef  PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG

#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n)
  (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])

/* When generating stabs debugging, use N_BINCL entries.  */
#define DBX_USE_BINCL

/* Make LBRAC and RBRAC addresses relative to the start of the
   function.  The native Solaris stabs debugging format works this
   way, gdb expects it, and it reduces the number of relocation
   entries.  */
#define DBX_BLOCKS_FUNCTION_RELATIVE 1

#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS()      
  do                  
    {                  
        builtin_define_std ("__X86__"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);      
        builtin_define_std ("__QNXNTO__"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);   
        builtin_define_std ("__QNX__"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);      
        builtin_define_std ("__ELF__"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);      
        builtin_define_std ("__LITTLEENDIAN__"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);
        builtin_assert ("system=qnx"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);      
        builtin_assert ("system=qnxnto"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);   
        builtin_assert ("system=nto"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);      
        builtin_assert ("system=unix"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);      
        builtin_assert ("system=posix"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);        
    }                  
  while (0)

#undef THREAD_MODEL_SPEC
#define THREAD_MODEL_SPEC "posix"

#ifdef CROSS_COMPILE
#define SYSROOT_SUFFIX_SPEC "x86"
#endif

#undef CPLUSPLUS_CPP_SPEC
#define CPLUSPLUS_CPP_SPEC
"-nostdinc -nostdinc++
 -isystem /usr/qnx630/target/qnx6/usr/include/c++/3.3.5
 %(cpp_cpu)
 %{posix:-D_POSIX_SOURCE}"
 
#undef CPP_SPEC
#define CPP_SPEC
"-idirafter /usr/qnx630/target/qnx6/usr/include
 -isystem /usr/qnx630/target/qnx6/usr/include
 %(cpp_cpu) %{posix:-D_POSIX_SOURCE}"

#undef STARTFILE_SPEC
#define STARTFILE_SPEC
"%{!shared:
  %{!symbolic:
    %{pg:/usr/qnx630/target/qnx6/x86/lib/mcrt1.o%s}
    %{!pg:%{p:/usr/qnx630/target/qnx6/x86/lib/mcrt1.o%s}
    %{!p:/usr/qnx630/target/qnx6/x86/lib/crt1.o%s}}}}
/usr/qnx630/target/qnx6/x86/lib/crti.o%s
%{fexceptions: /usr/qnx630/target/qnx6/x86/lib/crtbegin.o%s}
%{!fexceptions: /usr/qnx630/target/qnx6/x86/lib/crtbegin.o}"

#undef ENDFILE_SPEC
#define ENDFILE_SPEC
"%{fexceptions: /usr/qnx630/target/qnx6/x86/lib/crtend.o%s}
 %{!fexceptions: /usr/qnx630/target/qnx6/x86/lib/crtend.o}
/usr/qnx630/target/qnx6/x86/lib/crtn.o"

#undef LINK_SPEC
#define LINK_SPEC
  "%{h*} %{v:-V}
   %{b}  %{Wl,*:%*}
   %{static:-dn -Bstatic}
   %{shared:-G -dy -z text}
   %{symbolic:-Bsymbolic -G -dy -z text}
   %{G:-G}
   %{YP,*}
   %{!YP,*:%{p:-Y P,/usr/qnx630/target/qnx6/x86/lib}
   %{!p:-Y P,/usr/qnx630/target/qnx6/x86/lib}}
   -L /usr/qnx630/target/qnx6/x86/lib
   -L /usr/qnx630/target/qnx6/x86/usr/lib
   -L /usr/qnx630/target/qnx6/x86/opt/lib
   %{Qy:}
   %{!Qn:-Qy}
   -b elf32-i386 -m i386nto
   %{!shared: --dynamic-linker /usr/lib/ldqnx.so.2}"

#undef LIB_SPEC
#define LIB_SPEC "
  %{shared:-lc}
  %{!shared:%{!symbolic:-lc -dn -Bstatic -lc}}"

#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"

#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"

#undef WCHAR_TYPE
#define WCHAR_TYPE "unsigned int"

#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE BITS_PER_WORD

#define NO_IMPLICIT_EXTERN_C 1
=====================================
t-nto
...........................
T_CFLAGS = -D__QNXTARGET__
CRTSTUFF_T_CFLAGS = -fPIC -fno-omit-frame-pointer
TARGET_LIBGCC2_CFLAGS = -fPIC -fexceptions
FIXPROTO_DEFINES = -D__QNX__ -D__QNXNTO__ -D__X86__ -D__GNUC__ -D__LITTLEENDIAN__

EXTRA_PARTS = crtbegin.o
===================================
Компиляцию яведу используя сначала build-ntox86.nto
который вызываеть build-nto
build-ntox86.nto
.............................................
#!/bin/sh

target=ntox86 ./build-nto
=================================

build-nto
.............................................
#!/bin/sh

basedir=`pwd`

if [ -z "$target" ]; then
   echo "Don't run this script without setting target!"
   exit 1
fi

case "$target" in
   nto*)   dir=/usr/local ;;
   *)   dir=/opt/QNXsdk/host/qnx6/x86/usr ;;
esac

rm -rf nto/$target
mkdir -p nto/$target
cd nto/$target

#export CC="env QCC_CONF_PATH=$QCC_CONF_PATH QNX_TARGET=$QNX_TARGET QSSL_TARGET=$QNX_TARGET qcc -Vgcc_ntox86"
export ADAC=/usr/local/bin/gcc
#export CC="qcc -V3.3.1,gcc_ntox86"
CXX="qcc -V3.3.5,gcc_ntox86"
CC="gcc -v -save-temps"
CPP="gcc -E"
#export CFLAGS="-O2"
CFLAGS="-save-temps -g -O2"
LIBCFLAGS="-g -O2"
LIBCXXFLAGS="-g -O2 -fno-implicit-templates"
#export CC="qcc"
LDFLAGS="-Wl,-s"
if $basedir/configure
   --srcdir=$basedir
   --program-suffix=4.2.0
   --enable-version-specific-/">


Название: GCC 4.x в QNX
Отправлено: Ivan от Мая 24, 2007, 07:09:48 pm
Большое спасибо за предоставленный FAQ.

Буду на досуге разбираться и эксперементировать с g++. Осталось выделить время для досуга 8о).

Если будут результаты или вопросы, то сообщу в этом треде.


Название: GCC 4.x в QNX
Отправлено: bbceler от Мая 30, 2007, 03:16:34 pm
Я проверил можна сделать компилятор gcc 4.2.x используя qcc. Оказываеться что с помошу qcc 3.3.5 это возможно.
Я выложил на моём сайте файли которые надо использовать и эти которые надо заменить.   Compilation of the  gcc 4.2.x using qcc 3.3.5
Хватить взять только gcc-core-4.2-*
Может кто то захочет проверить ..........


Название: GCC 4.x в QNX
Отправлено: bbceler от Мая 30, 2007, 03:32:41 pm
На счёт построения gcc 4.2.x на другие платформы чем x86.
Это вазможно если использовать файли от gcc 2.95.3 которые доступны. Надо их только конешно посмотрет на счёт изменений для QNX 6.3.
Стоило бы посмотрет как это делают для BSD или LINUX.
Надо смотрет в gcc/config/arm и других каталогах.
Но для этого нада знать эти платформы.
Сам по себе процесс сборки простой нада только заменит
target=ntox86 ./build-nto
на target=arm ./build-arm
build-arm надо взять от gcc 2.95.3-qnx63


Название: GCC 4.x в QNX
Отправлено: bbceler от Июня 12, 2007, 02:21:18 am
На конец то мне удалось построить первый раз работающий компилятор c++ для QNX 6.3.0.
Это c++/g++ 4.1.3.
# gcc --version
gcc (GCC) 4.1.3 20070604 (prerelease)
# gfortran --version
GNU Fortran (GCC) 4.1.3 20070604 (prerelease)
# g++ --version
g++ (GCC) 4.1.3 20070604 (prerelease)
library => libstdc++.so.6
# c++ --version
c++ (GCC) 4.1.3 20070604 (prerelease)
library => libstdc++.so.6
Вот так работаеть:
# cat pr1.cc
#include <iostream.h>
main( void )
{
   cout << "Hello .............." << endl;
}
# c++ -o pr1 pr1.cc
In file included from /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/include/c++/backward/iostream.h:31,
                 from pr1.cc:1:
/usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/include/c++/backward/backward_warning.h:32:2: warning:
#warning This file includes at least one deprecated or antiquated header. Please consider using one of the
32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for
the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>.
To disable this warning use -Wno-deprecated.
# ./pr1
Hello ..............
Press any key to continue...
================================
И что то сложнее:
# cat pr3.cc
#include <iostream>
#include <streambuf>
#include <locale>
#include <cstdio>

class outbuf : public std::streambuf
{
  protected:
    /* central output function
     * - print characters in uppercase mode
     */
    virtual int_type overflow (int_type c) {
        if (c != EOF) {
            // convert lowercase to uppercase
            c = std::toupper(static_cast<char>(c),getloc());

            // and write the character to the standard output
            if (putchar(c) == EOF) {
                return EOF;
            }
        }
        return c;
    }
};

int main()
{
    // create special output buffer
    outbuf ob;
    // initialize output stream with that output buffer
    std:stream out(&ob);

    out << "31 hexadecimal: "
        << std::hex << 31 << std::endl;
    return 0;
}

# g++ -v -opr3 pr3.cc
Using built-in specs.
Target: i386-pc-nto-qnx6.3.0
Configured with: /src/gcc-4.1-20070604/configure --srcdir=/src/gcc-4.1-20070604 --program-suffix=4.1.3
--enable-version-specific-runtime-libs --enable-languages=c,c++,ada,fortran,objc,obj-c++
--enable-threads=posix --enable-shared --enable-libssp --enable-libada --disable-werror
--with-included-gettext --with-libiconv-prefix=/usr/local --cache-file=Cashe.log
Thread model: posix
gcc version 4.1.3 20070604 (prerelease)
/usr/local/libexec/gcc/i386-pc-nto-qnx6.3.0/4.1.3/cc1plus -quiet -v -nostdinc -nostdinc++
-isystem /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/include/c++
-isystem /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/include/c++/i386-pc-nto-qnx6.3.0
-isystem /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/include/c++/backward
-idirafter /usr/qnx630/target/qnx6/usr/include
pr3.cc -quiet -dumpbase pr3.cc -auxbase pr3 -version -o /tmp/ccbkJpIr.s
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/include/c++
 /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/include/c++/i386-pc-nto-qnx6.3.0
 /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/include/c++/backward
 /usr/qnx630/target/qnx6/usr/include
End of search list.
GNU C++ version 4.1.3 20070604 (prerelease) (i386-pc-nto-qnx6.3.0)
 compiled by GNU C version 4.1.3 20070604 (prerelease).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 0ba1a88cbabcebd22c3904fced6baada
/usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/../../../../i386-pc-nto-qnx6.3.0/bin/as -V -Qy
 -o /tmp/cc1Pzieg.o /tmp/ccbkJpIr.s
GNU assembler version 2.17 (i386-pc-nto-qnx6.3.0) using BFD version 2.17
/usr/local/libexec/gcc/i386-pc-nto-qnx6.3.0/4.1.3/collect2 -V -Y P,/usr/qnx630/target/qnx6/x86/lib
-Qy -b elf32-i386 -m i386nto --dynamic-linker /usr/lib/ldqnx.so.2
-opr3 /usr/qnx630/target/qnx6/x86/lib/crt1.o /usr/qnx630/target/qnx6/x86/lib/crti.o
/usr/qnx630/target/qnx6/x86/lib/crtbegin.o
-L/usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3
-L/usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/../../../../i386-pc-nto-qnx6.3.0/lib
-L/usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3/../../.. /tmp/cc1Pzieg.o
-lstdc++ -lm -lgcc
-L /usr/qnx630/target/qnx6/x86/lib
-L /usr/qnx630/target/qnx6/x86/usr/lib
-L /usr/qnx630/target/qnx6/x86/opt/lib -lc -dn -Bstatic -lc -lgcc
/usr/qnx630/target/qnx6/x86/lib/crtend.o /usr/qnx630/target/qnx6/x86/lib/crtn.o
GNU ld version 2.17
  Supported emulations:
   i386nto
# ./pr3
31 HEXADECIMAL: 1F
# ldd pr3
./pr3:
 libstdc++.so.6 => /usr/local/lib/libstdc++.so.6 (0xb8200000)
 libm.so.2 => /lib/libm.so.2 (0xb82db000)
 libc.so.2 => /usr/lib/ldqnx.so.2 (0xb0300000)
#
Я спецяльно использовал опцию -v чтобы показать точнее как
компилятор работает.
У меня возникло много вопросов которые я решал прежде всего
методом выброшывания неработаюших элементов.
Я собераюсь нанести рорядок в моих эаметках и прежде всего
описать процесс сборки. Многие вопросы возникли я думаю из
за этого, что я практически не работаю с c++ уже где то 10 лет. К сожалени сегодня мне не удалось загрузить компилятор на мой сайт. Как только это удасьтся сообщю.


Название: GCC 4.x в QNX
Отправлено: bbceler от Июня 12, 2007, 08:56:42 pm
Компилятор c++/g++4.1.3 уже доступен на http://www.ajam.org.pl.
Я надеюсь что найдутся среди посетителей форума желаюшие помоч в проверке работы этого компилятора.


Название: GCC 4.x в QNX
Отправлено: bbceler от Июня 14, 2007, 01:59:50 pm
Я сделал первый думаю серёзный опыт для c++/g++4.1.3.
Без проблем скомпилировал QT4.3.0.
Примеры скомпилировались и работають.
Очень интересно выглядять примеры с графикой. Такого я ещё в QNX не видел. Очень интересны примеры с использованем SQL, работает тоже сеть. Вообше советую посмотрет.


Название: GCC 4.x в QNX
Отправлено: bbceler от Июля 07, 2007, 01:45:48 am
Эсли у кого то возникають проблемы с установкой c++/g++4.1.3 то я постараюсь описать это вкратце.
После скачивания компилятора надо его поместить в корень /
# cd /
# bz2cat gcc-4.1.3-x86-public-qnx6.3.tar.bz2 | pax -rv
После окончания компилятор, библетеки и другие файли будуть помещены в каталоги:
 /usr/local/bin
 /usr/local/info
 /usr/local/lib
 /usr/local/lib/gcc/i386-pc-nto-qnx6.3.0/4.1.3
 /usr/local/libexec/gcc/i386-pc-nto-qnx6.3.0/4.1.3
 /usr/local/man
 /usr/local/share

gcc и g++ находяться в /usr/local/bin
В принципе все должно сработать сразу. Только вместо qcc надо использовать gcc или g++.
Эсли возникнуть проблемы то надо посмотреть где находиться gcc. У меня картина такая:
# find /usr -name gcc
/usr/qnx630/host/qnx6/x86/etc/qcc/gcc
/usr/qnx630/host/qnx6/x86/lib/gcc
/usr/qnx630 /host/qnx6/x86/usr/bin/gcc
/usr/qnx630/target/qnx6/armbe/lib/gcc
/usr/qnx630/target/qnx6 /armle/lib/gcc
/usr/qnx630/target/qnx6/mipsbe/lib/gcc
/usr/qnx630/target/qnx6/mipsle/lib /gcc
/usr/qnx630/target/qnx6/ppcbe/lib/gcc
/usr/qnx630/target/qnx6/shle/lib/gcc
/usr/qn x630/target/qnx6/x86/lib/gcc
/usr/qnx630/lib/gcc
/usr/local/lib/gcc
/usr/local/bin/gcc
/usr/local/libexec/gcc
#  
Как видно gcc находиться в /usr/qnx630/host/qnx6/x86/usr/bin и в /usr/local/bin Который gcc будеть использован зависит от того как уставлена переменная PATH.
# set
...........
LD_LIBRARY_PATH=/proc/boot:
               /lib:
          /usr/lib:
          /lib/dll:
          /opt/lib:
          /usr/photon/lib:
          /usr/photon/dll:
          /usr/local/lib:
          /opt/X11R6/lib:
          /usr/X11R6/lib:
          /usr/local/Trolltech/Qt-4.3.0/lib
LOGNAME=root
MAILCHECK=600
MAKEFLAGS=-I/usr/qnx630/ta rget/qnx6/usr/include
OPTIND=1
PATH=/sbin:
      /usr/sbin:
     /bin:
     /usr/bin:
     /usr/photon/bin:
     /usr/photon/appbuilder:
     /opt/X11R6/bin:
     /usr/X11R6/bin:
     /usr/local/bin:
     /opt/bin:
     /opt/sbin:
     /usr/qnx630/host/qnx6/x86/usr/bin:
     /usr/qnx630/host/qnx6/x86/usr/sbin:
     /usr/qnx630/host/qnx6/x86/sbin:
     /usr/qnx630/host/qnx6/x86/bin:
     /usr/qnx630/host/qnx6/x86/usr/photon/appbuilder:
     /usr/local/Trolltech/Qt-4.3.0/bin
PHFONT=/dev/phfont
....................
Как видно первый путь это /usr/local/bin: поэтому у меня всегда пспользуеться gcc 4.х. Эсли я хочу использовать нативный компилятор QNX то использую qcc который находиться в:
# find /usr -name qcc
/usr/qnx630/host/qnx6/x86/etc/qcc
/usr/qnx630/host/qnx6/x86/usr/bin/qcc
#
И еще одна проблема. Для провильной работы компилятора требуеться библетека libiconv.
# ldd gcc
./gcc:
        libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0xb8200000)
        libc.so.2 => /usr/lib/ldqnx.so.2 (0xb0300000)
# ldd c++
./c++:
        libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0xb8200000)
        libc.so.2 => /usr/lib/ldqnx.so.2 (0xb0300000)
У меня эта библетека находиться в /usr/local/lib
Точнее это выглядить так:
# ls -l /usr/local/lib | grep libiconv
-rw-r--r--  1 root      root        1162536 May 11 16:21 libiconv.a
-rw-r--r--  1 root      root            799 May 11 16:21 libiconv.la
lrwxrwxrwx  1 root      root             17 May 11 16:21 libiconv.so -> libiconv.so.2.3.0
lrwxrwxrwx  1 root      root             17 May 11 16:21 libiconv.so.2 -> libiconv.so.2.3.0
-rwxrwxrwx  1 root      root        1070481 Jan 16  2005 libiconv.so.2.2.0
-rw-r--r--  1 root      root        1117693 May 11 16:21 libiconv.so.2.3.0
-rwxrwxr-x  1 root      root        1166076 Mar 31 01:10 libiconv.so.2.4.0
#


Название: GCC 4.x в QNX
Отправлено: bbceler от Июля 26, 2007, 03:11:29 pm
Появилась новая стабильная версия gcc 4.2.1
Скоро выложу на моей страничке.
С точки зрения QNX основная новость то то что тепер С++ тоже
доступень. Простые тесты проходить.


Название: GCC 4.x в QNX
Отправлено: bbceler от Июля 28, 2007, 03:45:59 pm
Я решил приостановить выложение gcc 4.2.1
В библетеке libc++ оказалось эсть ошибка.
Неправильно работаеть :
    try
    {
-->   throw std::runtime_error("Test"(http://qnx.org.ru/components/minibb/img/smilies/wink.gif);
    }
=========================================
# gdb ./test
GNU gdb 6.4 for GNAT GPL 2006 (20070322)
Copyright 2005-2007 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
See your support agreement for details of warranty and support.
If you do not have a current support agreement, then there is absolutely
no warranty for this version of GDB.  Type "show warranty" for details.
This GDB was configured as "i386-pc-nto-qnx6.3.0"...
(gdb) n
The program is not being run.
(gdb) start
Breakpoint 1 at 0x8048bbc
Starting program: /root/G++/test
0x08048bbc in main ()
(gdb) s
Single stepping until exit from function main,
which has no line number information.
std::allocator<char>::allocator (this=0x8047937)
    at /src/gcc-4.1-20070709/nto/ntox86/i386-pc-nto-qnx6.3.0/libstdc++-v3/include/bits/allocator.h:97
97            allocator() throw() { }
Current language:  auto; currently c++
(gdb) l
92
93            template<typename _Tp1>
94              struct rebind
95              { typedef allocator<_Tp1> other; };
96
97            allocator() throw() { }
98
99            allocator(const allocator& __a) throw()
100           : __glibcxx_base_allocator<_Tp>(__a) { }
101
(gdb) n
0x08048bcb in main ()
(gdb) l
102           template<typename _Tp1>
103             allocator(const allocator<_Tp1>&(http://qnx.org.ru/components/minibb/img/smilies/wink.gif) throw() { }
104
105           ~allocator() throw() { }
106
107           // Inherit everything else.
108         };
109
110       template<typename _T1, typename _T2>
111         inline bool
(gdb) n
Single stepping until exit from function main,
which has no line number information.

Program received signal SIGABRT, Aborted.
0xb032e7f5 in SignalKill () from /usr/qnx630/target/qnx6/x86/lib/libc.so.2
(gdb) where
#0  0xb032e7f5 in SignalKill () from /usr/qnx630/target/qnx6/x86/lib/libc.so.2
#1  0xb03217c8 in raise () from /usr/qnx630/target/qnx6/x86/lib/libc.so.2
#2  0xb03204f1 in abort () from /usr/qnx630/target/qnx6/x86/lib/libc.so.2
#3  0x0804a4c0 in uw_init_context_1 (context=0x8047860, outer_cfa=0x80478e0, outer_ra=0xb82aa8c8)
    at /src/gcc-4.1-20070709/gcc/unwind-dw2.c:1103
#4  0x0804a962 in _Unwind_RaiseException (exc=0x80520b0) at /src/gcc-4.1-20070709/gcc/unwind.inc:92
#5  0xb82aa8c8 in __cxa_throw (obj=0x80520d0, tinfo=0x804dae0,
    dest=0x80489f8 <_ZNSt13runtime_errorD1Ev@plt>(http://qnx.org.ru/components/minibb/img/smilies/wink.gif)
    at /src/gcc-4.1-20070709/libstdc++-v3/libsupc++/eh_throw.cc:72
#6  0x08048c9a in main ()
(gdb) n
Single stepping until exit from function SignalKill,
which has no line number information.

Program exited normally.
(gdb)


Название: GCC 4.x в QNX
Отправлено: bbceler от Июля 28, 2007, 03:50:58 pm
И еще одно.
Ошибка эсть тоже в g++ 4.1.3


Название: GCC 4.x в QNX
Отправлено: bbceler от Августа 08, 2007, 01:12:54 am
Я получил подсказку чтобы использовать –enable-sjlj-exceptions для уомпиляции g++.
И это решило проблему. Но появлаються вопросы.
============================================
--enable-sjlj-exceptions
Forces old, set-jump/long-jump exception handling model. If at all possible, the new, frame unwinding exception handling routines should be used instead, as they significantly reduce both runtime memory usage and executable size. This option can change the library ABI.
============================================
это из: http://gcc.gnu.org/onlinedocs/libstdc++/configopts.html
В других местах я нашол что set-jump/long-jump исключения  влияют не только на память но программы работают медленнее.
Я не очень уверен что это так и получаеться.
Может у кого есть опыт в этой области.
Проблема в том, что пока выглядить что надо принять какое то решение. Или принять что использовать модель set-jump/long-jump исключения или попробовать исправить код компилятора. Но и потом стоило бы занятся тестированием который варянт лучше.
Почему я написал что я не уверен что программы работають в модели set-jump/long-jump исключения медленнее.
В случае языка ада считаеться что модель set-jump/long-jump все таки лучше потому что когда появляеться исклучение переход на процедуру обработки очень быстрый. А в случае exception propagation программа работаеть значительно быстрее чем в случае использования другой модели обработки исклучени. Эстественно что в случае когда исклучения не появляться выигрыша не будеть.
Вопрос довольно сложный.


Название: GCC 4.x в QNX
Отправлено: Ivan от Августа 09, 2007, 12:01:07 pm
Здравствуйте, bbceler.
Отвечаю Вам на QOR, т.к. уже который раз не могу зарегистрироваться на qnxclub.net 8o(.

По вопросу GCC 4.x в QNX

Насколько я понял компилятор не генерит перехватчик исключений. Не знаю поможет ли Вам такая информация: в gcc 2.95.x тоже были такие проблемы, например компилятор не мог перехватить исключение внутри блока ( if, for ), но нормально перехватывал тоже исключение если скобкой try{}catch{} охватывать все тело функции целиком.

Может попробывать в тестовом примере поиграть положением try{}catch{} за счет фиктивных операторов? Естественно это не решение проблеммы, но может поможет ее исследованию.


Название: GCC 4.x в QNX
Отправлено: olej от Августа 11, 2007, 03:56:22 pm
Ivan
Отвечаю Вам на QOR, т.к. уже который раз не могу зарегистрироваться на qnxclub.net 8o(.


offtopic :
- mail с сервера qnxclub.net - не идут на некоторые домены... в частности @mail.ru - это проблема не сервера, а просто эти домены закрыты для отправки с Канады (деталей я не знаю, но, думаю, что сделали они в борьбе со спамом).
Как делу помочь:
- заведите временный mail на другом домене, с него регистрируйтесь, и будет вам счастье - например @front.ru - туда гарантированно доходит.


Название: GCC 4.x в QNX
Отправлено: bbceler от Января 02, 2008, 03:01:43 am
Прежде всего я бы хотел пожелать всем всего самого лучшего
С новым годом. Много счястья, денег и здоровия. Пусть этот
год будеть лучшим, а по крайней мере не хуже того который
уже прошол в небытье.
-------------------------
У меня появились проблемы в связи с компилированием c++.
Практически для всех версий 4.1.х, 4.2.х и 4.3.0 при постройке
хэдеров строяться очень болшие файли рорядка 20 GB. И всегда
они испорчены. Я вынужден запускать chkfsys /  чтобы исправить
файловую систему. Эти проблемы появились когда я прошол на QNX 6.3.2
Я сначала думал, что проблема в моим компютере. Я поменял свой
старый Pentium 4 на Intel Core2 Quad Q6600 2.49GHz. И начялось.
Оказалось что не удаеться посадить QNX 6.3.2 на новым компютере.
Я использовал старый комрютер и потом перенес диск на новый.
Кроме того во время попыток пазрушылсья мой главный диск на
котором практически нахадилась вся моя робота в области QNX.
И как не трудно догодаться последние месяцы не были перенесены
в архивум. Я очень много дней потерал на попытквх отыскания
потерянных каталогов. К счястью все окончилось успешно. Эсли
кого то интересуеть как надо поступать в такой сытуации то пишите.
Теперь я работаю на Core2 Quad. На много возрасло скорость работы.
Но проблема с построением с++ осталась. Можеть проблема в работе файловой
системы в QNX 6.3.2 ?  Можеть у кто то встречался с пахожими проблемами.
bogdan


Название: GCC 4.x в QNX
Отправлено: bbceler от Января 02, 2008, 03:17:02 am
На счеть проблемы с работой исключений в с++. Я просмотрел источники
gcc 4.2.1 выложены на сайте QNX и переработал процесс сборки компилаторов
и много файлов. У меня ест готовые сборки самых последних версии 4.1.3
и 4.2.3 и в них ошибка  не возникаеть. Эти сборки сделаны на и для QNX 6.3.2
Я скоро их вылажу на моим сайте.
bogdan


Название: GCC 4.x в QNX
Отправлено: bbceler от Февраля 25, 2008, 02:47:16 am
Времени все не хватает и я не смог выложить gcc 4.2.3.
Я одновременно решил поменять свою страничку и это оказалось немножко тяжаловато. А событя в мире gccпрямо летять Только что появилась версия 4.2.3,
а уже на сайтах появился первый кандидать 4.3.0. И практически одновременно появилас версия 4.4.0.
Между версей 4.2.х а 4.3 очень болшие разницы прежде всего в области оптимилизации. Выглядить что они не разчитали что разработка линии 4.3 будеть гороздо сложнее. А время выпуска первых ехспериментальных версии 4.4 уже наступила. С 4.3 я имел очень болшие проблемы прежде всего с компиляцей языка ada. На сегодня я получил новые версии gcc 4.3.0 и gcc 4.4.0. Но появилась проблема в работе компилятора ada в обеих версях.
В версии 4.2.3 этой проблемы нет. Я проблему эту представлию в другом месте. Может быть что получиться одинаковая сытуация как с версями 4.0 а 4.1 и 4.2. 4.0 имела очень много багов и быстро прекращено над ней работу. Я еще не не проводил опытов по скорости с этим новыми версями но как только получу то сообщу. Знаю только, что в Линух компиляция gnat4.3 даеть очень хороший результат лучше чем gnatGPL2007 каторый основан на gcc 4.1


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Февраля 22, 2009, 03:59:14 pm
Да тема стояла практически целый год. А в то время прошли болшие изменения.
Сам QNX перешол на gcc 4.2.*
Как известно последная верся это 4.2.4. В ней без проблем компилируеться сам QNX 6.4.х
Жаль что сам QNX не занимаеться компиляторами в версии 4.3 и 4.4.
На самом деле ветка 4.2.* будеть приостовлена. Можеть еще выйдеть gcc 4.2.5.
На Foundry27 в Core Development Tools тоже приостановилась работа с gcc 4.2.4
Только немножко занимаються libmudflap.
Я тоже решил заниматься только gcc 4.4.0 в QNX 6.4
Во первых я ограничил мои работы с QNX и надо было выбросить много тем.
Меня тепер интересують параллелные вычисления. Проблемы встроенных систем я отложил в сторону.
Я заитересовалься OpenMP но последняя верся 3.0 поддерживаеться только в gcc 4.4.0
Далше язык ada в gcc развиваеться тоже только в gcc 4.4.0
И так если кого то интересуеть как работаеть gcc 4.4.0 в QNX 6.4 то то можно его достать
на маем сайте www.ajam.org.pl. Это полная версия там есть c, c++, objc, gfortran и ada.
Толко нет java. К сожалении там есть проблемы с компиляцей в QNX.
Мой сайт не позволяеть меня на трансфер болших файлов и поэтому я это сделал разбивая
gcc4.4.0-x86-qnx6.4.0.tar.bz2 на три куска. Но я думаю не будеть с этим проблем если кто то
захотеть попробовать. Эсть еще одна проблема с с++. Не знаю почему в QNX 6.4 в каталог
/lib они установили библетеку libstdc++.so.6. с++-4.4.0 требуеть свою библетеку.
Я на сайте это старался описать и представил возможные решения проблемы.
Я просто у себя подменил /lib/libstdc++.so.6 на /usr/local/lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/libstdc++.so.6.
Я и так использую только gcc-4.4.0 и с++-4.4.0


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Апреля 14, 2009, 03:17:55 pm
И новые изменения. Во первых уже появилась новая верся QNX 6.4.1. Самое главное с точки зрения этой темы то что QNX перешол на новую версию gcc 4.3.3. Это как то первый раз QNX используеть самую последнию версию компилятора. Учтите, что оффициального gcc 4.4.0 еще не ту.
Во вторых уже доступна новая версия gcc 4.5.0. Она ведеть себя очень хорошо.
И то так хорошо, что я начал все свои работы делать используя эту новую версию хотья оно имеет статус - эхперименальная верся. Я это делаю из за языка ада. Как обычно все изменения и исправления касающиесья этого языка делаються в новой версии.
Все кто хочеть попробовать новый gcc 4.5.0 заходите на мою (не очень красивую ) строничку http://www.ajam.org.pl/


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Апреля 30, 2009, 05:57:05 pm
При запуске gfortran выводится ошибка
Could not load library libiconv.so.7
В системе есть только библиотека и ссылки:
libiconv.so
libiconv.so.2
libiconv.so.2.4.0

с чем слинкован gfortran?


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 01, 2009, 02:54:32 am
Прошу прошения но действительно здес нужен libiconv.so.7.
Я просто перед компиляцей прошол на новую версию libiconv-1.13 и забыл ее выложить.
Я только что выложыл новые версии:
libiconv-1.13-x86-qnx6.4.0.bin.tar.bz2,
gmp-4.3.0-qnx6.4.0.bin.tar.bz2,
mpfr-2.4.1-qnx6.4.0.bin.tar.bz2
Прежнее версии я пока оставил.
Так что прошу использовать прежде всего libiconv-1.13
К стати gcc 4.5.0 очень силно изменяеться и каждую неделью можна сказать появляеться новая версия. И так как появился наконец то оффицияльный gcc 4.4.0 то я прежде всего ним занимаюсь.
И то прежде всего уже в QNX 6.4.1. Оказываеться что есть отличия в компиляции по сравнению с QNX 6.4.0
Надеюсь что libiconv-1.13 поможеть. И прошу о информацию что получилось или по форуму или мне по почте.


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Мая 04, 2009, 01:57:47 pm
gfortran -fcray-pointer -c *.f90
В файлах где массивы и указатели выводится ошибка
f951: internal compiler error: illegal instruction
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

В Linux под gfortran4.2.3 все собирается без вопросов.
Есть какие-нибудь мисли по этому поводу ?


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 04, 2009, 03:00:41 pm
Возми во внимание что gfortran4.5.0 находиться на начяльной стадии разработкиию. Такие ошибки и другие естественно могуть встречаться.
Я только что окончил постройку gcc-4.4.0. Это уже оффицяльной выпуск. Я это делал для QNX 6.40 и 6.4.1 поэтому это длилось гороздо длиннее чем обычно. Скоро я это выложу.
У меня там тоже есть gfortran4.4.0 так что если ты бы мне выслал какой то пример кода то я смогбы проверить как себе ведеть gfortran4.4.0 в отношении к проблеме с которой ты встретилься.
К стати я могу то проверить тоже для gfortran4.2.4


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Мая 04, 2009, 03:47:20 pm
Файлы выслал на почту
В gfortrane4.2(которго правда уже нет) c вашего сайта все компилировалось, проблема была только sizeof т.к. функция еще не была реализованна но в версиях => 4.3 она есть так что проблем быть с ней не должно


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 05, 2009, 01:32:43 am
Файлы получил и сделал компиляцию. Использовал два компиляторы gfortran4.4.0 и gfortran4.5.0 Вот результаты:
# gcc --version
gcc (GCC) 4.5.0 20090421 (experimental)
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# gfortran -v -fcray-pointer -c t_prg.f90
Using built-in specs.
Target: i386-pc-nto-qnx6.4.0
Configured with: ../configure --srcdir=.. --enable-cheaders=c --with-sysroot=/usr/qnx640/target/qnx6/
   --program-suffix=-4.5.0 --disable-bootstrap --disable-werror --libdir=/usr/qnx640/host/qnx6/x86/usr/lib
   --libexecdir=/usr/qnx640/host/qnx6/x86/usr/lib --target=i386-pc-nto-qnx6.4.0
   --srcdir=/src/gcc-4.5-20090420/nto-x86-o-ntox86/.. --enable-version-specific-runtime-libs
   --prefix=/usr/qnx640/host/qnx6/x86/usr --exec-prefix=/usr/qnx640/host/qnx6/x86/usr
   --with-local-prefix=/usr/qnx640/host/qnx6/x86/usr --enable-languages=c,c++,ada,fortran,objc
   --enable-threads=posix --enable-libada --enable-libssp --enable-libgomp --enable-libffi
   --enable-libmudflap --enable-__cxa_atexit --with-included-gettext
   --with-gxx-include-dir=/usr/qnx640/target/qnx6/usr/include/c++/4.5.0 --enable-shared --enable-multilib
Thread model: posix
gcc version 4.5.0 20090421 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-v' '-fcray-pointer' '-c' '-mtune=i386'
 /usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.5.0/f951 t_prg.f90 -quiet -dumpbase t_prg.f90 -mtune=i386
 -auxbase t_prg -version -fcray-pointer
 -fintrinsic-modules-path /usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.5.0/finclude
 -o /tmp/ccwHTcD6.s
GNU Fortran (GCC) version 4.5.0 20090421 (experimental) (i386-pc-nto-qnx6.4.0)
        compiled by GNU C version 4.5.0 20090413 (experimental), GMP version 4.3, MPFR version 2.4.1.
warning: GMP header version 4.3 differs from library version 4.3.0.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
COLLECT_GCC_OPTIONS='-v' '-fcray-pointer' '-c' '-mtune=i386'
 /usr/qnx640/host/qnx6/x86/usr/bin/as -V -Qy -o t_prg.o /tmp/ccwHTcD6.s
GNU assembler version 2.18 (i386-pc-nto-qnx6.4.0) using BFD version (GNU Binutils) 2.18
COMPILER_PATH=/usr/qnx640/host/qnx6/x86/usr/bin/:/usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.5.0/:
              /usr/local/bin/../lib/gcc/
LIBRARY_PATH=/usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.5.0/:/usr/local/bin/../lib/gcc/:
             /usr/qnx640/target/qnx6//usr/lib/
COLLECT_GCC_OPTIONS='-v' '-fcray-pointer' '-c' '-mtune=i386'
Press any key to continue...

t_prg.o  6976  May  5 00:30

# gcc --version
gcc (GCC) 4.4.0
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# gfortran -v -fcray-pointer -c t_prg.f90
Using built-in specs.
Target: i386-pc-nto-qnx6.4.0
Configured with:
 ../configure --srcdir=.. --enable-cheaders=c --with-as=/usr/qnx641/host/qnx6/x86/usr/bin/ntox86-as-2.19
 --with-ld=/usr/qnx641/host/qnx6/x86/usr/bin/ntox86-ld-2.19 --with-sysroot=/usr/qnx641/target/qnx6/
 --disable-werror --libdir=/usr/qnx641/host/qnx6/x86/usr/lib --libexecdir=/usr/qnx641/host/qnx6/x86/usr/lib
 --target=i386-pc-nto-qnx6.4.0 --srcdir=/src/gcc-4.4.0/nto-x86-o-ntox86/..
 --prefix=/usr/qnx641/host/qnx6/x86/usr --exec-prefix=/usr/qnx641/host/qnx6/x86/usr
 --with-local-prefix=/usr/qnx641/host/qnx6/x86/usr --enable-languages=c,c++,ada,fortran,objc
 --enable-threads=posix --enable-libada --disable-nls --enable-libssp --disable-tls --enable-libgomp
 --enable-libffi --enable-libmudflap --enable-__cxa_atexit
 --with-gxx-include-dir=/usr/qnx641/target/qnx6/usr/include/c++/4.4.0 --enable-multilib
 --with-bugurl=http://www.qnx.com --with-included-gettext --program-suffix=-4.4.0
 --enable-version-specific-runtime-libs --enable-shared CC=i386-pc-nto-qnx6.4.0-gcc
CPPFLAGS=' -I/usr/qnx641/target/qnx6/usr/include'
LDFLAGS='-Wl,-s ' CXX=i386-pc-nto-qnx6.4.0-g++
AUTOMAKE=: AUTOCONF=: AUTOHEADER=: AUTORECONF=: ACLOCAL=:
Thread model: posix
gcc version 4.4.0 (GCC)
COLLECT_GCC_OPTIONS='-v' '-fcray-pointer' '-c' '-mtune=i386'
 /usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/f951 t_prg.f90 -quiet -dumpbase t_prg.f90
 -mtune=i386 -auxbase t_prg -version -fcray-pointer
 -fintrinsic-modules-path /usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/finclude
 -o /tmp/ccGkQ6i8.s
GNU Fortran (GCC) version 4.4.0 (i386-pc-nto-qnx6.4.0)
        compiled by GNU C version 4.4.0, GMP version 4.3, MPFR version 2.4.1.
warning: GMP header version 4.3 differs from library version 4.3.0.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
COLLECT_GCC_OPTIONS='-v' '-fcray-pointer' '-c' '-mtune=i386'
 /usr/qnx640/host/qnx6/x86/usr/bin/as -v -V -Qy -o t_prg.o /tmp/ccGkQ6i8.s
GNU assembler version 2.18 (i386-pc-nto-qnx6.4.0) using BFD version (GNU Binutils) 2.18
COMPILER_PATH=/usr/qnx640/host/qnx6/x86/usr/bin/:/usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/:
              /usr/local/bin/../lib/gcc/
LIBRARY_PATH=/usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/:/usr/local/bin/../lib/gcc/
COLLECT_GCC_OPTIONS='-v' '-fcray-pointer' '-c' '-mtune=i386'
Press any key to continue...
t_prg.o  6964 May  5 00:38

Как видно gcc-4.5.0 с 20090421 и наверно поэтому ошибка не возникает.




Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 05, 2009, 02:34:57 pm
Я только что выложил gcc 4.4.0.
Он работаеть в QNX 6.40 и 6.4.1. Надо только скачать и устоновит все нужные библетеки
ppl, libiconv, gmp, mpfr
Я все эти библетеки тоже выложил.


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Мая 05, 2009, 03:07:57 pm
У меня gcc version 4.5.0 20090413 (experimental) (GCC), т.е. я так понимаю что на сайте нет последней версии?


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Мая 05, 2009, 03:44:31 pm
При компиляции выдается ошибка
$ gfortran-4.4.0 -c t_prg.f90
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume_or_Rethrow
unknown symbol: _Unwind_RaiseException
unknown symbol: _Unwind_GetLanguageSpecificData
unknown symbol: _Unwind_Resume
unknown symbol: _Unwind_DeleteException
unknown symbol: _Unwind_GetTextRelBase
unknown symbol: _Unwind_SetIP
unknown symbol: _Unwind_GetDataRelBase
unknown symbol: _Unwind_GetRegionStart
unknown symbol: _Unwind_SetGR
unknown symbol: _Unwind_GetIPInfo
Could not resolve all symbols

Посмотрел ldd

$ ldd /usr/local/bin/gfortran-4.5.0
/usr/local/bin/gfortran-4.5.0:
        libiconv.so.7 => /usr/local/lib/libiconv.so.7 (0xb8200000)
        libc.so.3 => /usr/lib/ldqnx.so.2 (0xb0300000)
$ ldd /usr/local/bin/gfortran-4.4.0
/usr/local/bin/gfortran-4.4.0:
        libc.so.3 => /usr/lib/ldqnx.so.2 (0xb0300000)
С компиляцией сишника такая же проблема видимо gcc c icoinv не с линковали


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Мая 05, 2009, 04:19:45 pm
Хотя могу ошибаться , есть подозрения по поводу библиотеки libunwind


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 05, 2009, 04:21:05 pm
Ia tepier na rabotie i poetomy y menia niet russkoj klawiatury. No nadeius wy pojmiote.
Ja poka gcc 4.5.0 udalil. Eta wersia gcc version 4.5.0 20090413 oczen ustarewszaia.
Kogda ja cdelaju nowuiu to wylozu.
devbrain a szto pokazywaet:
gfortran-4.4.0 -v-c t_prg.f90   - obrati wnimanie na -v

Na sczot :
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume_or_Rethrow
unknown symbol: _Unwind_RaiseException
unknown symbol: _Unwind_GetLanguageSpecificData
unknown symbol: _Unwind_Resume
unknown symbol: _Unwind_DeleteException
unknown symbol: _Unwind_GetTextRelBase
unknown symbol: _Unwind_SetIP
unknown symbol: _Unwind_GetDataRelBase
unknown symbol: _Unwind_GetRegionStart
unknown symbol: _Unwind_SetGR
unknown symbol: _Unwind_GetIPInfo
Eto wygladit szto ne hwataet kakoj to biblioteki.
Ty nie probowal posmatret kakaia to biblioteka ?


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 05, 2009, 04:23:20 pm
K stati devbrain ty w QNX 6.4.0 ili 6.4.1 ?


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Мая 05, 2009, 04:46:18 pm
Работаю в 6.4.0

Using built-in specs.
Target: i386-pc-nto-qnx6.4.0
Configured with: ../configure --srcdir=.. --enable-cheaders=c --with-as=/usr/qnx641/host/qnx6/x86/usr
bin/ntox86-as-2.19 --with-ld=/usr/qnx641/host/qnx6/x86/usr/bin/ntox86-ld-2.19 --with-sysroot=/usr/qnx
41/target/qnx6/ --disable-werror --libdir=/usr/qnx641/host/qnx6/x86/usr/lib --libexecdir=/usr/qnx641/
ost/qnx6/x86/usr/lib --target=i386-pc-nto-qnx6.4.0 --srcdir=/src/gcc-4.4.0/nto-x86-o-ntox86/.. --pref
x=/usr/qnx641/host/qnx6/x86/usr --exec-prefix=/usr/qnx641/host/qnx6/x86/usr --with-local-prefix=/usr/
nx641/host/qnx6/x86/usr --enable-languages=c,c++,ada,fortran,objc --enable-threads=posix --enable-lib
da --disable-nls --enable-libssp --disable-tls --enable-libgomp --enable-libffi --enable-libmudflap -
enable-__cxa_atexit --with-gxx-include-dir=/usr/qnx641/target/qnx6/usr/include/c++/4.4.0 --enable-mul
ilib --with-bugurl=http://www.qnx.com --with-included-gettext --program-suffix=-4.4.0 --enable-versio
-specific-runtime-libs --enable-shared CC=i386-pc-nto-qnx6.4.0-gcc CPPFLAGS=' -I/usr/qnx641/target/qn
6/usr/include' LDFLAGS='-Wl,-s ' CXX=i386-pc-nto-qnx6.4.0-g++ AUTOMAKE=: AUTOCONF=: AUTOHEADER=: AUTO
ECONF=: ACLOCAL=:
Thread model: posix
gcc version 4.4.0 (GCC)
COLLECT_GCC_OPTIONS='-v' '-c' '-mtune=i386'
 /usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/f951 t_dis.f90 -quiet -dumpbase t_dis.f90 -mtun
=i386 -auxbase t_dis -version -fintrinsic-modules-path /usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0
4.4.0/finclude -o /tmp/ccbwolsf.s
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume_or_Rethrow
unknown symbol: _Unwind_RaiseException
unknown symbol: _Unwind_GetLanguageSpecificData
unknown symbol: _Unwind_Resume
unknown symbol: _Unwind_DeleteException
unknown symbol: _Unwind_GetTextRelBase
unknown symbol: _Unwind_SetIP
unknown symbol: _Unwind_GetDataRelBase
unknown symbol: _Unwind_GetRegionStart
unknown symbol: _Unwind_SetGR
unknown symbol: _Unwind_GetIPInfo
Could not resolve all symbols

Похоже на библиотеку libunwind в gcc есть даже опция --with-system-libunwind 


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 05, 2009, 05:15:09 pm
a szto pokazywaet:
ldd /usr/local/lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/f951
i
objdump -p /usr/local/lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/f951

U mienia takich problem nie bylo i poetomu nie proeierial kakie biblioteki nuz ny dla f951


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 05, 2009, 05:26:32 pm
I eszio odno devbrain ty probowal pri kompilacii dobawit priamyj put k bibliotekie libunwind
tipa gfortran -v -L/lib ........
I ty probowal kompilirowat sztoto w iazykie C hotiaby hello.c ?


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 06, 2009, 02:56:33 am
Проблема возникаеть из за этого что компилятор фортрана f951 тепер использует библетеку
libstdc++.so.6
# objdump -p ./f951

./f951:     file format elf32-i386
....................................
Dynamic Section:
  NEEDED      libstdc++.so.6
  NEEDED      libppl_c.so.3
  NEEDED      libppl.so.8
  NEEDED      libgmpxx.so.4
  NEEDED      libmpfr.so.3
  NEEDED      libgmp.so.3
  NEEDED      libc.so.3
  INIT        0x804af5c
ldd показываеть где f951 исщет libstdc++.so.6:
# ldd f951
./f951:
        libstdc++.so.6 => /lib/libstdc++.so.6 (0xb8200000)
        libppl_c.so.3 => /usr/local/lib/libppl_c.so.3 (0xb8310000)
        libppl.so.8 => /usr/local/lib/libppl.so.8 (0xb8568000)
        libgmpxx.so.4 => /usr/local/lib/libgmpxx.so.4 (0xb8615000)
        libmpfr.so.3 => /usr/local/lib/libmpfr.so.3 (0xb8619000)
        libgmp.so.3 => /usr/local/lib/libgmp.so.3 (0xb8663000)
        libm.so.2 => /lib/libm.so.2 (0xb86b5000)
        libc.so.3 => /usr/lib/ldqnx.so.2 (0xb0300000)
Как видно беруться /lib/libstdc++.so.6.
Я не очень понимаю почему эту библетеку поместили в каталог /lib
К стати почти такие самые ошибки я представил на моем сайте описывая проблемы с работой
програм в с++.
И эти :
unknown symbol: _Unwind_Resume
unknown symbol: _ZNKSt5ctypeIcE13_M_widen_initEv
unknown symbol: _Unwind_Resume_or_Rethrow
unknown symbol: _Unwind_RaiseException
unknown symbol: _Unwind_GetLanguageSpecificData
unknown symbol: _Unwind_DeleteException
unknown symbol: _Unwind_GetTextRelBase
unknown symbol: _Unwind_SetIP
unknown symbol: _Unwind_GetRegionStart
unknown symbol: _Unwind_SetGR
unknown symbol: _Unwind_GetIPInfo
находяться в библетеке libstdc++.so.6.0.11 из компилятора 4.4.0
Я не обратил на это внимания потому, что у меня в /lib эсть:
# cd /lib; ls -l | grep libstdc++
lrwxrwxrwx  1 root      root             19 Apr 22 11:38 libstdc++.so -> libstdc++.so.6.0.11
lrwxrwxrwx  1 root      root             18 Dec 28 14:32 libstdc++.so.5 -> libstdc++.so.5.0.7
-rwxrwxr-x  1 root      root         566974 Jun 27  2008 libstdc++.so.5.0.7
lrwxrwxrwx  1 root      root             19 Apr 22 11:38 libstdc++.so.6 -> libstdc++.so.6.0.11
-rwxr-xr-x  1 root      root        4532613 Apr 24 02:22 libstdc++.so.6.0.11
-rwxr-xr-x  1 root      root        4469420 Oct 21  2008 libstdc++.so.6.0.9
#
devbrain у тебя наверно эсть libstdc++.so.6 -> libstdc++.so.6.0.9
Так что предлагаю или сделать так как я сделал (ibstdc++.so.6 -> libstdc++.so.6.0.11) но надо имет в виду что могуть возникать проблемы в работе с с++ используа другие компиляторы чем с++-4.4.0
Самый простый выход то сначяла сделать LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
а потом просто компилировать. Измененный LD_LIBRARY_PATH будеть только в этой сесии терминала в которой мы выполнили LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
И так к примеру:
# pwd
/root
# cd Fortran/
# LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
# gfortran -v -fcray-pointer -c t_prg.f90
#
или даже проще:
# LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH; gfortran -v -fcray-pointer -c t_prg.f90
#


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 06, 2009, 02:30:39 pm
То что я до сих пор писал относилось к работе gcc4.4.0 в QNX 6.4.0.
В QNX 6.4.1 картина другая. Так как в 6.4.1 базовый компилятор это gcc4.3.3
И вкаталоге /lib имеем:
libstdc++.so.6 -> libstdc++.so.6.0.10
а в libstdc++.so.6.0.10 уже все эти символы _ZNKSt5ctypeIcE13_M_widen_initEv, _Unwind_Resume,
_Unwind_Resume_or_Rethrow и остальные.
Так что gfortran -v -fcray-pointer -c t_prg.f90 работаеть без проблем. По крайней мере в этом примере. Думаю что devbrain могбы наверно это проверить. Я фортраном не занимаюсь.
И еще на счет работы в c++/g++-4.4.0
В QNX 6.4.0 опять возникають проблемы с libstdc++.so.6
Возмем простой пример:
pr4.cc
...........................
#include <iostream>

main( void )
{
   std::cout << "a line of text" << std::endl;
   //   cout << "Hello ..............";
}
..........................
# g++ -o pr4 pr4.cc
# ldd pr4
./pr4:
        libstdc++.so.6 => /lib/libstdc++.so.6 (0xb8200000)
        libm.so.2 => /lib/libm.so.2 (0xb82e6000)
        libc.so.3 => /usr/lib/ldqnx.so.2 (0xb0300000)

И из libstdc++.so.6 => /lib/libstdc++.so.6 (0xb8200000) видно что поведение программы зависит
от того что собой представляет /lib/libstdc++.so.6 а прежде всего от какой версии gcc[ она происходить.
Для gcc4.4.0 это должна быть библетека libstdc++.so.6.0.11 и поэтому если
/lib/libstdc++.so.6 будеть указывать на libstdc++.so.6.0.11 то для g++-4.4.0 все будеть
работать правильно.
Эсть еще одна возможность чтобы самая программа находила правильную библетеку.
Делаем это исползуя -Wl,-rpath=/usr/local/lib во времия компилации:
# g++ -o pr4 -Wl,-rpath=/usr/local/lib pr4.cc
и получаем:
# ldd pr4
./pr4:
        libstdc++.so.6 => /usr/local/lib/libstdc++.so.6 (0xb8200000)
        libm.so.2 => /lib/libm.so.2 (0xb831a000)
        libc.so.3 => /usr/lib/ldqnx.so.2 (0xb0300000)
и тепер libstdc++.so.6 => /usr/local/lib/libstdc++.so.6 а /usr/local/lib/libstdc++.so.6 указывает на libstdc++.so.6.0.11
и еще посмотрите на
# objdump -p pr4

pr4:     file format elf32-i386

Program Header:
    PHDR off    0x00000034 vaddr 0x08048034 paddr 0x08048034 align 2**2
         filesz 0x000000c0 memsz 0x000000c0 flags r-x
  INTERP off    0x000000f4 vaddr 0x080480f4 paddr 0x080480f4 align 2**0
         filesz 0x00000014 memsz 0x00000014 flags r--
    LOAD off    0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12
         filesz 0x00000cc4 memsz 0x00000cc4 flags r-x
    LOAD off    0x00000cc4 vaddr 0x08049cc4 paddr 0x08049cc4 align 2**12
         filesz 0x00000140 memsz 0x0000022c flags rw-
 DYNAMIC off    0x00000cdc vaddr 0x08049cdc paddr 0x08049cdc align 2**2
         filesz 0x000000c8 memsz 0x000000c8 flags rw-
    NOTE off    0x00000108 vaddr 0x08048108 paddr 0x08048108 align 2**0
         filesz 0x00000018 memsz 0x00000018 flags r--

Dynamic Section:
  NEEDED      libstdc++.so.6
  NEEDED      libm.so.2
  NEEDED      libc.so.3
  RPATH       /usr/local/lib
  INIT        0x8048640
  FINI        0x8048bd8
  HASH        0x8048120
  STRTAB      0x80483b0
RPATH       /usr/local/lib как раз решаеть проблему


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Мая 06, 2009, 05:47:12 pm
Проблема с символами решилась, но осталась изначальная.
f951: internal compiler error: illegal instruction
Поставил библиотеки и gcc на чистую систему 6.4.1, сишный исходник gcc собирается нормально, а с gfortran нет :(


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 06, 2009, 08:53:46 pm
Ty imeesz w widu szto postawil gcc4.4.0 ?
Oszybku wydaiot toze samaia programma kotoruiu ty mnie prislal ?


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Мая 06, 2009, 10:54:45 pm
Да gcc4.4.0 и с примером, который тебе высылал


Название: Re: GCC 4.x в QNX
Отправлено: bbceler от Мая 07, 2009, 01:59:44 am
А вот у меня никакие проблемы не возникають. И так по точнее.
У меня самая последняя верся QNX 6.4.1
# uname -a
QNX localhost 6.4.1 2009/04/18-00:39:07EDT x86pc x86
#
gcc 4.4.0 и gfortran-4.4.0 и только эти версии. Эстестьвенно нативный gcc4.3.3 тоже есть.
# cd /usr
# find -name f951
./local/lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/f951
# cd local/lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0
# ls -l | grep f9
-rwxr-xr-x  1 root      root        7374224 Apr 28 21:07 f951
#
# ./f951 --version
GNU Fortran (GCC) version 4.4.0 (i386-pc-nto-qnx6.4.0)
        compiled by GNU C version 4.4.0, GMP version 4.3, MPFR version 2.4.1.
warning: GMP header version 4.3 differs from library version 4.3.0.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096

и тепер компиляция

# cd /root/Fortran
# ls -l
total 48
drwxrwxrwx  2 root     root           1024 May 07 00:40 .
drwx------ 14 root     root           1024 May 06 12:00 ..
-rw-rw-r--  1 root      root           2314 May 05 00:23 common_data
-rw-rw-r--  1 root      root           3917 May 05 00:22 t_prg.f90
# gfortran -v -fcray-pointer -c t_prg.f90 2>&1 | tee CC.log
# ls -l
total 48
drwxrwxrwx  2 root     root           1024 May 07 00:41 .
drwx------ 14 root     root           1024 May 06 12:00 ..
-rw-rw-r--  1 root      root           2375 May 07 00:41 CC.log
-rw-rw-r--  1 root      root           2314 May 05 00:23 common_data
-rw-rw-r--  1 root      root           3917 May 05 00:22 t_prg.f90
-rw-rw-r--  1 root      root           6964 May 07 00:41 t_prg.o
#

А вот CC.log:
Using built-in specs.
Target: i386-pc-nto-qnx6.4.0
Configured with: ../configure --srcdir=.. --enable-cheaders=c
--with-as=/usr/qnx641/host/qnx6/x86/usr/bin/ntox86-as-2.19
--with-ld=/usr/qnx641/host/qnx6/x86/usr/bin/ntox86-ld-2.19
--with-sysroot=/usr/qnx641/target/qnx6/ --disable-werror
--libdir=/usr/qnx641/host/qnx6/x86/usr/lib
--libexecdir=/usr/qnx641/host/qnx6/x86/usr/lib
--target=i386-pc-nto-qnx6.4.0
--srcdir=/src/gcc-4.4.0/nto-x86-o-ntox86/..
--prefix=/usr/qnx641/host/qnx6/x86/usr
--exec-prefix=/usr/qnx641/host/qnx6/x86/usr
--with-local-prefix=/usr/qnx641/host/qnx6/x86/usr
--enable-languages=c,c++,ada,fortran,objc
--enable-threads=posix
--enable-libada
--disable-nls
--enable-libssp
--disable-tls
--enable-libgomp
--enable-libffi
--enable-libmudflap
--enable-__cxa_atexit
--with-gxx-include-dir=/usr/qnx641/target/qnx6/usr/include/c++/4.4.0
--enable-multilib
--with-bugurl=http://www.qnx.com
--with-included-gettext --program-suffix=-4.4.0
--enable-version-specific-runtime-libs --enable-shared
CC=i386-pc-nto-qnx6.4.0-gcc
CPPFLAGS=' -I/usr/qnx641/target/qnx6/usr/include'
LDFLAGS='-Wl,-s '
CXX=i386-pc-nto-qnx6.4.0-g++
 AUTOMAKE=: AUTOCONF=: AUTOHEADER=: AUTORECONF=: ACLOCAL=:
Thread model: posix
gcc version 4.4.0 (GCC)
COLLECT_GCC_OPTIONS='-v' '-fcray-pointer' '-c' '-mtune=i386'
 /usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/f951 t_prg.f90 -quiet -dumpbase t_prg.f90
 -mtune=i386 -auxbase t_prg -version -fcray-pointer
 -fintrinsic-modules-path /usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/finclude -o /tmp/ccCeszkJ.s
GNU Fortran (GCC) version 4.4.0 (i386-pc-nto-qnx6.4.0)
   compiled by GNU C version 4.4.0, GMP version 4.3, MPFR version 2.4.1.
warning: GMP header version 4.3 differs from library version 4.3.0.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
COLLECT_GCC_OPTIONS='-v' '-fcray-pointer' '-c' '-mtune=i386'
 /usr/qnx641/host/qnx6/x86/usr/bin/ntox86-as-2.19 -v -V -Qy -o t_prg.o /tmp/ccCeszkJ.s
GNU assembler version 2.19.1 (i386-pc-nto-qnx6.4.0) using BFD version (GNU Binutils) 2.19.1
COMPILER_PATH=/usr/qnx641/host/qnx6/x86/usr/bin/:
              /usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/:
              /usr/local/bin/../lib/gcc/
LIBRARY_PATH=/usr/local/bin/../lib/gcc/i386-pc-nto-qnx6.4.0/4.4.0/:
             /usr/local/bin/../lib/gcc/:
             /usr/qnx641/target/qnx6//usr/lib/
COLLECT_GCC_OPTIONS='-v' '-fcray-pointer' '-c' '-mtune=i386'
=====================================================
devbrain посмотри у тебя есть какие то отличя ?
Хотя подожди какая у тебя машина ?
У меня Intel Core2 Quad 2.40 GHz ия GMP и MPFR компилировал на свою машину.
И они компилировались при следуюших установках
CC=gcc-4.4.0, CFLAGS=-m32 -O2 -fomit-frame-pointer -mtune=core2 -march=core2
Компилятор языка фортран в болшей степени используеть  GMP и MPFR  чем остальные
компиляторы. Так что я скомпилирую эти библетеки используя -mtune=i386.
К стати devbrain ты сам это можеш сделать и тогда будеш имеет эти библетеки
под свою машину. Во время ./configure процесс выбора птималь ных параметров происходить
автоматически если конешно не заставиш чтоьы компилировать на определенную платформу.


Название: Re: GCC 4.x в QNX
Отправлено: devbrain от Мая 08, 2009, 11:55:41 am
Собрал mpf и gmp под свою платформу и все заработало.
Спасибо!