Re: New release of GTK+ libraries (1.3.15). Please test!



On Mon, Feb 25, 2002 at 11:59:43AM -0500, Owen Taylor wrote:
> 
> "Padraig O'Briain" <Padraig Obriain sun com> writes:
> 
> > I have used -no-undefined in LDFLAGS in ATK and GAIL to catch
> > problems (mostly typos) at compile time rather than run time.
> > 
> > One could omit -no-undefined, I suppose.
> 
> It sounds like the right fix, at least short term, is to remove
> -no-undefined from ATK, since:
> 
>  - It's a useful debugging tool, but not actually needed.
> 
>  - It clearly causes problems for some combinations of 
>    operating system and compiler.
> 
> Long term, some libtool fix may be the right approach.

This *is* fixed in libtool. However, you need v1.4.2 for this fix.
Specifically, here's the section of code that removes -no-undefined as
you want above:
  solaris*)
    # gcc --version < 3.0 without binutils cannot create self contained
    # shared libraries reliably, requiring libgcc.a to resolve some of
    # the object symbols generated in some cases.  Libraries that use
    # assert need libgcc.a to resolve __eprintf, for example.  Linking
    # a copy of libgcc.a into every shared library to guarantee resolving
    # such symbols causes other problems:  According to Tim Van Holder
    # <tim van holder pandora be>, C++ libraries end up with a separate
    # (to the application) exception stack for one thing.
    no_undefined_flag=' -z defs'
    if test "$GCC" = yes; then
      case `$CC --version 2>/dev/null` in
      [[12]].*)
        cat <<EOF 1>&2

*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
*** create self contained shared libraries on Solaris systems, without
*** introducing a dependency on libgcc.a.  Therefore, libtool is disabling
*** -no-undefined support, which will at least allow you to build shared
*** libraries.  However, you may find that when you link such libraries
*** into an application without using GCC, you have to manually add
*** \`gcc --print-libgcc-file-name\` to the link command.  We urge you to
*** upgrade to a newer version of GCC.  Another option is to rebuild your
*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.

EOF
        no_undefined_flag=
        ;;
      esac
    fi

-- 
albert chin (china thewrittenword com)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]