|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
|||||||||||||||||||||||||||||||||||||||||||||||
2007年05月04日(金) 旧暦 [n年日記] [更新:"2007/05/06 01:33:47"]#1 [Emacs] Shared object "libXmu.so.6" not found
emacs で make bootstrap すると、次のように止まる件について少しだけ調べて見た
gcc -nostartfiles `echo -R/usr/X11/lib | sed -e 's/-R/-Wl,-rpath,/'` -Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib -Wl,-z,nocombreloc -Wl,-znocombreloc -L/usr/X11/lib -o temacs pre-crt0.o /usr/lib/crt0.o /usr/lib/crti.o /usr/lib/crtbegin.o dispnew.o frame.o scroll.o xdisp.o xmenu.o window.o charset.o coding.o category.o ccl.o cm.o term.o xfaces.o xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o emacs.o keyboard.o macros.o keymap.o sysdep.o buffer.o filelock.o insdel.o marker.o minibuf.o fileio.o dired.o filemode.o cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o alloc.o data.o doc.o editfns.o callint.o eval.o floatfns.o fns.o print.o lread.o abbrev.o syntax.o unexelf.o bytecode.o process.o callproc.o region-cache.o sound.o atimer.o doprnt.o strftime.o intervals.o textprop.o composite.o md5.o tparam.o lastfile.o gmalloc.o ralloc.o vm-limit.o widget.o mktime.o ../lwlib/liblw.a -L/usr/X11/lib -lXaw3d -lXmu -lXt -lSM -lICE -lXext -ltiff -ljpeg -lpng -lz -lm -lungif -lXpm -lX11 -lossaudio -ltermcap -lm -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.oldd して見ると、 一部で見つかって一部で見つかっていない
ttyp3:makoto@bologna 10:35:44/070504(...cvs-work/emacs-work)> ldd src/temacs |grep Xmu
-lXmu.6 => not found
-lXmu.6 => /usr/X11/lib/libXmu.so.6
ttyp3:makoto@bologna 10:35:55/070504(...cvs-work/emacs-work)>
次のように
ktrace
で見て見る
129 10:26 ktrace src/temacs 130 10:26 kdump ktrace.out | less
12663 1 temacs CALL open(0x7fffd058,0,0x7fffd06c)
12663 1 temacs NAMI "/usr/X11/lib/libc.so.12"
12663 1 temacs RET open -1 errno 2 No such file or directory
12663 1 temacs CALL open(0x7fffd058,0,0x7fffd06c)
12663 1 temacs NAMI "/usr/pkg/lib/libc.so.12"
12663 1 temacs RET open -1 errno 2 No such file or directory
12663 1 temacs CALL open(0x7fffd058,0,0x7fffd070)
12663 1 temacs NAMI "/usr/local/lib/libc.so.12"
12663 1 temacs RET open -1 errno 2 No such file or directory
12663 1 temacs CALL open(0x7fffd058,0,0x7fffd068)
12663 1 temacs NAMI "/usr/lib/libc.so.12"
12663 1 temacs RET open 3
12663 1 temacs CALL __fstat30(3,0x7fffcfb8)
12663 1 temacs RET __fstat30 0
12663 1 temacs CALL mmap(0,0x1000,1,1,3,0,0,0)
12663 1 temacs RET mmap 1100664832/0x419ad000
12663 1 temacs CALL munmap(0x419ad000,0x1000)
12663 1 temacs RET munmap 0
12663 1 temacs CALL mmap(0,0x11e000,5,0x10000002,3,0,0,0)
12663 1 temacs RET mmap 1105133568/0x41df0000
12663 1 temacs CALL mmap(0x41ef2000,0xa000,7,0x12,3,0,0,0xf2000)
12663 1 temacs RET mmap 1106190336/0x41ef2000
12663 1 temacs CALL mmap(0x41efc000,0x12000,7,0x1012,0xffffffff,0,0,0)
12663 1 temacs RET mmap 1106231296/0x41efc000
12663 1 temacs CALL mprotect(0x41ee2000,0x10000,0)
12663 1 temacs RET mprotect 0
12663 1 temacs CALL close(3)
12663 1 temacs RET close 0
12663 1 temacs CALL open(0x7fffd058,0,0x7fffd070)
12663 1 temacs NAMI "/usr/pkg/lib/libXmu.so.6"
12663 1 temacs RET open -1 errno 2 No such file or directory
12663 1 temacs CALL open(0x7fffd058,0,0x7fffd06c)
12663 1 temacs NAMI "/usr/lib/libXmu.so.6"
12663 1 temacs RET open -1 errno 2 No such file or directory
12663 1 temacs CALL write(2,0x7fffd5b8,0x25)
12663 1 temacs GIO fd 2 wrote 37 bytes
"Shared object \"libXmu.so.6\" not found"
ある共有ライブラリを呼出した時に、その中から更に Xmu を参照している時に、rpath_link の設定
が不充分なために問題が起きている、という気がする。
cvs -d `cat emacs-current/CVS/Root` co -D 2006-06-01 emacsこれでも同じだった。という訳で emacs 側ではなさそう。 上の gcc の引数に出て来る次の部分 `echo -R/usr/X11/lib | sed -e 's/-R/-Wl,-rpath,/'`は src/s/netbsd.h の部分に由来するけれど、この部分の調整が不充分という理解をしている。 しかし、少し 変更して見た が変化なし。
( つっこみ )
#2 [Emacs][pkgsrc] つっこみをいただいたので、
調べて見ました。
「/usr/pkg/lib/libXaw3d.so.8 の作り方が不適切」らしいです。
@ x11/Xaw3d で make:+ cc -o ./libXaw3d.so.6.1~ -shared -Wl,-rpath,/usr/pkg/lib -Wl,-soname,libXaw3d.so.6 AllWidgets.o AsciiSink.o AsciiSrc.o AsciiText.o Box.o Command.o Dialog.o Form.o Grip.o Label.o Layout.o List.o MenuButton.o Paned.o Panner.o Porthole.o Repeater.o Scrollbar.o Simple.o SimpleMenu.o Sme.o SmeBSB.o SmeLine.o SmeThreeD.o StripChart.o Text.o TextSink.o TextSrc.o TextAction.o TextPop.o TextTr.o ThreeD.o Tip.o Toggle.o Tree.o Vendor.o Viewport.o Xaw3dP.o XawInit.o laygram.o laylex.o MultiSrc.o MultiSink.o XawIm.o XawI18n.o -L/usr/pkg/lib -lXmu -lXt -lSM -lICE -lXext -lX11 -lXt -lSM -lICE -lXext -lX11
ttyp3:makoto@bologna 9:43:34/070505(...x11/Xaw3d)> ldd ./work.bologna/xc/lib/Xaw3d/libXaw3d.so.6
./work.bologna/xc/lib/Xaw3d/libXaw3d.so.6:
-lXmu.6 => not found
-lXt.6 => not found
-lSM.6 => not found
-lICE.6 => not found
-lXext.6 => not found
-lX11.6 => not found
ttyp3:makoto@bologna 9:43:48/070505(...x11/Xaw3d)>
xpkgwedge.def
ttyp3:makoto@bologna 10:09:17/070505(...x11/Xaw3d)> grep rpath /usr/pkg/lib/X11/config/xpkgwedge.def #define SharedLibraryLoadFlags -shared -Wl,-rpath,$(USRLIBDIRPATH) #define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH) #define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH) -Wl,-rpath-link,$(BUILDLIBDIR)USRLIBDIRPATH
ttyp3:makoto@bologna 10:03:21/070505(...x11/Xaw3d)> find . -type f -exec grep USRLIBDIRPATH /dev/null '{}' \;
./work.bologna/xc/lib/Xaw3d/Makefile: EXTRA_LOAD_FLAGS = -Wl,-rpath,$(USRLIBDIRPATH)
./work.bologna/xc/lib/Xaw3d/Makefile: USRLIBDIRPATH = $(USRLIBDIR):$(XPROJECTROOT)/lib
ttyp3:makoto@bologna 10:03:29/070505(...x11/Xaw3d)>
XPROJECTROOT
ttyp3:makoto@bologna 10:02:52/070505(...x11/Xaw3d)> find . -type f -exec grep XPROJECTROOT /dev/null '{}' \;
./work.bologna/xc/lib/Xaw3d/Makefile: TOP_X_INCLUDES = -I$(XPROJECTROOT)/include
./work.bologna/xc/lib/Xaw3d/Makefile: XPROJECTROOT = $(X11_ROOT)
./work.bologna/xc/lib/Xaw3d/Makefile: XENVLIBDIR = $(XPROJECTROOT)/lib
./work.bologna/xc/lib/Xaw3d/Makefile: USRLIBDIRPATH = $(USRLIBDIR):$(XPROJECTROOT)/lib
./work.bologna/xc/lib/Xaw3d/Makefile: LDPRELIBS = -L$(USRLIBDIR) -L$(XPROJECTROOT)/lib
./work.bologna/xc/lib/Xaw3d/Makefile: LDPOSTLIBS = -L$(XPROJECTROOT)/lib
X11_ROOT
ttyp3:makoto@bologna 10:03:29/070505(...x11/Xaw3d)> find . -type f -exec grep X11_ROOT /dev/null '{}' \;
./work.bologna/xc/lib/Xaw3d/Makefile:X11_ROOT = /usr/X11
./work.bologna/xc/lib/Xaw3d/Makefile: XPROJECTROOT = $(X11_ROOT)
./work.bologna/xc/lib/Xaw3d/Makefile: CONFIGDIR = $(X11_ROOT)/libdata/config
ttyp3:makoto@bologna 10:05:06/070505(...x11/Xaw3d)>
試しに、make した後で、Makefile を次のように変更し、
- SHLIBLDFLAGS = -shared -Wl,-rpath,$(USRLIBDIR) + SHLIBLDFLAGS = -shared -Wl,-rpath,/usr/X11/lib次のように make すると、 386 11:32 vi work.bologna/xc/lib/Xaw3d/Makefile 387 11:32 rm work.bologna/.build_done 388 11:32 touch work.bologna/xc/lib/Xaw3d/TextTr.o 389 11:33 make次のように ldd が解決する
ttyp3:makoto@bologna 11:34:08/070505(...x11/Xaw3d)> ldd ./work.bologna/xc/lib/Xaw3d/libXaw3d.so.6
./work.bologna/xc/lib/Xaw3d/libXaw3d.so.6:
-lX11.6 => /usr/X11/lib/libX11.so.6
-lICE.6 => /usr/X11/lib/libICE.so.6
-lSM.6 => /usr/X11/lib/libSM.so.6
-lXt.6 => /usr/X11/lib/libXt.so.6
-lXext.6 => /usr/X11/lib/libXext.so.6
-lXmu.6 => /usr/X11/lib/libXmu.so.6
ttyp3:makoto@bologna 11:34:37/070505(...x11/Xaw3d)>
このまま sudo make package しておいて、emacs を作ってみると、問題が解決していました。
@ 何故 Xaw3d だけ問題が出る ?:
もう一度
先ほどの記録
を見ると
( つっこみ )
|
最近の日記 2026年02月28日 ・my first script-fu 2026年01月29日 ・Die Fledermaus at New National theatre 2026/01/29 2025年12月25日 ・pbulk 11.99.3 (emacs30) 2025年11月22日 ・crash dump 2025年10月25日 ・recover from disk error | ||