[ オリジナルレポート ]

BugID: #04318

カテゴリ 重要度 ステータス 解決状況 登録日時 最終更新
コンパイル仮承認未処理2011-04-23 02:162011-04-23 08:15
 
テスターjordi担当者 ソース
バージョン0.141発生バージョン修正バージョン
修正コミットプルリク
フラグ
セット
セット詳細
 
概 要一部のLinuxアーキテクチャでメモリアライメントの問題。
詳 細SDLMAME fails to build on several Linux architectures supported by Debian, all with a common problem:

Compiling src/osd/sdl/sdlsocket.c...
Compiling src/osd/sdl/sdlmisc_unix.c...
In file included from src/emu/emucore.h:38:0,
                 from src/emu/emu.h:53,
                 from src/osd/sdl/sdlsocket.c:26:
src/lib/util/astring.h:367:6: note: the mangling of 'va_list' has changed in GCC 4.4
cc1plus: warnings being treated as errors
In file included from src/emu/emu.h:69:0,
                 from src/osd/sdl/sdlsocket.c:26:
src/emu/memory.h: In member function 'UINT16 direct_read_data::read_raw_word(offs_t, offs_t)':
src/emu/memory.h:805:84: error: cast from 'UINT8*' to 'UINT16*' increases required alignment of target type
src/emu/memory.h: In member function 'UINT16 direct_read_data::read_decrypted_word(offs_t, offs_t)':
src/emu/memory.h:812:90: error: cast from 'UINT8*' to 'UINT16*' increases required alignment of target type
src/emu/memory.h: In member function 'UINT32 direct_read_data::read_raw_dword(offs_t, offs_t)':
src/emu/memory.h:825:84: error: cast from 'UINT8*' to 'UINT32*' increases required alignment of target type
src/emu/memory.h: In member function 'UINT32 direct_read_data::read_decrypted_dword(offs_t, offs_t)':
src/emu/memory.h:832:90: error: cast from 'UINT8*' to 'UINT32*' increases required alignment of target type
src/emu/memory.h: In member function 'UINT64 direct_read_data::read_raw_qword(offs_t, offs_t)':
src/emu/memory.h:845:84: error: cast from 'UINT8*' to 'UINT64*' increases required alignment of target type
src/emu/memory.h: In member function 'UINT64 direct_read_data::read_decrypted_qword(offs_t, offs_t)':
src/emu/memory.h:852:90: error: cast from 'UINT8*' to 'UINT64*' increases required alignment of target type
Compiling src/osd/sdl/sdlos_unix.c...
src/osd/sdl/sdlsocket.c: In function 'file_error sdl_open_socket(const char*, UINT32, osd_file**, UINT64*)':
src/osd/sdl/sdlsocket.c:59:48: error: cast from 'char*' to 'in_addr*' increases required alignment of target type


Affected are, at least: ARM, ia64, MIPS and SPARC64.

See the build logs in https://buildd.debian.org/status/logs.php?pkg=mame&ver=0.141-2.

I'm not sure if fixing this would allow builds to succeed for these “exotic” architectures using NOASM, but if it did, it'd pave the path to use MAME on cheap ARM-based boards, which sounds like a good thing. :)

(Note that s390 failed in a totally unrelated way; I'll have a look at that at some point, but I would be incredibly suprised if a single person in this planet does install and run MAME on a s390 server. :)
再現手順 
追加情報 
 
添付ファイル