トップ «前の日記(2007年06月19日) 最新 次の日記(2007年06月22日)» 編集
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)

2007年06月20日

debian etch sh4

さーて出たぞ。 libc-2.3.6, sh4-linux-gnu-gcc-4.1 での問題だ。
sh4-linux-gnu-gcc   -shared -static-libgcc -Wl,-O1  -Wl,-z,defs -Wl,-dynamic-linker=/lib/ld-linux.so.2  -B/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/csu/  -Wl,--version-script=/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc.map -Wl,-soname=libc.so.6 -Wl,-z,combreloc -Wl,-z,relro -nostdlib -nostartfiles -e __libc_main -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/math -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/elf -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/dlfcn -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/nss -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/nis -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/rt -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/resolv -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/crypt -L/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/nptl -Wl,-rpath-link=/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/math:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/elf:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/dlfcn:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/nss:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/nis:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/rt:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/resolv:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/crypt:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/nptl -o /home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc.so -T /home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/shlib.lds /home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/csu/abi-note.o /home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/elf/soinit.os /home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc_pic.os /home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/elf/sofini.os /home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/elf/interp.os /home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/elf/ld.so -lgcc
/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc_pic.os: In function `__modff':
../sysdeps/ieee754/flt-32/s_modff.c:65: undefined reference to `__fpscr_values'
/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc_pic.os: In function `__scalbnf':
../sysdeps/ieee754/flt-32/s_scalbnf.c:62: undefined reference to `__fpscr_values'
/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc_pic.os: In function `__frexpf':
../sysdeps/ieee754/flt-32/s_frexpf.c:52: undefined reference to `__fpscr_values'
/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc_pic.os: In function `__ldexpf':
../sysdeps/generic/s_ldexpf.c:35: undefined reference to `__fpscr_values'
/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc_pic.os: In function `_IO_vfprintf':
/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/glibc-2.3.6/stdio-common/vfprintf.c:1424: undefined reference to `__fpscr_values'
/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc_pic.os:/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/glibc-2.3.6/stdio-common/vfprintf.c:1467: more undefined references to `__fpscr_values' follow
collect2: ld returned 1 exit status
make[2]: *** [/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc/libc.so] エラー 1
make[2]: ディレクトリ `/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/glibc-2.3.6' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/build-tree/sh4-libc' から出ます
make: *** [/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1/stamp-dir/build_libc] エラー 2
make: ディレクトリ `/home/ebihara/tmp/libc6-sh4/glibc-2.3.6.ds1' から出ます
__fpscr_values を libc.so に入れるのか、 crt1.o に入れるのかっていう問題だった気がする。
http://eggplant.ddo.jp/www/pukiwiki/index.php?memo%2F__fpscr_values
libc-2.3.5 時代の glibc-2.3.2-sh-fpscr_values.dpatch を当てれば(libc.soに入れるという解決方法)コンパイルは通るのだが、これをやっちゃうと将来のlibcと互換性がなくなる恐れがある? 確か libc.so に入れるのはやめて crt1.o に入れようねってことだったかな。なのでこのパッチは当てたくない。
う〜ん。どうやってコンパイルを通したのだっけなぁ。gcc-4.1 の libgcc を修正したのだったっけかな?
上記ページで kaz先生たちが言っているように、亜流ディストリビューションが流通しちゃうと互換性がなくなってしまうので、どこかで会議をして決めていかないといけないと思う。とりあえずエネルギーが切れたのでここで打ち止め。保留。

__fpscr_values

そんで検索すると1年半に戻るだけなのか。 orz.

ぱっち

打ち止めと思ったのだけどビルドできたのでパッチを作った
debian/patches/sh/glibc-2.3.6-sh-nodefs.diff (-p1)
--- glibc-2.3.6/Makerules.orig  2007-06-20 23:48:40.000000000 +0900
+++ glibc-2.3.6/Makerules       2007-06-20 23:51:28.000000000 +0900
@@ -456,7 +456,7 @@
 ifeq ($(elf),yes)
 define build-shlib-helper
 $(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \
-         $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) $(config-LDFLAGS) \
+         $(if $($(@F)-no-z-defs)$(no-z-defs),,) $(config-LDFLAGS) \
          $(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \
          $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \
          -Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \
@@ -534,7 +534,7 @@
 else
 define build-module-helper
 $(LINK.o) -shared $(static-libgcc) $(sysdep-LDFLAGS) $(config-LDFLAGS) \
-         $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) \
+         $(if $($(@F)-no-z-defs)$(no-z-defs),,) \
          -B$(csu-objpfx) $(load-map-file) \
          $(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
          -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)

debian sh3 sh4 etch glibc-2.3.6

debian etch の標準バージョンとあわせた。libc6_2.3.6.ds1-13_sh4.deb
公開した
http://www.si-linux.co.jp/pub/debian-sh/pool/main/g/glibc/
-Osを適用したので小さくなった。
まえ
  -rwxr-xr-x 1 root root 1319944 Dec 30 23:38 /lib/libc-2.3.6.so
あと
  -rwxr-xr-x 1 root root 943024 Jun 20  2007 /lib/libc-2.3.6.so
動いているっぽい

apt-build

 # dpkg -l | awk '{print $2}' | sort | uniq > /etc/apt/apt-build.list
 # apt-build world