トップ 最新 追記
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2009年11月06日

debootstrap失敗理由

 # cat /debootstrap/debootstrap.log
Setting up mawk (1.3.3-11.1) ...
dpkg: --install needs at least one package archive file argument
 
Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].
 
Options marked [*] produce a lot of output - pipe it through `less' or `more' !
mawk がおかしいのかなと思ったけど理由は aptサーバのほうに debconf が正しく登録されていなかったからだった。

reprepro に debconf を登録しなおして修正


2009年11月09日

libgl1-mesa-glx で libgcc が含まれないよ?みたいなエラー。これどうやって直すんだっけな。

dpkg-shlibdeps: warning: dependency on libm.so.6 could be avoided if "debian/libgl1-mesa-glx/usr/lib/libGL.so.1.2" were not uselessly linked against it (they use none of its symbols).
dpkg-shlibdeps: warning: symbol __sdivsi3_i4i used by debian/libglu1-mesa/usr/lib/libGLU.so.1.3.070004 found in none of the libraries.
dpkg-shlibdeps: warning: symbol __udivsi3_i4i used by debian/libglu1-mesa/usr/lib/libGLU.so.1.3.070004 found in none of the libraries.
dpkg-shlibdeps: warning: symbol __movmem_i4_odd used by debian/libglu1-mesa/usr/lib/libGLU.so.1.3.070004 found in none of the libraries.

2009年11月23日

mesa-7.0.3 (debian lenny sh4 self)

 # nm /usr/lib/libGLU.so.1.3.070004
          U __movmem_i4_odd
          U __sdivsi3_i4i
          U __udivsi3_i4i
      ↑未定義シンボル
 
 作業ディレクトリ
 
 # cd mesa-7.0.3/obj-sh4-linux-gnu/debian-swx11+glu-any/src/glu/sgi
 
 Makefile 修正
 
 # Make the library:
 $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME): $(OBJECTS)
         $(TOP)/bin/mklib -o $(GLU_LIB) -lgcc -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
                 -major $(GLU_MAJOR) -minor $(GLU_MINOR) -patch $(GLU_TINY) \
                 -cplusplus $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
                 $(GLU_LIB_DEPS) $(OBJECTS)
 
 
 強引に -lgcc を追加してみた
 
 
 作業ディレクトリ
 
 # mesa-7.0.3/obj-sh4-linux-gnu/debian-swx11+glu-any
 # rm lib/*
 # make
 # nm lib/libGLU.so.1.3.070004  | grep __
 
 00074148 t __movstr_i4_even
 0007414e t __movstr_i4_odd
 00074270 t __sdivsi3_i4i
 000741a0 t __udivsi3_i4i
            ↑ tに変化している !!! 勝利

2009年11月24日

gtk+2.0-2.12.12 debian lenny sh4

 distcc sh4-linux-gnu-gcc -shared  .libs/gdk.o .libs/gdkcairo.o .libs/gdkcolor.o 
.libs/gdkcursor.o .libs/gdkdisplay.o .libs/gdkdnd.o .libs/gdkdraw.o .libs/gdkevents.o 
.libs/gdkfont.o .libs/gdkgc.o .libs/gdkglobals.o .libs/gdkkeys.o .libs/gdkkeyuni.o 
.libs/gdkimage.o .libs/gdkdisplaymanager.o .libs/gdkpango.o .libs/gdkpixbuf-drawable.o 
.libs/gdkpixbuf-render.o .libs/gdkpixmap.o .libs/gdkpolyreg-generic.o .libs/gdkrgb.o 
.libs/gdkrectangle.o .libs/gdkregion-generic.o .libs/gdkscreen.o .libs/gdkselection.o 
.libs/gdkvisual.o .libs/gdkwindow.o .libs/gdkenumtypes.o -Wl,--whole-archive 
x11/.libs/libgdk-x11.a -Wl,--no-whole-archive  -Wl,--rpath 
-Wl,/root/build/libgtk2.0/gtk+2.0-2.12.12/debian/build/shared/gdk-pixbuf/.libs -lXi 
/usr/lib/libpangocairo-1.0.so /usr/lib/libpango-1.0.so /usr/lib/libcairo.so 
/usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so -ldl /usr/lib/libglib-2.0.so 
-lfontconfig -lXext -lXrender -lX11 -lXcursor -lXdamage -lXfixes -lm 
../gdk-pixbuf/.libs/libgdk_pixbuf-2.0.so  -Wl,-soname -Wl,libgdk-x11-2.0.so.0 
-Wl,-version-script -Wl,.libs/libgdk-x11-2.0.ver -o .libs/libgdk-x11-2.0.so.0.1200.12
/usr/bin/ld.real: cannot find -lXi
collect2: ld returned 1 exit status
む。
# ls -l /usr/lib/libXi*
/bin/ls: cannot access /usr/lib/libXi*: No such file or directory
むむむ
libxi6 を作って入れなおす。

