SUMMARY: problems compiling MySQL under 4.0D

From: Ian 'Ivo' Veach <ivo_at_scs.unr.edu>
Date: Mon, 13 Mar 2000 11:50:38 -0800 (PST)

Problem: Problems compiling MySQL 3.22.x on a 4.0D box

Solution: I used Ann Cantelow's suggestion first, and it seems to work
just dandy (thanks, Ann!): Get newest version on GNU make and use the
following:
  env CC="cc -pthread" CFLAGS="-I./include -DDONT_USE_THR_ALARM" CXX=gcc \
  CXXFLAGS="-O3 -DDONT_USE_THR_ALARM" ./configure --with-low-memory \
  --with-named-thread-libs="-lpthread -lmach -lexc"

The _complete_ combo of options seemed to get the job done. Douglas also
reported success. Both responses are included below.

Thanks much to:
        Ann Cantelow
        Douglas C. Stephens


I love this list,
________________________________________________________________________
Ian 'Ivo' Veach, ivo_at_nevada.edu UCCSN System Computing Services
http://www.nevada.edu/~ivo postmaster/webmaster/sysadmin
________________________________________________________________________


========================================================================
ORIGINAL PROBLEM
========================================================================

Sorry this is not strictly a tru64 question, but has anyone been
successful in compiling MySQL 3.22.32 under DU 4.0D?

I've been having a heck of a time doing so, both with Digital/Compaq's cc
(5.6-084) and with gcc (2.8.1 and 2.95.2). Nothing from the MySQL mailing
lists has been helpful in completing this task.
        I overcame the parsing error with /usr/include/c_asm.h, and now it
is giving me issues with threads. I don't know if this is related to DEC
threads or not (I suspect not, but don't know whether
pthread_condattr_default or pthread_mutexattr_default are supposed to be
declared in MySQL source or DEC source), but I'm not having the problems
on other platforms:

my_pthread.c: In function `my_pthread_mutex_init':
my_pthread.c:381: `pthread_mutexattr_default' undeclared (first use in
this function)
my_pthread.c:381: (Each undeclared identifier is reported only once
my_pthread.c:381: for each function it appears in.)
my_pthread.c: In function `my_pthread_cond_init':
my_pthread.c:391: `pthread_condattr_default' undeclared (first use in this
function)
*** Exit 1
Stop.

        I've tried various compile flags mentioned by MySQL lists, but
nothing has resulted in success. A DEC success story or pointers would be
helpful! Thanks!


========================================================================
RESPONSE
========================================================================

Hi. I have had success with 3.22.30 [sic]. It's working great for us and
very stable.

Those thread errors look familiar. I got those, I believe, on a path I
ended up not taking.

This config string did it for me, with cc for CC and gcc for CXX:

-----------
env CC="cc -pthread" CFLAGS="-I./include -DDONT_USE_THR_ALARM" CXX=gcc \
  CXXFLAGS="-O3 -DDONT_USE_THR_ALARM" ./configure --with-low-memory \
  --with-named-thread-libs="-lpthread -lmach -lexc"
-----------

You may not need the DONT_USE_THR_ALARM or --with-low-memory. Those were
things I had added when I was struggling with it and grasping at every bit
of information in the manual I could find.

Note that -lc is not in the --with-named-thread-libs argument. This took
me forever to find! The manual has it there, but you get errors with it
when gcc gets confused and forgets functions like _exit and _fflush that
are in it. lc is already included by default so you don't need it in that
list of thread libs.

Here's the second big problem I struggled with: I compiled it first under
gcc version 2.8.1. The compile went fine, but the server was very
unstable, crashing frequently. When I upgraded to gcc version 2.95.2 and
recompiled mysql, that problem was fixed. Our mysql up time now matches
the machine up time and it never complains. We have a light load with
occasional moderate surges.

Also, I saw in the mysql mailing list just this morning that there was
posted the location of a 3.23 beta version binary for us. Let me know if
you'd like to know where that is, and I'll look it up. I kept the post.

Good luck!! I believe I know what you're going through! I hope this
helps.

========================================================================
RESPONSE
========================================================================

Hi. I just remembered that there was a brief problem with gcc 2.95.2.
If you run into a notification of a compiler bug, look in the manual.
It's covered there. Their solution works fine. It consists of going down
to the sql directory and compiling one program by hand with a different -O
optimization flag, then backing up and restarting the make.

========================================================================
RESPONSE
========================================================================

I was able to get MySql 3.22.30 to compile and run in the following
environment. Note that I had no compile-time errors, though there were
a plethora of the usual warnings, and that I need to make no changes to
shipped source to fix any errors.

OS Revision:
-----------
Digital UNIX V4.0E (Rev. 1091); Fri Jun 18 15:48:28 CDT 1999

Patchlevel:
----------
duv40eas00001-19990202

Digital Software Packages:
-------------------------
CXLLIBA435 DEC C++ Class Archive Libraries
CXLSHRDA435 DEC C++ Class Shared Libraries
CXXBASE620 Compaq C++ Version 6.2 for Tru64 UNIX Systems
CXXHTML620 Compaq C++ HTML documentation
CXXLIB620 Compaq C++ Run-Time Library (libcxx) for UNIX V4.0F and earlier
CXXOLD620 Compaq C++ V5.7 (-oldcxx) compiler
OSFCMPLRS435 Compiler Back End (Software Development)
OSFLIBA435 Static Libraries (Software Development)
OSFPGMR435 Standard Programmer Commands (Software development)
OSFSDE435 Software Development Tools and Utilities(Software development)

Third-party Software Packages:
-----------------------------
security/tcp_wrappers_7.6
gnu/patch-2.5
gnu/flex-2.5.4a
gnu/gdbm-1.7.3
gnu/bison-1.25
gnu/tar-1.12
gnu/make-3.77
perl/perl-5.005_03

Configure wrapper script:
------------------------
#!/bin/sh
#
PATH="/usr/local/bin:/usr/bin:/usr/bin/X11:/sbin:/usr/sbin:."
export PATH
CC="cc -pthread"
CFLAGS="-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all -arch host"
CXX="cxx -pthread"
CXXFLAGS="-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all -arch host"
export CC CFLAGS CXX CXXFLAGS
exec ./configure \
        --prefix=/usr/local/mysql \
        --with-low-memory \
        --enable-large-files \
        --with-mysqld-ldflags=-all-static \
        --disable-shared \
        --with-libwrap \
        --with-mysqld-user=daemon \
        --with-named-thread-libs="-lmach -lexc -lc"

Make wrapper script:
-------------------
#!/bin/sh
#
PATH="/usr/local/bin:/usr/bin:/usr/bin/X11:/sbin:/usr/sbin:."
export PATH
exec make

========================================================================


cheers and thanks,
________________________________________________________________________
Ian 'Ivo' Veach, ivo_at_nevada.edu UCCSN System Computing Services
http://www.nevada.edu/~ivo postmaster/webmaster/sysadmin
________________________________________________________________________
Received on Mon Mar 13 2000 - 20:20:47 NZDT

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:40 NZDT