This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
AIX 5.1 and g++ 3.3
- From: Albert Chin <gcc at lists dot thewrittenword dot com>
- To: gcc at gcc dot gnu dot org
- Date: Thu, 29 May 2003 22:54:24 -0500
- Subject: AIX 5.1 and g++ 3.3
- Reply-to: gcc at gcc dot gnu dot org
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)