MySQL port building solution: -O is required

Clifton Royston cliftonr at tikitechnologies.com
Wed May 11 12:35:38 PDT 2005


  Here is the answer to the problem I was wrestling with a couple weeks
ago:

  /usr/ports/databases/mysql41-server and 
  /usr/ports/databases/mysql40-server 
do *not* build on 4.x systems unless *some* level of optimization is
turned on.

  'CFLAGS='  fails on 4.x releases;
  'CFLAGS=-O' works. (as does -O -pipe and probably higher levels.)

  Not tested on 5-STABLE.

  I'm guessing that the machines where ports building is tested have
'-O -pipe' or similar as a minimum setting.  However /etc/make.conf has
no default setting for CFLAGS, so with the "out of box" default
settings of everything the build of this port will consistently fail.

  The problem appears to be, from some cursory digging through the
sources, that a number of MySQL functions including MySQL's internal
interfaces to the thread libraries are defined only via inlining if the
OS *platform* is known to support it, but inlining is not actually
enabled (at least in GCC 2.95) unless -O or better is set.

  I tracked this down once I realized that the key difference between
the system where I could build it and the system where I couldn't was
that the former's /etc/make.conf was heavily customized, and the
latter's was untouched except for the variables set by "use.perl ports".

  I'll file a pr on this, as well as the necessary tweaking on my own
system.

  -- Clifton

-- 
          Clifton Royston  --  cliftonr at tikitechnologies.com 
         Tiki Technologies Lead Programmer/Software Architect
"I'm gonna tell my son to grow up pretty as the grass is green
And whip-smart as the English Channel's wide..."
                                            -- 'Whip-Smart', Liz Phair



More information about the freebsd-questions mailing list