Софт-Портал

Gnu Compiler Collection скачать

Рейтинг: 4.1/5.0 (219 проголосовавших)

Категория: Linux

Описание

Книга The Definitive Guide to GCC Скачать

Книга The Definitive Guide to GCC

Название: The Definitive Guide to GCC
Автор: Kurt Wall, ‎William von Hagen
Страниц: 504
Формат: PDF
Размер: 13.2 Мб
Качество: Отличное
Язык: Английский
Жанр: программирование
Год издания: 2004
The Definitive Guide to GCC is a comprehensive tutorial and guide to using GCC, the GNU Compiler Collection. GCC is quite simply the most-used and most powerful tool for programmers on the planet. GCC has long been available for most major hardware and operating system platforms and is often the preferred compiler for those platforms. As a general-purpose compiler, GCC produces higher quality, faster performing executable code with fewer bugs than equivalent offerings supplied by hardware and software vendors. GCC, along with GNU Emacs, the Linux operating system, the Apache web server, the Sendmail mail server, and the BIND DNS server, is one of the showpieces of the free software world and proof that sometimes you can get a free lunch.
In The Definitive Guide to GCC, authors William von Hagen and Kurt Wall teach you how to build, install, customize, use, and troubleshoot GCC 3.2. This guide goes beyond just command-line invocations to show you how to use GCC to improve the quality of your code (with debugging, code profiling, and test code coverage), and how to integrate other GNU development tools, such as libtool, automake, and autoconf, into your GCC-based development projects.

Поделитесь с друзьями и скачайте бесплатно

Размести ссылку новости Книга The Definitive Guide to GCC на сайте, блоге, форуме или поделись ей с друзьями:

HTML ссылка на "Книга The Definitive Guide to GCC" :

Ссылка для форумов на "Книга The Definitive Guide to GCC" :

Ссылка на "Книга The Definitive Guide to GCC" :

Книга The Definitive Guide to GCC


Название: The Definitive Guide to GCC
Автор: Kurt Wall, ‎William von Hagen
Страниц: 504
Формат: PDF
Размер: 13.2 Мб
Качество: Отличное
Язык: Английский
Жанр: программирование
Год издания: 2004
Th.

Книга Сomplete Tai-chi: The Definitive Guide to Physical and Emotional Self-development


Название: Сomplete Tai-chi: The Definitive Guide to Physical and Emotional Self-development
Автор: Альфред Чжанг
Страниц: 282
Формат: PDF
Размер: 48 мб.
Качество: Отличное
Язык: Английский
Жанр: единоборства
.

Книга The Definitive Guide to ARM Cortex-M0 and Cortex-M0+ Processors


Название: The Definitive Guide to ARM Cortex-M0 and Cortex-M0+ Processors
Автор: Yiu J.
Страниц: 764
Формат: PDF
Размер: 14.5 Мб
Качество: Отличное
Язык: Английский
Год издания: 2015
The Definitive Guide to.

The Definitive Guide to MongoDB: A Complete Guide to Dealing with Big Data using MongoDB 2nd Edition


Автор: David Hows, Eelco Plugge, Peter Membrey and Tim Hawkins
Название:The Definitive Guide to MongoDB: A Complete Guide to Dealing with Big Data using MongoDB 2nd Edition
Издательство:Apress
Год: 2013
Кол-во страниц: 350
Фо.

The Definitive Guide to iReport


Автор: Giulio Toffoli
Название: The Definitive Guide to iReport
Издательство: Apress
Год: 2007
Формат: PDF в RAR+5%
Размер: 12.7 МБ
ISBN: 978-1-59059-928-0
Язык: Английский
Качество: отличное
iReport i.

The Definitive Guide to JasperReports


Название: The Definitive Guide to JasperReports
Автор: Teodor Danciu and Lucian Chirita
Издательство: Apress
ISBN: 978-1-59059-927-3
Год издания: 2007
Страниц: 236
Язык: Английский
Формат: PDF в RAR+5%
Кач.

Hadoop: The Definitive Guide


Название: Hadoop: The Definitive Guide
Автор: Tom White
Издательство: O'Reilly
Страниц: 688
Формат: PDF
Размер: 2.98 Мб
Качество: Отличное
Язык: Русский
Год издания: 2009
ISBN: 978-1-4493-1152-0
.

The Definitive Guide to the ARM Cortex-M3


Название: The Definitive Guide to the ARM Cortex-M3
Автор: Joseph Yiu
Издательство: Newnes
Год: 2007 (First Edition)
ISBN: 978-0-7506-8534-4
Страниц: 380
Формат: PDF
Размер: 5 Mб
Язык: Английский
Качес.

The Definitive Guide to CentOS


Автор: Peter Membrey, Tim Verhoeven, Ralph Angenendt
Название: The Definitive Guide to CentOS
Издательство: Apress
Год: 2009
Формат: PDF в RAR+5%
Размер: 12.8 МБ
ISBN: 978-1-4302-1931-6
Язык: Английский
Каче.

Dojo: The Definitive Guide


Matthew Russell
Издательство: O'Reilly
Год издания: 2008
Страниц: 486
ISBN: 978-0-596-51648-2
Язык: английский
Формат: PDF
Размер: 4.8 Мб
На русском: Dojo - это высоконадежный инструментарий JavaScript.

HBase: The Definitive Guide


Название: HBase: The Definitive Guide
Издательство: O'Reilly Media
Автор: Lars George
Год: 2011
Количество страниц: 554
Формат: PDF
Размер: 12 mb
Язык: English
If your organization is looking for a storage s.

