Сборка MySQL с патчами pgcc

Скачиваем нужные исходники:

# wget http://www.goof.com/pcg/data/source/gcc-2.95.2.1-pgcc-2.95.2.1.diff.gz
# cd. .
# wget ftp://linuxforum.net/ftp.gcc.gnu.org/gcc/gcc-2.95.2.1.tar.gz
# tar xvpzf gcc-2.95.2.1.tar.gz
# cd gcc-2.95.2.1
# mv. ./../gcc-pgcc-patch/gcc-2.95.2.1-pgcc-2.95.2.1.diff.gz. /

Применяем патч pgcc:

# gunzip <gcc-2.95.2.1-pgcc-2.95.2.1.diff.gz |patch -p1 -E
# find. -name «*.rej» -print
# find. -name «*.orig» | xargs rm
# find. -name «*.orig» -print

Для компиляции pgcc потребуются следующие вещи:

gperf
autoconf
bison
flex

Поставьте их yum'ом, apt-get'ом или любым удобным для вас способом.
Создадим отдельную директорию и будем конфигурить оттуда (как завещали отцы):

# cd. .
# mkdir objdir
# cd objdir/
#. ./gcc-2.95.2.1/configure --enable-languages=c,c++ --disable-threads
# make all-gcc install

Note: --disable-threads употреблен здесь по той причине что pgcc не требуется библиотека libstdc++ 
Установка успешно завершена. 


Установка MySQL.
Скачиваем/распаковываем сорсы нового MySQL'я (я использовал 4.1.22):

# cd. ./../../
# mkdir mysql
# cd mysql/
# wget http://mysql.org/get/Downloads/MySQL-4.1/mysql-4.1.22.tar.gz/from/http: //mysql.mix.su/
# tar xvpzf mysql-4.1.22.tar.gz
# cd mysql-4.1.22

Кофигурим с CFLAGS:

# CFLAGS= «-O3 -fomit-frame-pointer» \
CXX=gcc \
CXXFLAGS= «-O3 -fomit-frame-pointer \
-felide-constructors -fno-exceptions -fno-rtti» \
./configure --enable-assembler --disable-shared \
--with-mysqld-ldflags= «-all-static» --with-client-ldflags= «-all-static» \
--with-unix-socket-path=/tmp/mysql.sock --prefix=/usr

Проверяем установились ли CXX и CXXFLAGS так, как нам нужно:

# cat Makefile | grep CXX

Должно быть CXX = gcc, в противном случае правим руками Makefile.

# make

Если make завершился с ошибкой о том, что он не может найти libgdc++, значит CXX не установлен в «gcc», либо gcc компилировался с --enable-threads.

# make install