Re: Problem linking MySQL 4.1.11 via FreeBSD 4.10 ports

From: Clifton Royston (cliftonr_at_tikitechnologies.com)
Date: 04/20/05

  • Next message: Clifton Royston: "Re: Problem linking MySQL 4.1.11 via FreeBSD 4.10 ports"
    Date: Tue, 19 Apr 2005 17:22:29 -1000
    To: freebsd-questions@freebsd.org
    
    

    On Tue, Apr 19, 2005 at 02:02:39PM -1000, Clifton Royston wrote:
    > When I try to make the current port of the MySQL 4.1 server under
    > FreeBSD 4.10, I get a huge stream of "undefined reference" errors at
    > the link step for mysqld. ....

    More factoids - the same error continues to happen:

      * After rebuilding libtool 1.5.10 to make sure it's OK, as suggested
    to me offlist.

      * After rebuilding the linuxthreads port to make sure the library is
    OK.

      * After trying the same with MySQL 4.0 (mysql40-server) to make sure
    it's not a ports problem specific to 4.1.

      I started doing a bunch of find ... | xargs grep 'mutex_enter_func'
    and the like for the undefined symbols, and it appears that at least
    some of the problematic functions I'm looking at are defined internal
    to MySQL's libraries, and are intended to be inlined. However clearly
    they can't be succeeding, or they wouldn't be showing up as external
    references to the link phase.

      The function mutex_enter_func and some similar ones, for instance,
    are defined in files with a ".ic" extension - C files with heavy
    inlining of assembler - and they are defined with type "UNIV_INLINE".
    In innobase/include/univ.i this shows up thus:

    #if (!defined(UNIV_DEBUG) && !defined(INSIDE_HA_INNOBASE_CC) && !defined(UNIV_MUST_NOT_INLINE))
    /* Definition for inline version */

    #ifdef __WIN__
    #define UNIV_INLINE __inline
    #else
    /* config.h contains the right def for 'inline' for the current compiler */
    #if (__GNUC__ == 2)
    #define UNIV_INLINE extern inline
    #else
    /* extern inline doesn't work with gcc 3.0.2 */
    #define UNIV_INLINE static inline
    #endif
    #endif

    #else
    /* If we want to compile a noninlined version we use the following macro
    definitions: */

    #define UNIV_NONINL
    #define UNIV_INLINE

    #endif /* UNIV_DEBUG */
     
      ... so I can see that gcc 2.95 and gcc 3.3 would be handled quite
    differently by these conditional defines. I am starting to think this
    might be a toolchain issue, where the ports have gotten out of sync
    with what the default build environment is for 4.1.

      Can anyone please verify for me that the mysql40-server and/or
    mysql41-server ports actually *do* build under gcc 2.95.4 as installed
    on a fresh-out-of-box 4.x system?

      I'd really rather not have to upgrade the compiler toolchain just to
    build this port.

      -- Clifton

    -- 
              Clifton Royston  --  cliftonr@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
    _______________________________________________
    freebsd-questions@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-questions
    To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"
    

  • Next message: Clifton Royston: "Re: Problem linking MySQL 4.1.11 via FreeBSD 4.10 ports"

    Relevant Pages

    • Re: Which PIC18 C Compiler?
      ... don't know if there is a gcc port there), and various devices from the far ... embedded word, fall flat on their faces, then blame the compiler for not ... implementing the 'standard'. ...
      (comp.arch.embedded)
    • Re: Using C to program the 8051 family. C for small processors
      ... > times with usage restrictions) to port C to new target platforms. ... > or limited resource targets. ... I've never heard of the portable C compiler, but GCC is definitely ...
      (comp.arch.embedded)
    • Re: Which PIC18 C Compiler?
      ... port is perfectly good, but based on a rather old version of gcc and therefore missing many recent improvements), some Freescale devices, and various devices from the far east. ... It is always amusing watching language 'gurus' cut their teeth in the embedded word, fall flat on their faces, then blame the compiler for not implementing the 'standard'. ...
      (comp.arch.embedded)
    • Re: ISA Server detected an all port scan attack
      ... My comments are inline. ... Someone's doing a port scan on your machine...there's nothing you can do to ... > I can do a whois, but that doesnt even tell me much on who they are. ...
      (microsoft.public.windows.server.sbs)
    • Re: Porting GCC to AIX 3.2 RS6000 530H
      ... > Was wondering if anyone has managed to port the GNU GCC Compiler onto a ... GCC is working on both those. ...
      (comp.unix.aix)