Hi Rick!

I see the msg about the configure adjustment in the next release but until
then I have a hack fix at the bottom of this message. Requires no
configure -switches, just add one line to configure.

On Sat, 24 Nov 2001, Rick Stones wrote:

> >Description:
>       If you build the 4.0.0. system from sources on a Pentium (NOT a Pentium
> pro) Linux machine then although configure correctly sets the CPU to 586, it
> still generates Makefiles with -mpentiumpro in them, and you get executables
> that crash and burn with SIGILL. This seems to be general in many
> subdirectories, but is easiest to test in the 'client' subdirectory.
>
> >How-To-Repeat:
>       Red Hat 7.2 clean installed on an Intel Pentium (NOT Pro) machine. Type
> make, try and execute the resulting mysql client and you get a SIGILL almost
> immediately (before you have to type anything).

Using 7.0 with lots of upgrades and -never- had any kind of crash like
that. Using P4 but -do- get all those pentiumpro references. My gcc -v
returns exactly the same as yours.

> >Fix:
>       Using the --with-low-memory --host=pentium --target=pentium options to
> configure gets you round the fault by removing the -mpentiumpro CFLAGS from
> the Makefiles, but I'm not sure about a proper fix.

I tried those switches, plus rm -f config.cache config.log, and get a
weird response. Makefile says:

build_alias = pentium
build_triplet = i586-pc-none
host_alias = pentium
host_triplet = i586-pc-none
target_alias = pentium
CFLAGS = -g -O -DDBUG_ON -DSAFE_MUTEX   -mcpu=pentiumpro -march=pentiumpro
-DCPU=pentiumpro

I don't know enough about 'compiler management' to have any idea how this
happens or what it really means.

Another oddity. 'set |grep HOSTTYPE' returns HOSTTYPE=i386, but dmesg
|grep CPU returns

CPU: L1 I Cache: 8204K  L1 D Cache: 8K
CPU:               Intel(R) Pentium(R) 4 CPU 1500MHz
CPU: Intel               Intel(R) Pentium(R) 4 CPU 1500MHz stepping 0a

...and /proc/cpuinfo confirms that.

In any case I'm poking through configure. Past cpu_set I can't see where
it differentiates between one cpu and another. It -seems- to say
-mcpu=$ac_arg but it also doesn't seem to work right.

OK, here's a BLOODY hack that simply makes it work.

CAUTION! No guarantees! I am -not- a script-geek! It worked for me but
have no idea how it might react elsewhere.

First, you must make sure all Makefiles are gone. As mentioned below, make
distclean doesn't do that correctly. Also rm -f the config files mentioned
above. I strongly suggest a new raw source untar.

In configure, at line 9832, is 'for ac_arg in $cpu_set;'. (Just before
that is where the cpu is picked.) Just -before- the 'for ac_arg..' line
put in:

cpu_set="pentium";

That essentially negates anything the script had already determined.

** Niglet: make distclean does not remove a couple of Makefiles that still
have pentiumpro in them.

** Suggest: In mysql-test/mysql-test-run.sh, I think

$ECHO "Aborting. To continue, re-run with '--force'."

should be

$ECHO "Aborting. To continue, re-run with 'cd mysql-test ;
./mysql-test-run --force'."

It's in the Docs but that message is a tad misleading because it doesn't
work directly from the root make.

Have a :) day!

jb

-- 
jim barchuk
[EMAIL PROTECTED]





---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to