Главная

Новая версия старого gcc-2.95.3 на пробу.

Стандартным компилятором в BeOS является gcc–2.9, портированный еще Be Inc. В то же время портирование многих программ требует как минимум версии 2.95 — поддержка MMX, ассемблерные вставки и другие особенности.
Существовавший доселе порт 2.95.3, изготовленный Такаши, содержал ошибки как в заголовочных файлах, так и где–то в бинарниках, что вызывало и ошибки при компиляции, и падения скомпилированных программ. Причем готовый код был тем нестабильнее, чем выше степень оптимизации при компиляции.
Оливер Таппе из команды Haiku подготовил новую версию gcc–2.95.3. На тестирование заинтересованным любителям, с последующим включением, после отладки, в состав Haiku–OS.

Маленькое пояснение для тех, кто еще не в курсе.
В BeOS все принадлежности компилятора находятся в /boot/develop/tools, внутри папки gnupro.
Те, кто использует несколько вариантов компилятора, переименовывают оригинальную папку, например в gnupro–2.9, распаковывают другую версию компилятора, преименовывают и его (если он тоже называется gnupro), например в gnupro–2.95, а затем там же, в /boot/develop/tools, создают симлинк под названием, правильно! — gnupro, на одну из этих «настоящих» папок. Наиболее ленивые еще и пишут какой–нибудь простенький скриптик, который будет сам перелинковывать gnupro в нужное место, при необходимости смены компилятора.

GCC 3.x.x бы

Ещё бы и libc была бы, вот не плохо было бы.
В HAIKU грозятся перейти на 3–ю версии после выхода первого релиза ОС. А когда будет 1–й релиз ?

Фиксы к gcc 2.95.3

В рассылке Haiku после рапорта о неудачах при сборке некоторых программ появилось следующее:

Ok, thanks for reporting this. This was a bug in fixincl, the program gcc uses to “fix” (cough) system headers. In this case, of course, it was messing up the BeOS headers for good (as these are fine…).

This can be fixed by replacing
…/lib/gcc-lib/i586-pc-beos/2.95.3/includelib/i586-pc–beos/setjmp.h
with this corrected version:
http://www.hirschkaefer.de/beos/setjmp.h

> Building libebml 0.7.0 fails too (but it never worked with any BeOS
> gcc so far), complaining when including :

[ 8< description about missing sstream 8< ]

Ah, yes, sstream is a header that had been introduced with a later version of libstdc++, so it is missing under BeOS.
But I have just checked and it seems to be working fine with the older libstdc++. So I will integrate it with the next release.

For the easy fix, please download it from here:
http://www.hirschkaefer.de/beos/sstream

and put it into …/include/g++–2/

совет от сборщика из Haiku

copy streambuf.h from the compiler–subfolder into /boot/develop/headers/cpp in order to avoid warnings about void* not being a pointer type. This seems to be triggered by stricter type–checks of gcc–2.95.3 as compared to older versions.

Ещё баги

Кроме того много других багов. К примеру, у меня haiku не полностью собирался. Помогла замена линкера на даношный. Ещё был прикольный баг с DVD Rip. При компиляции 2.9 занимает где–то 100–200 Кб, при этом — аж 2,4 Мб. :) Ещё есть какие–то баги в самом gcc, точно не помню какие.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <i> <img> <strong> <b> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Введите перечисленные символы, чтобы мы убедились, что вы не робот. Не требуется для зарегистрированных пользователей.
7
g
8
D
Q
d
Enter the code without spaces and pay attention to upper/lower case.