Mona/Make質問所


Top / Mona / Make質問所

このページ

コメント

最新の1000件を表示しています。 コメントページを参照

お名前:

Monaの最新版をgitから持ってきて、makeしようとするとエラーがでます。

開発環境はUbuntuです。 全ログは http://natu.txt-nifty.com/natsutan/2010/09/mona-6500.html にあります。 もう少し調べてみます。--natsutan

private/logprintf.o:logprintf.c:(.text+0x9): undefined reference to `__chkstk'

Mona wikiを見ていると解決しているような雰囲気もあるのですが、よくわかりません。makeのlogはこちらにあげておきました。 http://natu.txt-nifty.com/natsutan/2010/10/mona-d62d.html

make cleanの後、再度makeをしても同じエラーがでます。contribでも同じエラーで止まるので、原因追った方がよさそうです。___chkstkで検索した所、可変長引数を使うときにgccが勝手に追加するシンボルだと分かりました。クロスコンパイルの環境では、よくある問題でした。解決策としては3つあります。 1)gccのオプションで___chkstkを使わないようにする。 2)ターゲット向けの___chkstkが定義されているライブラリをリンクする。 3)自分で___chkstk相当の関数を作る。 今のMONAは、1)か2)で対応しているはずです。問題を切り分けるために、makeが通る状況でのlogprintf.oにnmコマンドでシンボルを確認していただけないでしょうか。私の環境ではこうなっています。

natu@YUKI:~/mona/mona$ /usr/bin/i586-mingw32msvc-nm  ./core/monalibc/private/logprintf.o
00000000 b .bss
00000000 d .data
00000000 r .rdata
00000000 t .text
         U ___chkstk
00000000 T _logprintf
         U _syscall_log_print
         U _vsprintf
natu@YUKI:~/mona/mona$ 

お手数ですが、どなたか確認していただけないでしょうか。-- natsutan

 % /usr/bin/i586-mingw32msvc-nm core/monalibc/private/logprintf.o
 00000000 b .bss
 00000000 d .data
 00000000 r .rdata
 00000000 t .text
          U __alloca
 00000000 T _logprintf
          U _syscall_log_print
          U _vsprintf

となりました。ちなみに gcc のオプションは以下の通りです。

% /usr/bin/i586-mingw32msvc-gcc --version

i586-mingw32msvc-gcc (GCC) 4.2.1-sjlj (mingw32-2)

/usr/bin/i586-mingw32msvc-gcc -c -o private/logprintf.o private/logprintf.c  -I. -I/home/taro/mona/include -I/home/taro/mona/include/monalibc -I ./newlib -DMONA -fno-builtin

ひげぽん

__chkstkの方は解決できました。 コンパイル時に -mno-stack-arg-probe オプションを使うことで、スタックのチェックをしなくなり、__chkstkが挿入されなくなります。 GCCのバージョンによる違いが怪しいのですが、そこまでは追えていません。

contribの方でも出るので、可変長引数を使っている全てのファイルに-mno-stack-arg-probe付けた方がよいと思います。

main/colortab.o:colortab.c:(.text+0x175f): undefined reference to `__chkstk'
main/histogram.o:histogram.c:(.text+0xb10): undefined reference to `__chkstk'
main/image.o:image.c:(.text+0xa2b): undefined reference to `__chkstk'
main/image.o:image.c:(.text+0x3cb4): undefined reference to `__chkstk'
main/image.o:image.c:(.text+0x3fa8): undefined reference to `__chkstk'
main/image.o:image.c:(.text+0x4114): more undefined references to `__chkstk' follow

次はgui_serverの方でリンクのエラーがでます。もう少し追ってみます。

/usr/bin/i586-mingw32msvc-ld --Map GUI.map -n --image-base=0xa0000000 --disable-runtime-pseudo-reloc -e _user_start -o GUI.EXE /home/natu/mona/mona/lib/monapi_crt.o main.o image.o screen.o utils.o window.o effect.o Rectangle.o Overlap.o -L/home/natu/mona/mona/lib -lmonapi-imp --enable-auto-import -lmonalibc-imp --enable-auto-import -ljpegls
image.o:image.cpp:(.text+0x7f7): undefined reference to `CJPEGLS::CJPEGLS()'
image.o:image.cpp:(.text+0x808): undefined reference to `CJPEGLS::Open(unsigned char*, int)'
image.o:image.cpp:(.text+0x81a): undefined reference to `CJPEGLS::~CJPEGLS()'
image.o:image.cpp:(.text+0x833): undefined reference to `CJPEGLS::GetInfo(int*, int*)'
image.o:image.cpp:(.text+0x881): undefined reference to `CJPEGLS::Decode(unsigned char*)'

全ログはこちらです。 http://natu.txt-nifty.com/natsutan/2010/10/mona-402b.html --natsutan

