- 2008/08/20 Wed
-
続・atexit
そもそもlibc_nonshared.aにしか含まれない関数に例外条項が適用されてないておかしくないかと思ったら、glibc-2.3.4 から適用されてた。
ああ。
開発環境が古いのが悪い。glibc-2.3.4/ChangeLog2004-08-15 Roland McGrath <roland@frob.com>* csu/elf-init.c: Update copyright terms including special exception
for these trivial files, which are statically linked into executables
that use dynamic linking for the significant library code.
* io/fstat.c: Likewise.
* io/fstat64.c: Likewise.
* io/lstat.c: Likewise.
* io/lstat64.c: Likewise.
* io/stat.c: Likewise.
* io/stat64.c: Likewise.
* stdlib/atexit.c: Likewise.
* sysdeps/alpha/elf/initfini.c: Likewise.
* sysdeps/alpha/elf/start.S: Likewise.
* sysdeps/arm/elf/start.S: Likewise.
* sysdeps/cris/elf/start.S: Likewise.
* sysdeps/generic/initfini.c: Likewise.
* sysdeps/generic/mknod.c: Likewise.
* sysdeps/hppa/elf/initfini.c: Likewise.
* sysdeps/hppa/elf/start.S: Likewise.
* sysdeps/i386/elf/start.S: Likewise.
* sysdeps/i386/i686/hp-timing.c: Likewise.
* sysdeps/ia64/elf/initfini.c: Likewise.
* sysdeps/ia64/elf/start.S: Likewise.
* sysdeps/ia64/hp-timing.c: Likewise.
* sysdeps/m68k/elf/start.S: Likewise.
* sysdeps/mach/start.c: Likewise.
* sysdeps/mips/elf/start.S: Likewise.
* sysdeps/powerpc/powerpc32/elf/start.S: Likewise.
* sysdeps/powerpc/powerpc64/elf/start.S: Likewise.
* sysdeps/s390/s390-32/elf/start.S: Likewise.
* sysdeps/s390/s390-32/initfini.c: Likewise.
* sysdeps/s390/s390-64/elf/start.S: Likewise.
* sysdeps/s390/s390-64/initfini.c: Likewise.
* sysdeps/sh/elf/initfini.c: Likewise.
* sysdeps/sh/elf/start.S: Likewise.
* sysdeps/sparc/sparc32/elf/start.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/hp-timing.c: Likewise.
* sysdeps/sparc/sparc64/elf/start.S: Likewise.
* sysdeps/sparc/sparc64/hp-timing.c: Likewise.
* sysdeps/standalone/i386/start.S: Likewise.
* sysdeps/standalone/i960/start.S: Likewise.
* sysdeps/standalone/m68k/m68020/start.S: Likewise.
* sysdeps/unix/arm/start.c: Likewise.
* sysdeps/unix/bsd/osf/alpha/start.S: Likewise.
* sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
* sysdeps/unix/sparc/start.c: Likewise.
* sysdeps/unix/start.c: Likewise.
* sysdeps/unix/sysv/aix/start.s: Likewise.
* sysdeps/unix/sysv/irix4/start.c: Likewise.
* sysdeps/x86_64/elf/initfini.c: Likewise.
* sysdeps/x86_64/elf/start.S: Likewise.
派生派生部分改修部分改修てつくりかたをいい加減改めるべき。 久々にウイスキーを。
ここのところ焼酎飲みすぎなので。
- 2008/08/19 Tue
-
うん。
飲みすぎだ。
親子丼おにぎりを吐きそうになりながら租借。(そんな状態で、なぜそのチョイス) 本格的なプロジェクト構成メンバ解体。
とりあえず笑っておくよ。
- 2008/08/18 Mon
-
やっぱり眼球痙攣。
唐突に会議室に呼ばれたので、やもやまた開発環境が変更か!すわ!と思いきや、数年前に一緒に仕事してた協力さんが。
お元気そうでなによりでした。 顔面が猛烈に痒い@会社
下の階が改装工事してるからその影響か。
- 2008/08/17 Sun
- CF-IDE変換にさらにIDE-SCSI変換かましたCFにFreeBSD 7.0インストール。 微妙に眼球痙攣。
- 2008/08/16 Sat
-
640MB以上だとセクタサイズが2048byteになってしまうからと注文していた540MBのMOディスクが到着。
けど解決せず。
ふて寝。 数百メートル先でばんばん雷が落ちてて地響きがするんですが。
雷怖い!
というか、停電怖い!
- 2008/08/15 Fri
-
ゴマサケー サケイクラー。(上がり調子で)
すっかり忘れてた機能を実装して。
シーケンスの微調整して。 LGPL!LGPL!(姉DVD的な勢いで)
メリケンから提供されているライブラリをリンクするとlibc_nonshared.aからatexit.oSがリンクされるので大丈夫なのかこれと思ったら、glibc-2.2.4/stdlib/atexit.c/* Copyright (C) 1991, 1996, 1999, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
LGPLが適用されますね。駄目だ。
というわけだけどそこのところどうなのと問い合わせてみたところ、そんなの使ってないよ!なにそれ!とか返ってきたので勘弁してくだちぃと調べてみたところ、どうもプロセス終了時に静的オブジェクトのデストラクタを呼び出す目的で使用されるらしい。
検証してみる。$ cat foo.cc class Foo { public: #ifdef _DESTRUCTOR ~Foo(){}; #endif }; void main() { #ifdef _STATIC static Foo foo; #else Foo foo; #endif }$ g++ foo.cc -t /usr/bin/ld: mode elf_i386 /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtbegin.o /tmp/ccKwoxkQ.o -lm (/usr/lib/libm.so) /lib/libc.so.6 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtend.o /usr/lib/crtn.o
$ g++ foo.cc -t -D_DESTRUCTOR /usr/bin/ld: mode elf_i386 /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtbegin.o /tmp/ccDNKWDz.o -lm (/usr/lib/libm.so) (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)_eh.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)exception.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)frame.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)opdel.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)tinfo.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)tinfo2.o /lib/libc.so.6 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtend.o /usr/lib/crtn.o
$ g++ foo.cc -t -D_STATIC /usr/bin/ld: mode elf_i386 /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtbegin.o /tmp/cceZe7L5.o -lm (/usr/lib/libm.so) /lib/libc.so.6 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtend.o /usr/lib/crtn.o
$ g++ foo.cc -t -D_DESTRUCTOR -D_STATIC /usr/bin/ld: mode elf_i386 /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtbegin.o /tmp/ccIlZDxP.o -lm (/usr/lib/libm.so) (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)opdel.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)_eh.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)exception.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)frame.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)tinfo.o (/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/libgcc.a)tinfo2.o /lib/libc.so.6 <span style=color:red>(/usr/lib/libc_nonshared.a)atexit.oS</span> /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtend.o /usr/lib/crtn.o
確かに。
ということは、staticにしないかデストラクタを取っ払えと。
いや、根本的につくりかえなきゃだめじゃね?それ。
ライブラリ側の話だからいいっちゃいいけど。うーん。
- 2008/08/14 Thu
-
新プロジェクトの方の話を少し進める。
.Net Framework使った開発してみたいなーと思っていたのでその方向で話を進めてみる。 取締役から唐突に会議室に呼ばれた。
どこかの会社の営業さんと協力会社の社長がいた。
なんかRubyの話とかした。
ああ、なにか嫌な予感がするなと思った。
新プロジェクトはRubyで開発することになりました。
Perl信奉者になんたる仕打ち! 飲みすぎた。
すごい勢いで飲みすぎた。
昨日も言っていた気がするのは気にしない方向で進めたい。
- 2008/08/13 Wed
-
キーマカレーおむすびと、とんかつサンドでカツカレー気分。小坂那也です。(挨拶)
君の脳はいつも幸せそうだなとか言われた。
まぁ。概ね。 デミタス。
デミタス。
デミタス。 飲みすぎた。
デミタスじゃなくてアルコールを。
言わずもがな。
言わずもがな。はい。
- 2008/08/12 Tue
-
いつもの嘔吐。
牛タン嘔吐。 眠すぎる日。
春眠暁を覚えず。(真夏です)
- 2008/08/11 Mon
-
直巻の明太子と三角の鮭の組み合わせが最近のスタンダード。小坂那也です。(挨拶)
たまりにたまったペットボトルをようやく処分できて清々しい朝。
24時間ゴミ出し可能な府中市の生活に慣れすぎていて、どうにも8時までにゴミが出せません。 夏期休暇中の課長代理の代理作業。
新規プロジェクトの資料作成。
新規プロジェクトの環境構築。
現行プロジェクトの来客対応。
新規プロジェクト(こっちはサポート)の打ち合わせ。
来週からの出張調整。
明日の委員会で議題にする予定だった資料が白紙でどうしようと思っていたら明日は委員長を含めて委員の大多数が夏期休暇中なのでまぁいいかと放り投げて。
るーららるー。 デミタス。
デミタス。
乾パン。(消費期限間際につき解放された会社の非常食)
デミタス。 ロックアイスの補充を忘れていた自分に絶望した。