fat_write/04.yumeさんの成果を取り込もう


Top / fat_write / 04.yumeさんの成果を取り込もう

これは何か

yumeさんの成果を取り込もう

分析

endian.cppで「__BIG_ENDIAN__」を見て判断している。 これを autotoolsで利用可能なAC_C_BIGENDIANで定義される、WORDS_BIGENDIANを見ればよい気がする。 と思ったら( http://gemma.apple.com/jp/documentation/MacOSX/Conceptual/universal_binary/universal_binary_compiling/chapter_2_section_7.html )

Autoconfマクロ
	
GNU Autoconfを使用するプロジェクトをコンパイルしてPowerPCベースとインテルベースのMacintoshコンピュータの両方を対象としてビルド行う場合は、プロジェクトの自動設定時にランタイムシステムのエンディアンのタイプを判別するAutoconfマクロが使われないようにする必要があります。たとえば、プロジェクトの中でAutoconfのAC_C_BIGENDIANマクロを使用していると、プロジェクトの自動設定時のターゲットとなるアーキテクチャでないもう一方のアーキテクチャでプログラムを実行するとプログラムが正しく動作しません。PowerPC ベースとインテルベースMacintoshコンピュータの両方に正しくビルドするには、コードの中でコンパイラに定義されている__BIG_ENDIAN__および__LITTLE_ENDIAN__マクロを使用します。

Yumeサンの対応が正しいことが分かったので何もしない。 どうも納得いかないので英文を探す。

Autoconf Macros
	
If you are compiling a project that uses GNU Autoconf and trying to build it for both PowerPC-based and Intel-based Macintosh computers, you need to make sure that when the project configures itself, it doesn't use Autoconf macros to determine the endian type of the runtime system.
For example, if your project uses the Autoconf AC_C_BIGENDIAN macro, the program won't work correctly when it is run on the opposite architecture from the one you are targeting when you configure the project.
To correctly build for both PowerPC-based and Intel-based Macintosh computers, use the compiler-defined __BIG_ENDIAN__ and __LITTLE_ENDIAN__ macros in your code.

AC_C_BIGENDIANを使っても、きちんとユーザーがそのたびに ./configureすれば問題ないじゃん。

不足点があった

make distしたときに fat_template.imgを含めてくれない。
fat_write_SOURCES に追加した。

はまる

fat_write/endian.hというファイルが存在するだけでエラーになる。endian_util.hとリネームするとおきない。

mDHAVE_CONFIG_H -I. -I. -I.    -g -g -O2 -MT fat_write-fat.o -MD -MP -MF ".deps/fat_write-fat.Tpo" -c -o fat_write-fat.o `test -f 'fat.cpp' || echo './'`fat.cpp; \
then mv -f ".deps/fat_write-fat.Tpo" ".deps/fat_write-fat.Po"; else rm -f ".deps/fat_write-fat.Tpo"; exit 1; fi
/usr/include/bits/waitstatus.h:80: error: declaration of 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_retcode楷√≒椹
/usr/include/bits/waitstatus.h:75: error: conflicts with previous declaration 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_retcode楷√≒椹
/usr/include/bits/waitstatus.h:81: error: declaration of 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_coredump楷√≒椹
/usr/include/bits/waitstatus.h:74: error: conflicts with previous declaration 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_coredump楷√≒椹
/usr/include/bits/waitstatus.h:82: error: declaration of 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_termsig楷√≒椹
/usr/include/bits/waitstatus.h:73: error: conflicts with previous declaration 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_termsig楷√≒椹
/usr/include/bits/waitstatus.h:94: error: declaration of 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_stopsig楷√≒椹
/usr/include/bits/waitstatus.h:89: error: conflicts with previous declaration 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_stopsig楷√≒椹
/usr/include/bits/waitstatus.h:95: error: declaration of 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_stopval楷√≒椹
/usr/include/bits/waitstatus.h:88: error: conflicts with previous declaration 楷√≒楷・・nsigned int wait::<anonymous struct>::__w_stopval楷√≒椹
make[1]: *** [fat_write-fat.o] 楷∝≫棠→楷∝√棠←楷∝√棠⊂ 1
make[1]: Leaving directory `/home/taro/fat_write'
make: *** [all] 楷∝≫棠→楷∝√棠←楷∝√棠⊂ 2

コメント

コメントはありません。 コメント/fat_write/04.yumeさんの成果を取り込もう?

お名前:

MENU

now: 2

リンク


最新の20件
2018-05-03 2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 2435, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:00 (3766d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.041 sec.