Description:
Last year I set up an elderly Mac as a server. It has been running Apache 1.3.27, PHP 4.3.1, and
MySQL 3.23.52 without problems. I am now trying to upgrade to MySQL 4.0.14 and cannot get
through the compilation.
The exact hardware is: Mac Quadra 630 (Apple's business machine from 1994), 33 MHz Motorola
68040 processor (with integrated FPU), 36 MB RAM, 6 GB HD (65% free)
The operating system is Debian Linux, the only Unix-like operating system that works on this
hardware, to the best of my research and knowledge. Debian has a nice package manager but I
have been largely unable to make use of it because (understandably) nobody pre-compiles
binaries for m68k anymore. But I don't mind compiling things myself from source, and have had
little trouble doing so thus far. Apache and PHP have compiled without errors for several versions,
and MySQL 3.23.52 also compiled and installed just fine, with InnoDB added in. MySQL 4.0.14 is
giving me trouble though, seemingly regardless of ./configure setting. (I've tried 4 variants,
described below.) The output, after 5 hours of deep though, is always this:
item_sum.cc: In method `void Item_sum_hybrid::min_max_update_int_field(int)':
item_sum.cc:764: Internal compiler error:
item_sum.cc:764: internal error--unrecognizable insn:
(insn 327 115 117 (set (reg/v:QI 0 %d0)
(gt:QI (reg/v:DI 3 %d3)
(reg/v:DI 1 %d1))) -1 (nil)
(nil))
Here's some output from the 3.23.52 version of mysqlbug (since I can't yet get the 4.0.14 version
compiled):
System: Linux quadra 2.2.20 #1 Mon Nov 26 09:26:36 GMT 2001 m68k unknown
Architecture: m68k
Some paths: /usr/local/bin/perl /usr/bin/make /usr/bin/gcc /usr/bin/cc
GCC: Reading specs from /usr/lib/gcc-lib/m68k-linux/2.95.4/specs
gcc version 2.95.4 20011002 (Debian prerelease)
Compilation info: CC='gcc' CFLAGS='' CXX='g++' CXXFLAGS='' LDFLAGS=''
LIBC:
lrwxrwxrwx 1 root root 13 Nov 20 2002 /lib/libc.so.6 -> libc-2.2.5.so
-rwxr-xr-x 1 root root 952156 Sep 18 2002 /lib/libc-2.2.5.so
-rw-r--r-- 1 root root 2230110 Sep 18 2002 /usr/lib/libc.a
-rw-r--r-- 1 root root 178 Sep 18 2002 /usr/lib/libc.so
-rw-r--r-- 1 root root 673924 Jan 15 2002 /usr/lib/libc-client.so.2001
Configure command: ./configure --prefix=/usr/local/mysql --with-innodb
How to repeat:
Based on recommendations in the MySQL manual, both the section on compiling and the one on
how the pre-built binaries were compiled, I tried four different sets of ./configure parameters, but
the result was the same in each case. Here's what I tried:
CFLAGS="-O3 -m68040" CXX=gcc CXXFLAGS="-O3 -m68040 -felide-constructors -fno-
exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-local-infile --without-
debug
./configure --prefix=/usr/local/mysql
./configure --prefix=/usr/local/mysql --with-low-memory
CFLAGS="-O3 -m68040" CXX=gcc CXXFLAGS="-O3 -m68040 -felide-constructors -fno-
exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --
enable-local-infile --with-low-memory --without-debug --enable-assembler --enable-thread-
safe-client --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
In all 4 cases, the ./configure runs for about ten minutes and reports no errors. There are two
warnings but I don't understand them and they don't seem relevant. I then run...
nohup make &
...and 5 hours later I get this at the end of the nohup.out file:
source='item.cc' object='item.o' libtool=no \
depfile='.deps/item.Po' tmpdepfile='.deps/item.TPo' \
depmode=gcc /bin/sh ../depcomp \
gcc -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/usr/local/mysql\"" -DDATADIR="\"/usr/
local/mysql/var\"" -DSHAREDIR="\"/usr/local/mysql/share/mysql\"" -DHAVE_CONFIG_H -I. -I. -I..
-I../innobase/include -I./../include -I./../regex -I. -I../include -I. -O3 -DDBUG_OFF -O3 -
m68040 -felide-constructors -fno-exceptions -fno-rtti -fno-implicit-templates -fno-exceptions
-fno-rtti -c -o item.o `test -f item.cc || echo './'`item.cc
source='item_sum.cc' object='item_sum.o' libtool=no \
depfile='.deps/item_sum.Po' tmpdepfile='.deps/item_sum.TPo' \
depmode=gcc /bin/sh ../depcomp \
gcc -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/usr/local/mysql\"" -DDATADIR="\"/usr/
local/mysql/var\"" -DSHAREDIR="\"/usr/local/mysql/share/mysql\"" -DHAVE_CONFIG_H -I. -I. -I..
-I../innobase/include -I./../include -I./../regex -I. -I../include -I. -O3 -DDBUG_OFF -O3 -
m68040 -felide-constructors -fno-exceptions -fno-rtti -fno-implicit-templates -fno-exceptions
-fno-rtti -c -o item_sum.o `test -f item_sum.cc || echo './'`item_sum.cc
item_sum.cc: In method `void Item_sum_hybrid::min_max_update_int_field(int)':
item_sum.cc:764: Internal compiler error:
item_sum.cc:764: internal error--unrecognizable insn:
(insn 327 115 117 (set (reg/v:QI 0 %d0)
(gt:QI (reg/v:DI 3 %d3)
(reg/v:DI 1 %d1))) -1 (nil)
(nil))
make[4]: *** [item_sum.o] Error 1
make[4]: Leaving directory `/usr/src/mysql-4.0.14/sql'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/usr/src/mysql-4.0.14/sql'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/src/mysql-4.0.14/sql'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/mysql-4.0.14'
make: *** [all] Error 2
Suggested fix:
Unknown