libqt3-mt (3.3.8) debian lenny sh4 self

g++ -fno-exceptions -o ../../../bin/uic .obj/release-shared-mt/main.o .obj/relea
se-shared-mt/uic.o .obj/release-shared-mt/form.o .obj/release-shared-mt/object.o
 .obj/release-shared-mt/subclassing.o .obj/release-shared-mt/embed.o .obj/releas
e-shared-mt/widgetdatabase.o .obj/release-shared-mt/domtool.o .obj/release-share
d-mt/parser.o    -L/root/build/libqt3-mt-dev/qt-x11-free-3.3.8b/lib -L/usr/X11R6
/lib -lqt-mt -ljpeg -lpng -lz -lXi -lXrender -lXrandr -lXcursor -lXinerama -lXft
 -lfreetype -lfontconfig -lXext -lX11 -lm -lSM -lICE -ldl -lpthread
/usr/bin/ld.real: ../../../bin/uic: hidden symbol `__movmem_i4_even' in /usr/lib
/gcc/sh4-linux-gnu/4.3.2/libgcc.a(_movmem_i4.o) is referenced by DSO
/usr/bin/ld.real: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make[4]: *** [../../../bin/uic] Error 1
make[4]: Leaving directory `/root/build/libqt3-mt-dev/qt-x11-free-3.3.8b/tools/d
esigner/uic'
make[3]: *** [sub-uic] Error 2
make[3]: Leaving directory `/root/build/libqt3-mt-dev/qt-x11-free-3.3.8b/tools/d
esigner'
make[2]: *** [sub-designer] Error 2
make[2]: Leaving directory `/root/build/libqt3-mt-dev/qt-x11-free-3.3.8b/tools'
make[1]: *** [sub-tools] Error 2
make[1]: Leaving directory `/root/build/libqt3-mt-dev/qt-x11-free-3.3.8b'
make: *** [libqt-thread-stamp] Error 2
dpkg-buildpackage: failure: debian/rules build gave error exit status 2
エラー落ち
$ nm ./lib/libqt-mt.so.3.3.8 | grep __movmem_i4_even
 U __movmem_i4_even
む。未定義発見。
$ vi mkspecs/linux-g++/qmake.conf
QMAKE_LIBS              = -lgcc
修正
$ !nm
nm ./lib/libqt-mt.so.3.3.8 | grep __movmem_i4_even
00643688 t __movmem_i4_even
修正完了

2009年11月25日

qemu-sh4

SH (little endian) のELFヘッダを見てみる
            /usr/bin/ssh-keygen  (sh ELF little)
            7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00   03 00 2a 00
 
 ARM        7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00   02 00 28 00
            ff ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff   fe ff ff ff
 
 ARMEB      7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00   00 02 00 28
            ff ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff   ff fe ff ff
 
 SH(little) 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00   02 00 2a 00
            ff ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff   fe ff ff ff
 
 typedef struct elf32_hdr{
   unsigned char e_ident[EI_NIDENT];   // 16bytes
   Elf32_Half    e_type;
   Elf32_Half    e_machine;
 
 /* These constants define the different elf file types */
 #define ET_NONE   0
 #define ET_REL    1
 #define ET_EXEC   2
 #define ET_DYN    3
 #define ET_CORE   4
 #define ET_LOPROC 0xff00
 #define ET_HIPROC 0xffff
なので結論
 
 # update-binfmts --install qemu-sh4 /usr/local/bin/qemu-sh4 \
   --magic '\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00' \
   --mask  '\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
ARMの0x28を0x2aにしただけ。