[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- -dlopen self on AIX,
Albert Chin <=