This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

AIX 5.1 and g++ 3.3


I've built GCC 3.3 on AIX 4.3.2 and AIX 5.1 and tried to build
gperf-3.0 against it. Building gperf succeeded on 4.3.2 but I ran into
an odd error on 5.1. We build GCC twice, once to /opt/TWWfsw/gcc33 and
again to /opt/TWWfsw/gcc33r. The second build installs only the
runtime libraries to /opt/TWWfsw/gcc33r while /opt/TWWfsw/gcc33 is a
full install. The idea behind this is that we -blibpath the runtime
library directory so the full GCC build isn't needed as a dependency
for programs that link against it.

On AIX 5.1, running the final gperf binary gave linker errors about
unresolved symbols. Running nm on libstdc++.a showed the problem:
  $ cd /opt/build/gperf-3.0/src
  $ ./gperf -h
  exec(): 0509-036 Cannot load program ./gperf because of the following
  errors:
          0509-130 Symbol resolution failed for gperf because:
          0509-136   Symbol _GLOBAL__F__GLOBAL__I__ZNSt21__ctype_abstract_baseIcED0Ev_opt_build_gcc_3.3_libstdc___v3_src_locale_inst.cchvgpjb (number 46) is not exported from

  $ cd /opt/TWWfsw/gcc33/lib
  $ nm libstdc++.a | grep _GLOBAL__F__GLOBAL__I__ | \
    grep ctype_abstract_base | \
    grep opt_build_gcc_3.3_libstdc___v3_src_locale_inst.cc
  _GLOBAL__F__GLOBAL__I__ZNSt21__ctype_abstract_baseIcED0Ev_opt_build_gcc_3.3_libstdc___v3_src_locale_inst.cchvgpjb D   536882124
  _GLOBAL__F__GLOBAL__I__ZNSt21__ctype_abstract_baseIcED0Ev_opt_build_gcc_3.3_libstdc___v3_src_locale_inst.cchvgpjb D      102860

  $ cd /opt/TWWfsw/gcc33r/lib
  $ nm libstdc++.a | grep _GLOBAL__F__GLOBAL__I__ | \
    grep ctype_abstract_base | \
    grep opt_build_gcc_3.3_libstdc___v3_src_locale_inst.cc
  _GLOBAL__F__GLOBAL__I__ZNSt21__ctype_abstract_baseIcED0Ev_opt_build_gcc_3.3_libstdc___v3_src_locale_inst.ccJEqnjb D   536882124
  _GLOBAL__F__GLOBAL__I__ZNSt21__ctype_abstract_baseIcED0Ev_opt_build_gcc_3.3_libstdc___v3_src_locale_inst.ccJEqnjb D      102860

The difference is the final 6 characters of the symbol. Is it odd that
a rebuild with a different installation prefix would have the final 6
characters different?

-- 
albert chin (china@thewrittenword.com)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]