Definitive Guide to Windows 10


Автор: Jonatan Parkyn (editor)
Название: Definitive Guide to Windows 10
Издательство: Dennis Publishing Ltd. (MagBook)
Год: 2015
Формат: PDF
Размер: 50.72 MB
Язык: Английский
The Definitive Guide to Windows 10 is.

Hadoop: The Definitive Guide pdf 3Мб


Автор: Tom White
Название: Hadoop: The Definitive Guide
Издательство: O'Reilly
Год: 2009
Формат: pdf
Размер: 3Mb
Organizations large and small are adopting Apache Hadoop to deal with huge application datasets. Hadoop: T.

The Definitive Guide to Grails 2


Название: The Definitive Guide to Grails 2
Автор: Jeff Scott Brown, Graeme Rocher
Издательство: Apress
Год: 2012
Формат: PDF/EPUB
Размер: 12,52 Мб
Качество: Хорошее
Язык: Английский
Grails is a full stack fr.

Squid: The Definitive Guide


Название:Squid: The Definitive Guide
Автор: Duane Wessels
Год:2004
Издательство: O'Reilly Media
Формат:pdf
Язык: English
Размер: 2 Мб
Squid is the most popular Web caching software in use today, and it works on a.

Apache: The Definitive Guide


Дорогие Друзья!
С праздником Пасхи — великим праздником, в который торжествует истина над ложью и жизнь побеждает смерть.
И да освятит Господь все Ваши добрые дела и начинания и подаст Вам Свою всесильную помощь в Ваших благих трудах и начинан.

Hadoop: The Definitive Guide


Автор: Tom White
Название: Hadoop: The Definitive Guide
Издательство: O'Reilly
Год: 2009
Формат: pdf
Размер: 3Mb
Organizations large and small are adopting Apache Hadoop to deal with huge application datasets. Hadoop: T.

The Definitive Guide to Pylons


Автор: James Gardner
Название: The Definitive Guide to Pylons
Издательство: Apress
Год: 2009
Формат: PDF в RAR+5%
Размер: 4.25 МБ
ISBN: 978-1-4302-0534-0
Язык: Английский
Качество: отличное
Pylons is d.

The Definitive Guide to the ARM Cortex-M0


Название: The Definitive Guide to the ARM Cortex-M0
Автор: Yiu Joseph
Издательство: Newnes
Год: 2011
Страниц: 518
ISBN: 978-0-12-385477-3
Формат: PDF
Размер: 20 Mб
Язык: english
It is an exciting time.

The Definitive Guide to Grails 2


Название: The Definitive Guide to Grails 2
Автор: Jeff Scott Brown, Graeme Rocher
Издательство: Apress
Год: 2012
Формат: PDF/EPUB
Размер: 12,52 Мб
Качество: Хорошее
Язык: Английский
Grails is a full stack fr.

The Definitive Guide to symfony


Автор: Francois Zaninotto and Fabien Potencier
Название: The Definitive Guide to symfony
Издательство: Apress
Год: 2007
Формат: PDF в RAR+5%
Размер: 6.34 МБ
ISBN: 978-1-59059-786-6
Язык: Английский
Качество.

The Definitive Guide to Berkeley DB XML


Автор: Danny Brian
Название: The Definitive Guide to Berkeley DB XML
Издательство: Apress
Год: 2006
Формат: PDF в RAR+5%
Размер: 2.10 МБ
ISBN: 978-1-59059-666-1
Язык: Английский
Качество: отличное
The.

Jenkins: The Definitive Guide


Название: Jenkins: The Definitive Guide
Издательство: O'Reilly Media
Автор: John Ferguson Smart
Год: 2011
Количество страниц: 406
Формат: PDF
Размер: 22 mb
Язык: English
Streamline software development with.

Jenkins: The Definitive Guide


Название: Jenkins: The Definitive Guide
Автор: John Ferguson Smart
Издательство: O'Reilly Media
Страниц: 406
Формат: PDF
Размер: 22.2 Мб
Качество: Отличное
Язык: Английский
Год издания: 2011
ISBN: 978-.

The Definitive Guide to Bar Calisthenics


Название: The Definitive Guide to Bar Calisthenics / Полное Руководство по Тренировкам на Турнике
Автор: Al Kavadlo / Ал Кавадло
Издательство: Kindle Edition
Год: 2011
Формат: PDF
Размер: 16.1 mb
Качество: Хорошее
.

The Definitive Guide to symfony


Автор: Francois Zaninotto and Fabien Potencier
Название: The Definitive Guide to symfony
Издательство: Apress
Год: 2007
Формат: PDF в RAR+5%
Размер: 6.34 МБ
ISBN: 978-1-59059-786-6
Язык: Английский
Качество.

The Definitive Guide to Android


Название The Definitive Guide to Android
Издательство:Dennis Publishing
Автор:Jonathan Parkyn
Год: 19 Jun 2014
Количество страниц:
Язык:English
Формат: pdf
Размер:72Mb
Whether you are completely fresh to And.

Hadoop: The Definitive Guide


Автор: Tom White
Год издания: 2009
Формат: pdf
Издат. O'Reilly
Страниц: 195
Размер: 3
ISBN: 9780596521974
Язык: Английский
Organizations large and small are adopting.

Hadoop: The Definitive Guide


Автор: Tom White
Название: Hadoop: The Definitive Guide
Издательство: O'Reilly
Год: 2009
Формат: pdf
Размер: 3Mb
Organizations large and small are adopting Apache Hadoop to deal with huge application datasets. Hadoop: T.

