libtool
[Top][All Lists]
Advanced

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

-dlopen self on AIX


From: Albert Chin
Subject: -dlopen self on AIX
Date: Wed, 6 Sep 2006 19:31:32 -0500
User-agent: Mutt/1.5.6i

Does -dlopen self work on AIX? While building epiphany-1.6.5 on this
platform, seems that not all the correct symbols are being exported.
On AIX 5.3, dlopen_self=no. If -dlopen self is specified, then the
following code is executed (from the 1.5 branch):
          if test "$dlself" = yes; then
            $show "generating symbol list for \`$output'"

            test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"

            # Add our own program objects to the symbol list.
            progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | 
$NL2SP`
            for arg in $progfiles; do
              $show "extracting global C symbols from \`$arg'"
              $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
            done
            ...

First, if noinst_LTLIBRARIES *.la files are specified on the
command-line, their symbol list will not be searched because the only
files searched for symbols is "X$objs$old_deplibs". This should really
be "X$objs$libobjs$old_deplibs$old_convenience".

Running the link line and the progfiles change I get:
  $ ../libtool --mode=link xlC_r  -O2 -qro -qroconst -qmaxmem=-1
  -qarch=com -L/opt/TWWfsw/gettext014/lib  -Wl,-brtl
  -o epiphany -R/opt/TWWfsw/firefox15/lib -dlopen
  self epiphany-ephy-main.o libephymain.la
  ../src/bookmarks/libephybookmarks.la ../embed/libephyembedfactory.la
  ../embed/mozilla/libephymozillaembed.la ../embed/libephyembed.la
  ../lib/widgets/libephywidgets.la ../lib/libephymisc.la
  ../lib/egg/libegg.la -L/opt/TWWfsw/firefox15/lib -lgtkembedmoz
  -lxpcom -lxpcom_core -lplds4 -lplc4 -lnspr4 -lpthreads -ldl ...
  rm -f .libs/epiphany.nm .libs/epiphany.nmS .libs/epiphany.nmT
  creating .libs/epiphanyS.c
  generating symbol list for `epiphany'
  extracting global C symbols from `epiphany-ephy-main.o'
  extracting global C symbols from `./.libs/libephymain.a'
  extracting global C symbols from `../src/bookmarks/.libs/libephybookmarks.a'
  extracting global C symbols from `../embed/.libs/libephyembedfactory.a'
  extracting global C symbols from 
`../embed/mozilla/.libs/libephymozillaembed.a'
  extracting global C symbols from `../embed/.libs/libephyembed.a'
  extracting global C symbols from `../lib/widgets/.libs/libephywidgets.a'
  extracting global C symbols from `../lib/.libs/libephymisc.a'
  extracting global C symbols from `../lib/egg/.libs/libegg.a'
  (cd .libs && xlc_r -O2 -qro -qroconst -qmaxmem=-1 -qarch=com -c "epiphanyS.c")
  rm -f .libs/epiphanyS.c .libs/epiphany.nm .libs/epiphany.nmS 
.libs/epiphany.nmT
  xlC_r -O2 -qro -qroconst -qmaxmem=-1 -qarch=com -brtl
  -o epiphany .libs/epiphanyS.o epiphany-ephy-main.o
  -L/opt/TWWfsw/gettext014/lib ./.libs/libephymain.a
  ../src/bookmarks/.libs/libephybookmarks.a
  ../embed/.libs/libephyembedfactory.a
  ../embed/mozilla/.libs/libephymozillaembed.a
  ../embed/.libs/libephyembed.a ../lib/widgets/.libs/libephywidgets.a
  ../lib/.libs/libephymisc.a ../lib/egg/.libs/libegg.a
  -L/opt/TWWfsw/firefox15/lib -lgtkembedmoz -lxpcom -lxpcom_core -lplds4
  -lplc4 -lnspr4 -lpthreads -ldl ...

One of the symbols not being exported is
"language_editor_up_button_clicked_cb". So, let's check out the above:
  $ grep language_editor_up_button_clicked_cb .libs/epiphanyS.c
  {"language_editor_up_button_clicked_cb", (lt_ptr) 
&language_editor_up_button_clicked_cb},
  $ nm -BCpg .libs/epiphanyS.o | grep language_editor_up_button_clicked_cb
         - U language_editor_up_button_clicked_cb
  $ nm -BCpg epiphany | grep language_editor_up_button_clicked_cb
  269185316 T .language_editor_up_button_clicked_cb

But what I want is the following:
  $ nm -BCpg epiphany | grep language_editor_up_button_clicked_cb
  269185316 T .language_editor_up_button_clicked_cb
  536936672 D language_editor_up_button_clicked_cb

-- 
albert chin (address@hidden)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]