apt-getするとき、アーキテクチャをどうやって取得してるのか
http://dennou-h.gfd-dennou.org/debian/dists/wheezy/main/binary-armhf/
http://dennou-h.gfd-dennou.org/debian/pool/main/libc/libc++/libc++-dev_1.0~svn205159-1_armhf.deb
とりあえず適当に全ファイル検索したら、mkinitramfsコマンドのなかでarmhfという文字列を発見
DPKG_ARCH=`dpkg --print-architecture`
とかやってる箇所があった。
次にdpkgコマンドのソースを見てみる
--print-architectureオプション使用時にはprintarch()を呼んでいるらしい。
src/enquiry.c
printf("%s\n", architecture);
src/main.c
const char architecture[]= ARCHITECTURE;
アーキテクチャ名は、dpkgコマンドのコンパイル時に埋め込まれている。
コンパイル時にはどう決めているか
dpkg_arch=$(cd $srcdir/scripts; \ PERL5LIB=$(pwd) ./dpkg-architecture.pl -t$host -qDEB_HOST_ARCH 2>/dev/null)
scripts/dpkg-architecture.pl
$v{DEB_HOST_ARCH} = get_raw_host_arch();
scripts/Dpkg/Arch.pm