contribの方の__chkstkは解決しました。~/mona/contrib/Graphics/Mesa/configs にあるmona-static,mona,currentの3つのファイルで-mno-stack-arg-probeを付け加えました。あとひとつ、~/mona/contrib/Multimedia/audio_server/happy/Makefile も修正必要でした。

最後に mona/contrib/Misc/helloworld でエラーが出ます。

make[1]: ディレクトリ `/home/natu/mona/contrib/Misc/helloworld' に入ります
/usr/bin/i586-mingw32msvc-g++ -c -o main.o -nostdinc -UWIN32 -U_WIN32 -Wall -fno-builtin -mno-stack-arg-probe -O2 -DMONA -DDEBUG_BUILD -DHOST_MINGW -DMONASH_DONT_FREE_MEMORY  -fno-threadsafe-statics -fno-exceptions -fno-rtti -fno-strict-aliasing -g -DDEBUG -I . -I ./boost -I /home/natu/mona/mona/include/onig -I/home/natu/mona/mona/include -I/home/natu/mona/mona/include/monalibc -I/home/natu/mona/mona/include/stlport  main.cpp
In file included from /home/natu/mona/mona/include/monapi.h:20,
                 from main.cpp:1:
/home/natu/mona/mona/include/monapi/MemoryManager.h:43: 警告: ‘typedef’ was ignored in this declaration
main.cpp: In function ‘int main(int, char**)’:
main.cpp:12: error: ‘PAGE_FAULT1’ was not declared in this scope

gitで取得したトップ(/home/natu/mona/)からgrepをかけても、PAGE_FAULT1がどこにも見つかりません。PAGE_FAULT1〜PAGE_FAULT15はどこで定義されているのでしょうか。helloworldの main.cpp 内で、#define PAGE_FAULT1 (0) と順に定義しておけば、mona、contrib ともmakeが通ります。新しいイメージを使って、qemu 上に起動画面が出るところまで確認しています。-- natsutan

[済]firstboot.asmがnasm2.04でサイズオーバ

  1. nasm0.98限定とする
  2. 文字列をちょっと削る。errorをerrにするとか。
  3. -O1 か -O2をつける。nasm0.98系でどうなるか未確認。
    • 2. でお願いします。 -- ひげぽん

[済] monalibcがビルドできない。 2008/8/5

  1. fpos_tの定義が2種類あるが、stdio/boshi配下でどちらの使い方もしている。
    • core/monalibc/stdio/boshi/file.hでは fpos_t が構造体として定義してある。
    • include/monalibc/stdio.hでは fpos_t が int64_t として定義してある。
    • stdio/boshi配下は前者を想定してそうだが、使われ方的には後者に統一した方がよさそう?
  2. core/monalibc/stdio/boshi/lowio.c
    • putsは、コメントアウトする必要がある? (デバッグ関数(?)として定義されていて、他のソースではコメントアウト)

[済] alpha9 がビルドできない。 2008/04/10

cygwin の場合 → Yumeさんに伝えました [#d818b5ec]

Linux の場合

対応策

ログ

[済]monapi/System getProcessPath 2008/01/18

System.cpp:35: warning: address of local variable 'msg' returned

[済]stlport/stl/_tree.h 2007/01/23

 _Link_type& _M_root() const 
   { return (_Link_type&) this->_M_header._M_data->_M_parent; }
 _Link_type& _M_leftmost() const 
   { return (_Link_type&) this->_M_header._M_data->_M_left; }
 _Link_type& _M_rightmost() const 
   { return (_Link_type&) this->_M_header._M_data->_M_right; }

 static _Link_type& _STLP_CALL _S_left(_Link_type __x)
   { return (_Link_type&)(__x->_M_left); }
 static _Link_type& _STLP_CALL _S_right(_Link_type __x)
   { return (_Link_type&)(__x->_M_right); }
 static _Link_type& _STLP_CALL _S_parent(_Link_type __x)
   { return (_Link_type&)(__x->_M_parent); }

ここの警告の奴は、全部 * をつけるべきかと思ったのですが、どうでしょう?

 _Link_type& _M_root() const 
   { return (_Link_type&) *this->_M_header._M_data->_M_parent; }
 static _Link_type& _STLP_CALL _S_left(_Link_type __x)
   { return (_Link_type&)(*__x->_M_left); }

という風に。--shadow

[済] contrib/X/gui 2006/11/09

[済] tool/t5lzma/configureについて 2006/09/30

MENU

now: 2

リンク


最新の20件
2018-09-03 2018-05-09 2017-09-29 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: 16329, today: 1, yesterday: 0

添付ファイル: fileMona-20051212.diff 1054件 [詳細] fileMona3.tar.gz 1341件 [詳細] filet5lzma.zip 1051件 [詳細] filerh7gcc296.scr.txt 556件 [詳細] fileldverbose2.11.90Vine.txt 637件 [詳細]

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

Last-modified: 2010-10-30 (土) 23:40:13 (2883d);  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.394 sec.