The Definitive Guide to Drupal 7


Название: The Definitive Guide to Drupal 7
Издательство: Apress
Автор: Benjamin Melancon, Jacine Luisi, Karoly Negyesi
Год: 2011
Количество страниц: 1077
Формат: PDF
Размер: 39 mb
Язык: English
The Definitiv.

Gnu compiler collection скачать:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    GCC Elite 12 Software Installer скачать бесплатно для Mac OS X

    Скачать GCC Elite 12 Software Installer для Mac OS X

    Тип программы: Software Installer

    Размер файла: 3.07Mb (3214464 bytes)

    Дата выхода: 15.10.01

    Система: Mac OS X

    Описание: The software installer for the Elite 12 series of printers.­ The files include the .­PPD,­ .­PDX,­ .­PDF,­ and .­MPD files for the Elite 12 Series.­ Please refer to the documentation included with your software applications for further information regarding these files.­ This installer is compatible with Mac System 7.­1 through OS X.­
    Note: Printing with OS X native applications will require the installation of printer firmware release version 3.­45,­ available from GCC Technical Support at a nominal charge.­ Contact GCC Technical Support at 781-276-8620 M-F 9:00-7:00 EST to determine how to obtain an upgrade.­

    Правовая информация: Все програмное обеспечение, размещённое на Driver.ru является бесплатным. Все названия и торговые марки принадлежат их владельцам.

    Внимание: Некоторые программы получены из непроверенных источников. Мы не гарантируем их совместимость и работоспособность. Всегда проверяйте загруженные файлы с помощью антивирусных программ. Мы не несём никакой ответственности за возможные потери, возникшие в результате установки загруженных программ. Загрузка файла с Driver.ru обозначает вашу информированность об этом и согласие с данными условиями.

    Похожие файлы:

    Название: Peer-to-Peer LPR for Windows 95/­98/­ME

    Система: Windows 95 Windows 98 Windows ME

    Описание: GCC's Peer-to-Peer LPR Printing software for Windows 95,­ 98,­ and ME.­ This software will allow users of Windows 95,­ 98,­ or ME to connect to GCC's Elite XL 20 Series,­ Elite 12 Series (running ROM version 3.­2 or higher) and Elite XL 616/­808/­1208/­1208PM printers (running ROM version 2.­94,­ 3.­02,­ or later) via a direct TCP/­IP Eth. Скачать GCC Elite 12 Peer-to-Peer LPR for Windows 95/­98/­ME драйвер

    Название: USB Driver for Windows98/­ME

    Система: Windows 98 Windows ME

    Описание: USB Software for Windows 98 and Windows Me installation of the Elite 12 printer.­ If you have previously attempted to install your Elite 12 on a Windows 98 System using the old USB software you must run the included 'DeInstaller' before attempting to install this software.­ Please download and review the Installation Guides prior to attempting the installation.­ Note: This software is. ArrayArray GCC Elite 12 USB Драйвер for Windows98/­ME

    Тип программы: Driver

    Система: Windows XP Windows 2000

    Описание: The Windows 2000 driver and application files for the Elite 12/­600,­ Elite 12/­600 N,­ Elite 1212 and Elite 12/­1200 N printers.­ ArrayArray GCC Elite 12 Драйвер

    Тип программы: Driver

    Система: Windows 95 Windows 98 Windows ME Windows NT

    Описание: The Windows 95/­98/­ME,­ NT 3.­5,­ and NT 4.­0 driver and application files for the Elite 12 Series.­ ArrayArray GCC Elite 12 Драйвер

    Название: Application Files

    Система: Mac OS X

    Описание: The application files for the Elite 12 Series of printers.­ The files include the .­PPD,­ .­PDX,­ .­PDF,­ and .­MPD files for the Elite 12 Series.­ Please refer to the documentation included with your software applications for further information regarding these files.­ Скачать GCC Elite 12 Application Files v.3.4 драйвер

    Артур Гриффитс

    Артур Гриффитс - GCC / 2004

    Голос монстра 2016 [Художественные Фильмы]

    Детям крайне важно всегда знать, что их любят, что с их родителям ничего не угрожает. Страх одиночества и смерти присущ не только юным умам, поэтому можно понять реакцию 13-летнего мальчика Конора, ко

    Флоренс Фостер Дженкинс 2016 [Художественные Фильмы]

    Бездарность иногда оказывается настоящим кладом, открывает новые горизонты в искусстве. Так Флоренс Фостер Дженкинс с детства верила, что обладает редким талантом и уникальным музыкальным слухом, даже

    Неоновый демон 2016 [Художественные Фильмы]

    Юная провинциалка Джесси мечтает о карьере модели. Она готова на многое, чтобы добиться своего. Жизнь в чужом враждебном городе, дешевые отели, нужда – ничто не остановит амбициозную красавицу. Постеп

    © katushka.net 2007-2016
    Сайт может содержать контент, не предназначенный для лиц моложе 18 лет
    Page generated in 0.008368 seconds with 6 queries (77.04% PHP / 22.96% MySQL)

    Bog BOS: Компилятор gcc: установка и использование

    Последнее изменение файла: 2011.06.09
    Скопировано с www.bog.pp.ru: 2016.08.25

    Bog BOS: Компилятор gcc: установка и использование

    GCC (Gnu Compilers Collection) позволяет компилировать программы на C (C89), C++ (G++), Objective-C, Ada (GNAT), Fortran, Java (gcj). Имеется не до конца интегрированный препроцессор с Pascal.

    Версии GCC
    • последняя стабильная версия - 4.5.0 (апрель 2010)
    • Fedora 10 - 4.3.2
    • Fedora 9 - 4.3.0
    • FC6 - 4.1.2 RHEL 5.4 - 4.1.2 и 4.4.0
    • RHEL 4 - 3.4.6
    • Red Hat Linux 8.0 - 3.2 (сменил на 3.2.2 т.к. обнаружил ошибки)
    • RH 7.3 - 2.96-112 (вернулись обратно)
    • RH 7.2 - 3.0.2, upgrade - 3.0.4
    • egcs - слит с gcc 2.95
    • pgcc - последняя версия 2.95.2, разработка остановлена
    GCC 3.2 поддерживает следующие версии C (по умолчанию C89 с расширениями: -std=gnu89):
    • "традиционный" (-traditional, K & R)
    • ANSI X3.159-1989 (-ansi, -std=c89)
    • ISO/IEC 9899:1990 (-std=iso9899:1990), с исправлениями 1994 и 1996 годов
    • дополнения 1995 года (-std=iso9899:199409, AMD1, C94, C95, __STDC_VERSION__)
    • ISO/IEC 9899:1999 (-std=c99, C99, поддерживается не полностью)
    • расширения GNU (-std=gnu89, -std=gnu99 и т.д.)
    Сборка gcc 4.5.0 (только C и C++) из gcc-core-4.5.0.tar.bz2 и gcc-g++-4.5.0.tar.bz2 (руководство. спецификации RPM для Fedora ):
    1. распаковать исходные тексты gcc-core-4.5.0.tar.bz2, gcc-g++-4.5.0.tar.bz2 и gcc-testsuite-4.5.0.tar.bz2 в worktable (в общую gcc-4.5.0, 350MB)
    2. убедиться, что необходимые инструменты установлены, кроме указанных ниже исключений
    3. удалить слишком старый пакет gmp-devel (оставив пакет gmp - нужен gcc44 и php)
    4. собрать новую версию GMP 4.3.2 из исходных текстов в /usr/local (/usr/local/lib и /usr/local/lib64 должны быть в /etc/ld.so.conf):
      • распаковать рядом (не внутри)
      • CC=gcc44 ./configure --enable-cxx
      • make -j 20
      • make check
      • make install: /usr/local/share/info/gmp.*, /usr/local/lib/libgmp.*, /usr/local/lib/libgmpxx.*, /usr/local/include/gmp.h, /usr/local/include/gmpxx.h
      • ldconfig
    5. собрать PPL 0.10.2 из исходных текстов в /usr/local
      • распаковать рядом (не внутри)
      • CC=gcc44 ./configure --enable-optimization --with-libgmp-prefix=/usr/local --with-libgmpxx-prefix=/usr/local
      • make -j 20
      • make check -j 20 ( зацикливается в tests/BOX )
      • make install: /usr/local/lib/libppl.*, /usr/local/bin/ppl-config, /usr/local/include/ppl.hh, /usr/local/lib/libpwl.*, /usr/local/include/pwl.hh, /usr/local/share/doc/pwl/, /usr/local/lib/libppl_c.*, /usr/local/bin/ppl_lcdd, /usr/local/share/man/man1/, /usr/local/share/doc/ppl/, /usr/local/share/man/man3/; ldconfig)
      • ldconfig
    6. собрать polylib 5.22.5 в /usr/local
      • взять исходные тексты
      • CC=gcc44 CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --enable-int-lib --enable-longint-lib --enable-longlongint-lib --with-libgmp=/usr/local
      • make -j 20
      • make check ( Enumerate: arithmetic overflow error. You should rebuild PolyLib using GNU-MP ?)
      • make install: /usr/local/include/polylib/, /usr/local/lib/libpolylibgmp.*, /usr/local/lib/libpolylib64.*, /usr/local/lib/libpolylib32.*, /usr/local/bin/ (c2p r2p findv disjoint_union_sep disjoint_union_adj ehrhart_quick_apx ehrhart_upper_bound ehrhart_lower_bound ehrhart_rankinggmp ehrhart_uniongmp ppgmp testehrhartgmp ehrhart_ranking64 ehrhart_union64 pp64 testehrhart64 ehrhart_ranking64 ehrhart_union64 pp64 testehrhart64 ehrhart_ranking32 ehrhart_union32 pp32 testehrhart32
      • ldconfig
    7. собрать CLooG-PPL 0.15.9 из исходных текстов в /usr/local
      • распаковать рядом (не внутри)
      • CC=gcc44 CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --with-ppl --with-gmp-include=/usr/local/include --with-gmp-library=/usr/local/lib --with-bits=gmp
      • make -j 20
      • make check
      • make install: /usr/local/lib/libcloog.*, /usr/local/include/cloog/, /usr/local/share/info/cloog.info
      • ldconfig
    8. положить MPFR 2.4.2 внутрь gcc-4.5.0 под именем mpfr
    9. положить MPC 0.8.1 внутрь gcc-4.5.0 под именем mpc
    10. создать
    /worktable/gcc-4.5.0/configure --help (описание ключей )
  • CC=gcc44 CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib /worktable/gcc-4.5.0/configure --program-suffix=-4.5.0 --enable-version-specific-runtime-libs --enable-languages=c,c++ --disable-nls --with-cloog --with-ppl [--enable-lto при наличии libelf v0.8.12] --enable-threads=posix -enable-__cxa_atexit --disable-libunwind-exceptions --with-arch_32=i686 --with-tune=generic
  • make [-j 20] bootstrap (1900 MB)
  • make install
    • /usr/local/bin (множество программ с суффиксом "-4.5.0", в частности c++-4.5.0, cpp-4.5.0, gcc-4.5.0, g++-4.5.0, c++-4.5.0, gccbug-4.5.0, gcov-4.5.0, x86_64-unknown-linux-gnu-gcc-4.5.0 )
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib/libgcc_s.so.1
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64/libgcc_s.so.1
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/ (библиотеки 64 бит)
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/32/ (библиотеки 32 бит)
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/include/
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/finclude/ (пуст)
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/include/c++/
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/include/ssp/
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/include-fixed/ (обнаруженные в системе заголовки, преобразуются к ANSI стандарту и складываются сюда; используются? кто отслеживает изменение оригинала?)
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/install-tools/
    • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/plugin/
    • /usr/local/lib/libiberty.a
    • /usr/local/lib64/libiberty.a
    • /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/ (cc1, cc1plus, collect2, install-tools/)
    • /usr/local/share/man/man1 (документация к программам с суффиксом: cpp-4.5.0.1, g++-4.5.0.1, gcc-4.5.0.1, gcov-4.5.0.1)
    • /usr/local/share/man/man7 (fsf-funding.7, gfdl.7, gpl.7)
    • /usr/local/share/info (без суффиксов: cpp.info, cppinternals.info, gcc.info, gccint.info, gccinstall.info, libgomp.info)
    • /usr/local/share/gcc-4.5.0/python/
  • [SELinux: chcon -t -v -v texrel_shlib_t /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/*.so*]
  • /usr/local/lib и /usr/local/lib64 в /etc/ld.so.conf и ldconfig
  • проблема: /usr/bin/ld: cannot find -lgcc_s (необходимость каждый раз указывать -L/usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64 не радует)
  • ln -s /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64/libgcc_s.so /usr/local/lib64/libgcc_s.so
  • ln -s /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64/libgcc_s.so.1 /usr/local/lib64/libgcc_s.so.1
  • Сборка gcc 4.4.1 (только C и C++) из gcc-core-4.4.1.tar.bz2 и gcc-g++-4.4.1.tar.bz2 (руководство. спецификации RPM для Fedora ):
    1. убедиться, что необходимые инструменты установлены
    2. в частности, пришлось установить
      • GMP 4.2 (пакеты gmp и gmp-devel)
      • MPFR 2.3.2 (пакеты mpfr и mpfr-devel)
      • PPL 0.10 (пакеты ppl, ppl-devel, ppl-docs, ppl-static, ppl-utils, glpk)
      • polylib 5.22.3 aka libpolylib64.so.7 (взять исходные тексты ; ./configure (?--enable-int-lib ?--enable-longint-lib ?--enable-longlongint-lib); make; make test; make install; ldconfig)
      • CLooG-PPL 0.15 (взять исходные тексты 0.15.5 ; ./configure --with-ppl (--with-bits=gmp?); make; make check; make install (libcloog.so.0.0.0);
    3. распаковать исходные тексты gcc-core-4.4.1.tar.bz2, gcc-g++-4.4.1.tar.bz2 и gcc-testsuite-4.4.1.tar.bz2 в /worktable (в общую gcc-4.4.1, 320MB)
    4. создать /worktable/gcc-4.4.1-objdir
    5. cd /worktable/gcc-4.4.1-objdir
    6. /worktable/gcc-4.4.1/configure --help (описание ключей )
    7. /worktable/gcc-4.4.1/configure --program-suffix=-4.4.1 --enable-version-specific-runtime-libs --enable-languages=c,c++ --disable-nls --with-cloog --with-ppl --enable-threads=posix -enable-__cxa_atexit --disable-libunwind-exceptions --with-arch_32=i686 --with-tune=generic
    8. make [-j 4] bootstrap (1900 MB)
    9. make install
      • /usr/local/bin (множество программ с суффиксом "-4.4.1", в частности c++-4.4.1, cpp-4.4.1, gcc-4.4.1, g++-4.4.1/c++-4.4.1, gccbug-4.4.1, gcov-4.4.1, x86_64-unknown-linux-gnu-gcc-4.4.1 )
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib/libgcc_s.so.1
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64/libgcc_s.so.1
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.4.1/ (библиотеки 64 бит)
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.4.1/32/ (библиотеки 32 бит)
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.4.1/include/
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.4.1/finclude/ (пуст)
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.4.1/include/c++/
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.4.1/include/ssp/
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.4.1/include-fixed/ (обнаруженные в системе заголовки, преобразуются к ANSI стандарту и складываются сюда; используются? кто отслеживает изменение оригинала?)
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.4.1/install-tools/
      • /usr/local/lib/libiberty.a
      • /usr/local/lib64/libiberty.a
      • /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.4.1/ (cc1, cc1plus, collect2, install-tools/)
      • /usr/local/man/man1 (документация к программам с суффиксом: cpp-4.4.1.1, g++-4.4.1.1, gcc-4.4.1.1, gcov-4.4.1.1)
      • /usr/local/man/man7 (fsf-funding.7, gfdl.7, gpl.7)
      • /usr/local/info (без суффиксов: cpp.info, cppinternals.info, gcc.info, gccint.info, gccinstall.info, libgomp.info)
    10. [SELinux: chcon -t -v -v texrel_shlib_t /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.4.1/*.so*]
    11. /usr/local/lib и /usr/local/lib64 в /etc/ld.so.conf и ldconfig
    12. проблема: /usr/bin/ld: cannot find -lgcc_s (необходимость каждый раз указывать -L/usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64 не радует)
    13. ln -s /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64/libgcc_s.so /usr/local/lib64/libgcc_s.so
    14. ln -s /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64/libgcc_s.so.1 /usr/local/lib64/libgcc_s.so.1
    Сборка gcc 4.3.3 (только C и C++) из gcc-core-4.3.3.tar.bz2 и gcc-g++-4.3.3.tar.bz2:
    1. убедиться, что необходимые инструменты установлены
    2. [в частности, пришлось установить MPFR 2.4.1 с сайта
      • взять из каталога infrastructura
      • распаковать
      • прочитать INSTALL
      • скачать и установить заплатки
      • ./configure [--enable-thread-safe?]
      • make
      • make check
      • make install
        • /usr/local/lib/libmpfr.so*
        • /usr/local/lib/libmpfr.a
        • /usr/local/include/mpfr.h
        • /usr/local/include/mpf2mpfr.h
        • /usr/local/share/info/mpfr.info
      • chcon -t texrel_shlib_t /usr/local/lib/libmpfr.so*
      • ldconfig
      ]
    3. распаковать gcc-core-4.3.3.tar.bz2, gcc-g++-4.3.3.tar.bz2 и gcc-testsuite-4.3.3.tar.bz2 в /worktable
    4. создать /worktable/gcc-4.3.3-objdir
    5. cd /worktable/gcc-4.3.3-objdir
    6. /worktable/gcc-4.3.3/configure --help (описание ключей )
    7. /worktable/gcc-4.3.3/configure --program-suffix=-4.3.3 --enable-version-specific-runtime-libs --enable-languages=c,c++ --disable-nls --with-mpfr-include=/usr/local/include --with-mpfr-lib=/usr/local/lib
    8. make [-j 4] bootstrap (1400 MB)
    9. make install
      • /usr/local/bin (множество программ с суффиксом "-4.3.3", в частности c++-4.3.3, cpp-4.3.3, gcc-4.3.3, g++-4.3.3/c++-4.3.3, gccbug-4.3.3, gcov-4.3.3, x86_64-unknown-linux-gnu-gcc-4.3.3 )
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/ (библиотеки 64 бит)
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib/libgcc_s.so.1
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64/libgcc_s.so.1
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/include/
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/include/c++/
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/include/ssp/
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/include-fixed/ (обнаруженные в системе заголовки, преобразуются к ANSI стандарту и складываются сюда; используются? кто отслеживает изменение оригинала?)
      • /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/install-tools/
      • /usr/local/lib/libiberty.a
      • /usr/local/lib/libiberty64.a
      • /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.3.3/ (cc1, cc1plus, collect2, install-tools/)
      • /usr/local/man/man1 (документация к программам с суффиксом: cpp-4.3.3.1, g++-4.3.3.1, gcc-4.3.3.1, gcov-4.3.3.1)
      • /usr/local/man/man7 (fsf-funding.7, gfdl.7, gpl.7)
      • /usr/local/info (без суффиксов: cpp.info, cppinternals.info, gcc.info, gccint.info, gccinstall.info, libgomp.info)
    10. [SELinux: chcon -t -v -v texrel_shlib_t /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.3.3/*.so*]
    11. /usr/local/lib и /usr/local/lib64 в /etc/ld.so.conf и ldconfig
    12. проблема: /usr/bin/ld: cannot find -lgcc_s (необходимость каждый раз указывать -L/usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64 не радует)
    13. ln -s /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64/libgcc_s.so /usr/local/lib64/libgcc_s.so
    14. ln -s /usr/local/lib/gcc/x86_64-unknown-linux-gnu/lib64/libgcc_s.so.1 /usr/local/lib64/libgcc_s.so.1
    Сборка gcc 4.3.1 (только C и C++) из gcc-core-4.3.1.tar.bz2:
    1. убедиться, что необходимые инструменты установлены
    2. в частности, пришлось установить MPFR 2.3
      • взять из каталога infrastructura
      • распаковать
      • прочитать INSTALL
      • скачать и установить заплатки
      • ./configure [--enable-thread-safe?]
      • make
      • make check
      • make install
        • /usr/local/lib/libmpfr.so*
        • /usr/local/lib/libmpfr.a
        • /usr/local/include/mpfr.h
        • /usr/local/include/mpf2mpfr.h
        • /usr/local/share/info/mpfr.info
      • chcon -t texrel_shlib_t /usr/local/lib/libmpfr.so*
      • ldconfig
    3. распаковать gcc-core-4.3.1.tar.bz2, gcc-g++-4.3.1.tar.bz2 и gcc-testsuite-4.3.1.tar.bz2 в /worktable
    4. создать /worktable/gcc-4.3.1-objdir
    5. cd /worktable/gcc-4.3.1-objdir
    6. /worktable/gcc-4.3.1/configure --help (описание ключей )
    7. /worktable/gcc-4.3.1/configure --program-suffix=-4.3.1 --enable-version-specific-runtime-libs --enable-languages=c,c++ --disable-nls --with-mpfr-include=/usr/local/include --with-mpfr-lib=/usr/local/lib
    8. make bootstrap (820 MB)
    9. make install
      • /usr/local/bin (множество программ с суффиксом "-4.3.1", в частности cpp-4.3.1, gcc-4.3.1, g++-4.3.1/c++-4.3.1, gccbug-4.3.1)
      • /usr/local/lib/gcc/i686-pc-linux-gnu/4.3.1/ (библиотеки)
      • /usr/local/lib/gcc/i686-pc-linux-gnu/4.3.1/include/
      • /usr/local/lib/gcc/i686-pc-linux-gnu/4.3.1/include/c++/
      • /usr/local/lib/gcc/i686-pc-linux-gnu/4.3.1/include-fixed/ (обнаруженные в системе заголовки, преобразуются к ANSI стандарту и складываются сюда; используются? кто отслеживает изменение оригинала?)
      • /usr/local/lib/gcc/i686-pc-linux-gnu/4.3.1/install-tools/
      • /usr/local/lib/libiberty.a
      • /usr/local/libexec/gcc/i686-pc-linux-gnu/4.3.1/ (cc1, cc1plus, collect2, install-tools/)
      • /usr/local/man/man1 (документация к программам с суффиксом: cpp-4.3.1.1, g++-4.3.1.1, gcc-4.3.1.1, gcov-4.3.1.1)
      • /usr/local/man/man7 (fsf-funding.7, gfdl.7, gpl.7)
      • /usr/local/info (без суффиксов: cpp.info, cppinternals.info, gcc.info, gccint.info, gccinstall.info, libgomp.info)
    10. chcon -t texrel_shlib_t /usr/local/lib/gcc/i686-pc-linux-gnu/4.3.1/*.so*
    11. ldconfig
    Сборка gcc 3.2.2 (только C) из gcc-core-3.2.2.tar.bz2 и binutils-2.13.2.tar.bz2:
    1. распаковать gcc-3.2.2 (gcc-core-3.2.2) в /worktable
    2. распаковать binutils-2.13.2; поддиректории bfd, binutils, etc, gas, gprof, intl, ld, opcodes, texinfo перенести в gcc-3.2.2; поддиректории include и libiberty в binutils новее, чем в gcc, так что надо добавить или заменить их, но аккуратно
    3. создать /worktable/gcc-3.2.2-objdir
    4. cd /worktable/gcc-3.2.2-objdir
    5. /worktable/gcc-3.2.2/configure --program-suffix=-3.2.2 --disable-nls
    6. make bootstrap (230 MB)
    7. make install
      • /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.2.2/ (библиотеки, exe и include)
      • /usr/local/bin (множество программ с суффиксом "-3.2.2", в частности gcc-3.2.2)
      • /usr/local/i686-pc-linux-gnu/bin (программы без суффиксов nm, strip, ar, ranlib, as, ld; inode тот же)
      • /usr/local/i686-pc-linux-gnu/lib/ldscripts
      • /usr/local/include (bfd.h, ansidecl.h, symcat.h, bfdlink.h, dis-asm.h)
      • /usr/local/lib/ (libgcc_s.so.1, libgcc_s.so, libiberty.a, libbfd.la, libbfd.a, libopcodes.la, libopcodes.a)
      • /usr/local/man/man1 (документация к программам с суффиксом "-3.2.2" и почему-то cpp и gcov без суффикса)
      • /usr/local/man/man7 (fsf-funding.7, gfdl.7, gpl.7)
      • /usr/local/info (cpp.info*, gcc.info*, cppinternals.info, gccint.info*, bfd.info*, binutils.info*, standards.info, configure.info*, as.info*, gprof.info*, ld.info*)

    А вот поставить gcc-3.3 и binutils-2.13.2.1 на RH 7.2 не удалось.

    • --help (общие ключи)
    • -v --help (ключи всех фаз компиляции: препроцессор, компилятор, ассемблер, сборщик)
    • --target-help (выдать список ключей, управляющих генерацией кода: )
    • -pipe (использовать канал вместо временных файлов для обмена информацией между фазами)
    • -std=стандарт (список см. выше)
    • -g (включать отладочную информацию, ключ -g не мешает оптимизации, но порядок команд может удивить)
    • -fbounds-check
    • -fbounded-pointers
    • -fstack-check
    • -p (генерировать код для профилирования программой prof)
    • -pg (генерировать код для профилирования программой gprof)
    • -fprofile-arcs (генерировать код для сбора статистики обхода ветвей - в файлы *.da)
    • -E (выполнять только фазу препроцессора)
    • -S (выполнять фазы препроцессора и компиляции)
    • -S -g (для получения осмысленного ассемблерного текста с номерами строк)
    • -c (выполнять фазы препроцессора, компиляции и ассемблера)
    • -o имя-выходного-файла
    • -save-temps (не удалять временные файлы по завершению компляции)
    • -Dмакро=значение

    Для компиляции под Intel x86_64 необходимо указывать ключи: -m64 -march=nocona.

    Для компиляции под Intel 386 на машине с архитектурой x86_64 требуется установить пакет glibc-devel.i386 и указать ключ -m32. Сборку также производить с помощью "cc -m32".

    Условия измерения: процессор - P4 24x100 MHz; память разогнана; алгоритм - сжимается без потерь 40000 кадров видео (jpeg-ls, T1=3, T2=7, T3=21, RESET=40, Total bytes out: 5002245509 Symbols in: 21903907584 1.827 bps, 4.379. 1); алгоритм оптимизировался вручную несколькими поколениями разработчиков; размер обрабатываемого файла -

    10 ГБ, так что кеширование файлов невозможно; ввод с диска не является "узким местом", т.к. исходный материал также сжат. Программа не использует плавающую точку, поэтому соответствующие ключи оптимизации не расматривались.

    Первым шагом в оптимизации (после того как руками было сделано максимум возможного) является переход на новую версию компилятора (или другой компилятор ;). Например, переход с gcc 3.0 на 3.2 ускорил работу на 5%.

    По умолчанию gcc 3.2.2 компилирует со следующими ключами, имеющими отношение к оптимизации (их список можно получить при компиляции с ключами: -S -fverbose-asm), что дает 13007 KSymbols/sec:
    • -fargument-alias (аргументы могут ссылаться на одно и то же место или на глобальные переменные)
    • -fbranch-count-reg
    • -ffunction-cse
    • -fgcse
    • -fgcse-sm
    • -fpcc-struct-return (обеспечивается совместимость с другими компиляторами за счет небольшого уменьшения скорости)
    • -fpeephole
    • -fsched-interblock
    • -fsched-spec
    • -mcpu=pentiumpro
    • -march=i386

    Ключ -march=pentium4 уменьшил скорость.

    Ключ -O добавляет оптимизацию (с ключом -fno-guess-branch-probability, 18576 KSymbols/sec):
    • -fcprop-registers
    • -fdefer-pop
    • -fgcse-lm
    • -fguess-branch-probability (предсказание делается случайным образом!)
    • -fkeep-static-consts
    • -fmerge-constants
    • -fthread-jumps
    Ключ -O2 добавляет оптимизацию (с ключом -fno-guess-branch-probability, 19047 KSymbols/sec):
    • -fcaller-saves
    • -fcse-follow-jumps
    • -fcse-skip-blocks
    • -fdelete-null-pointer-checks (может повлиять на логику работы программы)
    • -fexpensive-optimizations
    • -fforce-mem (иногда лучше убрать)
    • -foptimize-register-move (AKA -fregmove)
    • -foptimize-sibling-calls
    • -fpeephole2
    • -freorder-blocks
    • -frerun-cse-after-loop
    • -frerun-loop-opt
    • -fschedule-insns2
    • -fstrength-reduce
    • -fstrict-aliasing (могут быть проблемы с union)
    Ключ -O3 (больше в этой версии не бывает!) добавляет оптимизацию (с ключом -fno-guess-branch-probability, 19442 KSymbols/sec):
    • -frename-registers
    • -finline (в листинге ключ отсутствует)
    • -finline-functions (в листинге ключ отсутствует)
    Дополнительные ключи оптимизации:
    • -fomit-frame-pointer (проблемы с отладкой, 20152 KSymbols/sec)
    • -fforce-addr (замедляет, выкидываем)
    • -fsched-spec-load (20206 KSymbols/sec)
    • -fsched-spec-load-dangerous (пользы никакой, а название пугает)
    • -funroll-loops (20222 KSymbols/sec)
    • -funroll-all-loops (замедляет, выкидываем)
    • -fmove-all-movables (замедляет, выкидываем)
    • -freduce-all-givs (замедляет, выкидываем)
    • -falign-functions (пользы никакой)
    • -falign-loops (пользы никакой)
    • -falign-jumps (пользы никакой)
    • -fssa (замедляет, выкидываем)
    • -fssa-cpp (требуется -fssa, ошибка компилятора)
    • -fssa-dce (требуется -fssa, замедляет, выкидываем)
    • --param max-gcse-passes=проходов (8 проходов не увеличили скорость)
    • -mno-push-args (пользы никакой)
    • -maccumulate-outgoing-args (пользы никакой)
    • -minline-all-stringops (замедляет. выкидываем)
    • -mno-align-stringops (замедляет, выкидываем)
    • -mcpu=pentium4 (будет работать на любых x86 процессорах, оптимизирован под P4, 21728 KSymbols/sec)
    • -march=pentium4 (будет работать только на P4, 22205 KSymbols/sec)
    • -fprefetch-loop-arrays (только для продвинутых архитектур типа pentium4, 22633 KSymbols/sec)
    • -fdelayed-branch (неприменим для x86)
    • -mmmx (пользы никакой)
    • -msse (включает mmx, пользы никакой)
    • -msse2 (включает mmx и sse, пользы никакой)
    • -m3dnow
    • -ffast-math (включает -funsafe-math-optimizations)
    • -DNDEBUG (отключает компиляцию assert)
    • -DG_DISABLE_ASSERT (отключает компиляцию assert для gnome и gtk)
    • -momit-leaf-frame-pointer (более мягкий метод, чем -fomit-frame-pointer)
    • -finline-limit=

    Уменьшение размера рабочего массива на 100 КБ, чтобы освободить место в кеше (специально зарезервировал поначалу с избытком, чтобы было что уменьшать ;) не дало результата в отличие от Pentium III с его маленьким кешем.

    Для использования статистики предсказания переходов необходимо предварительно скомпилировать программу с ключом -fprofile-arcs, затем выполнить программу для сбора статистики вероятностей переходов (результаты помещаются в файлы с суффиксами .da в исходной директории, бинарный формат). Затем надо заново скомпилировать с программу с теми же самыми ключами компиляции, только заменив ключ -fprofile-arcs на -fbranch-probabilities. Следует заметить, что оптимальный результат (22937 KSymbols/sec) будет достигаться только при выполнении программы с теми же самыми ключами и с теми же исходными данными. На Pentium III выигрыш был больше.

    Автоматическое распараллеливание: -floop-parallelize-all (4.5) -ftree-parallelize-loops=8 (4.4).